auth

package
v0.0.0-...-62da3de Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 10, 2019 License: Apache-2.0 Imports: 22 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Init

func Init(app *eudore.Eudore) error

Init 函数初始化auth部分内容。

func PathExist

func PathExist(_path string) bool

Types

type Config

type Config struct {
	Secrets  map[string]string `json:"secrets" set:"secrets"`
	IconTemp string            `json:"icontemp" set:"icontemp"`
	Sender   SenderConfig      `json:"sender" set:"sender"`
}

type LoginController

type LoginController struct {
	controller.ControllerWebsite
	Oauth2 map[string]oauth2.Oauth2
}

func NewLoginController

func NewLoginController(app *eudore.Eudore, db *sql.DB) *LoginController

func (*LoginController) GetCallbackByName

func (ctl *LoginController) GetCallbackByName() error

func (*LoginController) GetCaptcha

func (ctl *LoginController) GetCaptcha()

func (*LoginController) GetOauth2ByName

func (ctl *LoginController) GetOauth2ByName()

func (*LoginController) GetRouteParam

func (ctl *LoginController) GetRouteParam(pkg, name, method string) string

func (*LoginController) PostWebsite

func (ctl *LoginController) PostWebsite() error

type MailSender

type MailSender struct {
	// contains filtered or unexported fields
}

func NewMailSender

func NewMailSender(config *MailSenderConfig) *MailSender

NewMailSender().Send("xxxxx@qq.com", "iiiiiiii")

func (*MailSender) Send

func (sender *MailSender) Send(to string, message string) error

type MailSenderConfig

type MailSenderConfig struct {
	Username string `json:"username"`
	Password string `json:"password"`
	Addr     string `json:"addr"`
	Subject  string `json:"subject"`
}

type Permission

type Permission struct {
	ID          int    `json:"id"`
	Name        string `json:"name"`
	Description string `json:"description"`
}

type PermissionController

type PermissionController struct {
	controller.ControllerWebsite
	Ram *middleware.Ram
}

func NewPermissionController

func NewPermissionController(db *sql.DB, ram *middleware.Ram) *PermissionController

func (*PermissionController) DeleteIdById

func (ctl *PermissionController) DeleteIdById() (err error)

func (*PermissionController) DeleteNameByName

func (ctl *PermissionController) DeleteNameByName() (err error)

func (*PermissionController) GetCount

func (ctl *PermissionController) GetCount() interface{}

func (*PermissionController) GetIdById

func (ctl *PermissionController) GetIdById() (interface{}, error)

func (*PermissionController) GetIndex

func (ctl *PermissionController) GetIndex() (interface{}, error)

func (*PermissionController) GetList

func (ctl *PermissionController) GetList() (interface{}, error)

func (*PermissionController) GetNameByName

func (ctl *PermissionController) GetNameByName() (interface{}, error)

func (*PermissionController) GetSearchByKey

func (ctl *PermissionController) GetSearchByKey() (interface{}, error)

func (*PermissionController) GetUserIdById

func (ctl *PermissionController) GetUserIdById() (interface{}, error)

GetUserIdById 方法根据权限id获取用户全部用户信息

func (*PermissionController) GetUserNameByName

func (ctl *PermissionController) GetUserNameByName() (interface{}, error)

GetPermissionIdById 方法根据用户name获取用户全部权限信息

func (*PermissionController) PostId

func (ctl *PermissionController) PostId() (err error)

func (*PermissionController) PostName

func (ctl *PermissionController) PostName() (err error)

func (*PermissionController) PutNew

func (ctl *PermissionController) PutNew() (err error)

func (*PermissionController) Release

func (ctl *PermissionController) Release() error

Release 方法用于刷新ram权限信息。

type Policy

type Policy struct {
	Id          int       `json:"id"`
	Name        string    `json:"name"`
	Description string    `json:"description"`
	Policy      string    `json:"policy"`
	Time        time.Time `json:"time"`
}

PostgreSQL Begin

-- PBAC策略信息表 CREATE SEQUENCE seq_auth_policy_id INCREMENT by 1 MINVALUE 1 START 1; CREATE TABLE tb_auth_policy(

"id" INTEGER PRIMARY KEY DEFAULT nextval('seq_auth_policy_id'),
"name" VARCHAR(64),
"description" VARCHAR(512),
"policy" VARCHAR(4096),
"time" TIMESTAMP  DEFAULT (now())

); COMMENT ON TABLE "public"."tb_auth_policy" IS 'PBAC策略信息表'; COMMENT ON COLUMN "tb_auth_policy"."id" IS 'Polic ID'; COMMENT ON COLUMN "tb_auth_policy"."policy" IS '策略内容';

INSERT INTO "tb_auth_policy"("name", "description", "policy", "time") VALUES ('AdministratorAccess', '管理所有资源的权限', '{"version":"1","description":"22","statement":[{"effect":true,"action":["*"],"resource":["*"]}]}', '2019-09-14 09:15:12.129781'); INSERT INTO "tb_auth_policy"("name", "description", "policy", "time") VALUES ('NotePublicReadOnlyAccess', 'public文档只读权限', '{"version":"1","description":"public文档只读权限","statement":[{"effect":true,"action":["Get*"],"resource":["/note/content/public/*"]}]}', '2019-09-14 09:15:12.129781'); INSERT INTO "tb_auth_policy"("name", "description", "policy", "time") VALUES ('guest', 'guest使用', '{"version":"1","description":"全部文档只读权限","statement":[{"effect":true,"action":["auth:*:Get*","status:*:Get*"],"resource":["*"],"conditions":{"time":{"befor":"2020-12-31"},"method":["GET"],"browser":["Chrome/60+","Chromium/0-90","Firefox"]}}]}', '2019-09-28 08:12:35.656327');

PostgreSQL End

type PolicyController

type PolicyController struct {
	controller.ControllerWebsite
	Ram *middleware.Ram
}

PostgreSQL Begin

-- PBAC策略信息表 CREATE SEQUENCE seq_auth_policy_id INCREMENT by 1 MINVALUE 1 START 1; CREATE TABLE tb_auth_policy(

"id" INTEGER PRIMARY KEY DEFAULT nextval('seq_auth_policy_id'),
"name" VARCHAR(64),
"description" VARCHAR(512),
"policy" VARCHAR(4096),
"time" TIMESTAMP  DEFAULT (now())

); COMMENT ON TABLE "public"."tb_auth_policy" IS 'PBAC策略信息表'; COMMENT ON COLUMN "tb_auth_policy"."id" IS 'Polic ID'; COMMENT ON COLUMN "tb_auth_policy"."policy" IS '策略内容';

INSERT INTO "tb_auth_policy"("name", "description", "policy", "time") VALUES ('AdministratorAccess', '管理所有资源的权限', '{"version":"1","description":"22","statement":[{"effect":true,"action":["*"],"resource":["*"]}]}', '2019-09-14 09:15:12.129781'); INSERT INTO "tb_auth_policy"("name", "description", "policy", "time") VALUES ('NotePublicReadOnlyAccess', 'public文档只读权限', '{"version":"1","description":"public文档只读权限","statement":[{"effect":true,"action":["Get*"],"resource":["/note/content/public/*"]}]}', '2019-09-14 09:15:12.129781'); INSERT INTO "tb_auth_policy"("name", "description", "policy", "time") VALUES ('guest', 'guest使用', '{"version":"1","description":"全部文档只读权限","statement":[{"effect":true,"action":["auth:*:Get*","status:*:Get*"],"resource":["*"],"conditions":{"time":{"befor":"2020-12-31"},"method":["GET"],"browser":["Chrome/60+","Chromium/0-90","Firefox"]}}]}', '2019-09-28 08:12:35.656327');

PostgreSQL End

func NewPolicyController

func NewPolicyController(db *sql.DB, ram *middleware.Ram) *PolicyController

func (*PolicyController) DeleteIdById

func (ctl *PolicyController) DeleteIdById() (err error)

DeleteIdById 方法根据id删除策略。

func (*PolicyController) DeleteNameByName

func (ctl *PolicyController) DeleteNameByName() (err error)

DeleteNameByName 方法根据名称删除策略。

func (*PolicyController) GetCount

func (ctl *PolicyController) GetCount() interface{}

func (*PolicyController) GetIdById

func (ctl *PolicyController) GetIdById() (interface{}, error)

func (*PolicyController) GetIndex

func (ctl *PolicyController) GetIndex() (interface{}, error)

func (*PolicyController) GetList

func (ctl *PolicyController) GetList() (interface{}, error)

func (*PolicyController) GetNameByName

func (ctl *PolicyController) GetNameByName() (interface{}, error)

func (*PolicyController) GetSearchByKey

func (ctl *PolicyController) GetSearchByKey() (interface{}, error)

func (*PolicyController) GetUserIdById

func (ctl *PolicyController) GetUserIdById() (interface{}, error)

GetUserIdById 方法根据权限id获取用户全部用户信息

func (*PolicyController) GetUserNameByName

func (ctl *PolicyController) GetUserNameByName() (interface{}, error)

GetUserNameByName 方法根据权限name获取用户全部用户信息

func (*PolicyController) PostIdById

func (ctl *PolicyController) PostIdById() (err error)

PostIdById 方法根据id修改一个策略的信息。

func (*PolicyController) PostNameByName

func (ctl *PolicyController) PostNameByName() (err error)

PostNameByName 方法根据名称修改一个策略的信息。

func (*PolicyController) PutNew

func (ctl *PolicyController) PutNew() (err error)

PutNew 方法新建一个策略信息,策略的policy毕竟是一个json。

func (*PolicyController) Release

func (ctl *PolicyController) Release() error

Release 方法用于刷新ram策略信息。

type Role

type Role struct {
	Id          string `json:"id"`
	Name        string `json:"name"`
	Description string `json:"description"`
}

type RoleController

type RoleController struct {
	controller.ControllerWebsite
	Ram *middleware.Ram
}

func NewRoleController

func NewRoleController(db *sql.DB, ram *middleware.Ram) *RoleController

func (*RoleController) DeleteIdById

func (ctl *RoleController) DeleteIdById() (err error)

func (*RoleController) DeleteNameByName

func (ctl *RoleController) DeleteNameByName() (err error)

func (*RoleController) GetIdById

func (ctl *RoleController) GetIdById() (interface{}, error)

func (*RoleController) GetIndex

func (ctl *RoleController) GetIndex() (interface{}, error)

func (*RoleController) GetList

func (ctl *RoleController) GetList() (interface{}, error)

func (*RoleController) GetNameByName

func (ctl *RoleController) GetNameByName() (interface{}, error)

func (*RoleController) GetPermissionIdById

func (ctl *RoleController) GetPermissionIdById() (interface{}, error)

GetUserIdById 方法根据角色id获取用户全部权限信息

func (*RoleController) GetPermissionNameByName

func (ctl *RoleController) GetPermissionNameByName() (interface{}, error)

GetUserNameByName 方法根据角色name获取用户全部权限信息

func (*RoleController) GetSearch

func (ctl *RoleController) GetSearch() (interface{}, error)

func (*RoleController) GetUserIdById

func (ctl *RoleController) GetUserIdById() (interface{}, error)

GetUserIdById 方法根据角色id获取用户全部用户信息

func (*RoleController) GetUserNameByName

func (ctl *RoleController) GetUserNameByName() (interface{}, error)

GetUserNameByName 方法根据角色name获取用户全部用户信息

func (*RoleController) PostIdById

func (ctl *RoleController) PostIdById() (err error)

func (*RoleController) PostNameByName

func (ctl *RoleController) PostNameByName() (err error)

func (*RoleController) PutNew

func (ctl *RoleController) PutNew() (err error)

type SenderConfig

type SenderConfig struct {
	Mail MailSenderConfig `json:"mail" set:"mail"`
}

type User

type User struct {
	ID        int       `json:"id"`
	Name      string    `json:"name"`
	Status    int       `json:"status"`
	Level     int       `json:"level"`
	Mail      string    `json:"mail"`
	Tel       string    `json:"tel"`
	Icon      int       `json:"icon"`
	Lang      string    `json:"lang"`
	Loginip   int64     `json:"loginip"`
	Logintime time.Time `json:"logintime"`
	Sigintime time.Time `json:"sigintime"`
}

PostgreSQL Begin

-- 用户信息表 CREATE SEQUENCE seq_auth_user_info_id INCREMENT by 1 MINVALUE 1 START 1; CREATE TABLE tb_auth_user_info(

"id" INTEGER PRIMARY KEY DEFAULT nextval('seq_auth_user_info_id'),
"name" VARCHAR(32) NOT NULL,
"status" INTEGER DEFAULT 0,
"level" INTEGER DEFAULT 0,
"mail" VARCHAR(48) DEFAULT "",
"tel" VARCHAR(16) DEFAULT "",
"icon" INTEGER DEFAULT 0,
"lang" VARCHAR(16) DEFAULT "",
"loginip" INTEGER DEFAULT 0,
"logintime" TIMESTAMP,
"sigintime" TIMESTAMP DEFAULT (now())

); COMMENT ON TABLE "public"."tb_auth_user_info" IS '用户信息表'; COMMENT ON COLUMN "tb_auth_user_info"."icon" IS '图标ID,0使用gravatar'; COMMENT ON COLUMN "tb_auth_user_info"."loginip" IS '登录IP'; COMMENT ON COLUMN "tb_auth_user_info"."logintime" IS '上次登录时间'; COMMENT ON COLUMN "tb_auth_user_info"."sigintime" IS '注册时间';

-- 用户图标 CREATE SEQUENCE seq_auth_user_icon_id INCREMENT by 1 MINVALUE 1 START 1; CREATE TABLE tb_auth_user_icon(

"id" INTEGER PRIMARY KEY DEFAULT nextval('seq_auth_user_icon_id'),
"user" INTEGER NOT NULL,
"data" bytea

); COMMENT ON TABLE "public"."tb_auth_user_icon" IS '用户图标'; COMMENT ON COLUMN "tb_auth_user_icon"."user" IS '用户ID'; COMMENT ON COLUMN "tb_auth_user_icon"."data" IS '图标二进制文件数据';

-- 用户绑定权限列表 CREATE TABLE tb_auth_user_permission(

"userid" INTEGER,
"permissionid" INTEGER,
"effect" bool,
"time" TIMESTAMP DEFAULT (now()),
PRIMARY KEY("userid", "permissionid")

); COMMENT ON TABLE "public"."tb_auth_user_permission" IS 'ACL用户绑定权限列表'; COMMENT ON COLUMN "tb_auth_user_permission"."userid" IS '用户id'; COMMENT ON COLUMN "tb_auth_user_permission"."permissionid" IS '权限id';

-- 用户绑定角色关系 CREATE TABLE tb_auth_user_role(

"userid" INTEGER,
"roleid" INTEGER,
"time" TIMESTAMP  DEFAULT (now()),
PRIMARY KEY("userid", "roleid")

); COMMENT ON TABLE "public"."tb_auth_user_role" IS 'RBAC用户绑定角色关系'; COMMENT ON COLUMN "tb_auth_user_role"."userid" IS '用户id'; COMMENT ON COLUMN "tb_auth_user_role"."roleid" IS '角色id';

-- 用户绑定策略 CREATE TABLE tb_auth_user_policy(

"userid" INTEGER,
"policyid" INTEGER,
"index" INTEGER DEFAULT 0,
"time" TIMESTAMP DEFAULT (now()),
PRIMARY KEY("userid", "policyid")

); COMMENT ON TABLE "public"."tb_auth_user_policy" IS 'PBAC用户绑定策略'; COMMENT ON COLUMN "tb_auth_user_policy"."userid" IS 'User ID'; COMMENT ON COLUMN "tb_auth_user_policy"."policyid" IS 'Polic ID'; COMMENT ON COLUMN "tb_auth_user_policy"."index" IS '策略优先级';

INSERT INTO "public"."tb_auth_user_info"("name", "status", "level", "mail", "tel", "icon", "loginip", "logintime", "sigintime") VALUES ('root', 1, 0, 'eudore@eudore.cn', NULL, 0, 0, '2019-02-07 22:57:59', '2019-02-07 09:03:18.124699'); INSERT INTO "public"."tb_auth_user_info"("name", "status", "level", "mail", "tel", "icon", "loginip", "logintime", "sigintime") VALUES ('guest', 0, 0, 'guest@eudore.cn', ”, 0, 0, '2019-01-01 00:00:00', '2019-04-27 07:41:38.974911');

-- 绑定默认权限 任意用户可以获得用户图标 INSERT INTO "tb_auth_user_permission"("userid", "permissionid", "effect") VALUES (0, (SELECT id FROM "tb_auth_permission" WHERE "name"='auth:User:GetIconNameByName'), 't');

INSERT INTO "tb_auth_user_policy"("userid", "policyid", "index") VALUES((SELECT id FROM tb_auth_user_info WHERE "name"='root'), (SELECT id FROM tb_auth_policy WHERE "name"='AdministratorAccess'), 100); INSERT INTO "tb_auth_user_policy"("userid", "policyid", "index") VALUES((SELECT id FROM tb_auth_user_info WHERE "name"='guest'), (SELECT id FROM tb_auth_policy WHERE "name"='guest'), 100);

PostgreSQL End

type UserController

type UserController struct {
	controller.ControllerWebsite
	Ram *middleware.Ram
}

func NewUserController

func NewUserController(app *eudore.Eudore, db *sql.DB, ram *middleware.Ram) *UserController

func (*UserController) DeleteBindPermissionById

func (ctl *UserController) DeleteBindPermissionById() error

DeleteBindPermissionById 方法批量移除用户权限。

body: [{"id":1},{"id":2}]

func (*UserController) DeleteBindPermissionByUidById

func (ctl *UserController) DeleteBindPermissionByUidById() (err error)

DeleteBindPermissionByUidById 方法移除用户的一个权限

func (*UserController) DeleteBindPolicyById

func (ctl *UserController) DeleteBindPolicyById() error

DeleteBindPolicyById 方法给用户批量删除多条策略。

body: [{"id":4},{"id":6}]

func (*UserController) DeleteBindPolicyByUidById

func (ctl *UserController) DeleteBindPolicyByUidById() (err error)

DeleteBindPolicyByUidById 方法给指定用户删除指定权限。

func (*UserController) DeleteBindRoleById

func (ctl *UserController) DeleteBindRoleById() error

DeleteBindRoleById 方法给用户删除绑定多个角(jue)色。

body: [{"id":4},{"id":6}]

func (*UserController) DeleteBindRoleByUidById

func (ctl *UserController) DeleteBindRoleByUidById() (err error)

func (*UserController) DeleteIdById

func (ctl *UserController) DeleteIdById() (err error)

func (*UserController) DeleteNameByName

func (ctl *UserController) DeleteNameByName() (err error)

func (*UserController) GetCount

func (ctl *UserController) GetCount() interface{}

func (*UserController) GetIconIdById

func (ctl *UserController) GetIconIdById()

func (*UserController) GetIconNameByName

func (ctl *UserController) GetIconNameByName() error

func (*UserController) GetIndex

func (ctl *UserController) GetIndex() (interface{}, error)

func (*UserController) GetInfoIdById

func (ctl *UserController) GetInfoIdById() (interface{}, error)

func (*UserController) GetInfoNameByName

func (ctl *UserController) GetInfoNameByName() (interface{}, error)

func (*UserController) GetPermissionIdById

func (ctl *UserController) GetPermissionIdById() (interface{}, error)

GetPermissionIdById 方法根据用户id获取用户全部权限信息

func (*UserController) GetPermissionNameByName

func (ctl *UserController) GetPermissionNameByName() (interface{}, error)

GetPermissionIdById 方法根据用户name获取用户全部权限信息

func (*UserController) GetPolicyIdById

func (ctl *UserController) GetPolicyIdById() (interface{}, error)

GetPolicyNameByName 方法根据策略id获得绑定的用户。

func (*UserController) GetPolicyNameByName

func (ctl *UserController) GetPolicyNameByName() (interface{}, error)

GetPolicyNameByName 方法根据策略name获得绑定的用户。

func (*UserController) GetRoleIdById

func (ctl *UserController) GetRoleIdById() (interface{}, error)

func (*UserController) GetRoleNameByName

func (ctl *UserController) GetRoleNameByName() (interface{}, error)

func (*UserController) GetRouteParam

func (ctl *UserController) GetRouteParam(pkg, name, method string) string

GetRouteParam 方法额外添加bind路由参数信息,用于Release刷新ram。

func (*UserController) GetSetting

func (ctl *UserController) GetSetting() (interface{}, error)

用户配置

func (*UserController) PostIconById

func (ctl *UserController) PostIconById()

func (*UserController) PostInfoById

func (ctl *UserController) PostInfoById()

func (*UserController) PostSettingById

func (ctl *UserController) PostSettingById()

func (*UserController) PutBindPermissionAllowByUidById

func (ctl *UserController) PutBindPermissionAllowByUidById() (err error)

PutBindPermissionAllowByUidById 方法给用户绑定一个允许权限

func (*UserController) PutBindPermissionById

func (ctl *UserController) PutBindPermissionById() error

PutBindPermissionById 方法给用户批量绑定多条权限。

body: [{"id":4,"effect":"deny"},{"id":6,"effect":"allow"}]

func (*UserController) PutBindPermissionDenyByUidById

func (ctl *UserController) PutBindPermissionDenyByUidById() error

PutBindPermissionDenyByUidById 方法给用户绑定一个拒绝权限

func (*UserController) PutBindPolicyById

func (ctl *UserController) PutBindPolicyById() error

PutBindPolicyById 方法给用户批量绑定多条策略。

body: [{"id":4},{"id":6}]

func (*UserController) PutBindPolicyByUidById

func (ctl *UserController) PutBindPolicyByUidById() (err error)

PutBindPolicyByUidById 方法给指定用户绑定指定权限。

func (*UserController) PutBindRoleById

func (ctl *UserController) PutBindRoleById() error

PutBindRoleById 方法给用户批量绑定多个角(jue)色。

body: [{"id":4},{"id":6}]

func (*UserController) PutBindRoleByUidById

func (ctl *UserController) PutBindRoleByUidById() (err error)

func (*UserController) PutNew

func (ctl *UserController) PutNew()

PutNew 方法创建一个用户.

func (*UserController) Release

func (ctl *UserController) Release() error

Release 方法刷新用户绑定ram资源信息。

Directories

Path Synopsis
http oauth2 define.
http oauth2 define.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL