Documentation ¶
Overview ¶
权限表
此处采用RBAC0模型来构建权限体系,即用户有多角色、角色又有多权限
权限又拆分为菜单、页面、按钮、接口四种权限,然后权限后面又添加权限类型来区分前台/后台的权限 menu:xxx、page:xxx、button:xxx、api:xxx的形式来区分各个权限
超管权限:user_id=1为超级管理员权限,该用户会返回所有的权限、子用户列表
Index ¶
- func CheckAuth(uid uint, auth string, typ uint) bool
- func CreateAuth(c *Authority) error
- func CreateRole(c *Role) error
- func CreateUserChild(fid, uid, typ uint) error
- func GetUserAuth(uid uint, typ uint) []string
- func GetUserChild(uid uint, typ uint, sf bool) []uint
- func GetUserChildOnly(uid, typ uint) []uint
- func GetUserParent(uid, typ uint) uint
- func GetUserRole(uid uint) []uint
- func Regedit(c *Config)
- func ReplaceRoleAuth(id uint, auth []uint) error
- func ReplaceUserRole(uid uint, rid []uint) error
- type Authority
- type Config
- type Role
- type RoleAuth
- type RoleUser
- type UserChild
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CreateUserChild ¶
创建/修改用户关联
fid 上级用户ID 0-删除此条目记录 1-忽略此条目(超管用户拥有所有用户ID) 其余值则表示判断是否存在上级,如果存在就修改,不存在就替换 uid 子用户ID 1-超管用户,此用户不可设置上下级关系,一旦传入此ID则直接返回nil typ 关联权限来源
func GetUserChild ¶
获取我的下级用户
uid 用户ID 1-超管用户,此用户会直接返回nil,所以需要外部判断如果uid==1就直接不查询此条件 typ 权限来源 sf 返回的下级ID中,是否需要包含自身 true-包含自身 false-不含自身
Types ¶
type Authority ¶
type Authority struct { Id uint `gorm:"column:id;primaryKey;type:INT UNSIGNED;not null;autoIncrement" json:"id" form:"id"` // 权限ID Fid uint `gorm:"column:fid;type:INT UNSIGNED;comment:上级ID" json:"fid" form:"fid"` // 上级权限ID Code string `gorm:"column:code;type:VARCHAR(200);comment:权限标识;UNIQUEINDEX:code" json:"code" form:"code"` // 权限标识,使用menu:xxx、page:xxx、button:xxx、api:xxx的形式来区分各个权限 Title string `gorm:"column:title;type:VARCHAR(200);comment:权限标题" json:"title" form:"title"` // 权限标题 Type uint `gorm:"column:type;type:INT UNSIGNED;comment:权限来源;UNIQUEINDEX:code" json:"type" form:"type"` // 权限来源 UserId uint `gorm:"column:user_id;type:INT UNSIGNED;comment:权限创建人" json:"user_id" form:"user_id"` // 创建人ID CreatedAt string `gorm:"column:created_at;type:DATETIME;comment:创建时间" json:"created_at" form:"created_at"` // 创建时间 UpdatedAt string `gorm:"column:updated_at;type:DATETIME;comment:最后修改时间" json:"updated_at" form:"updated_at"` // 更新时间 }
权限明细表
func GetAuthorityList ¶ added in v0.1.5
获取权限列表
fid 上级权限ID id 筛选ID列表【一旦传入此条件则fid自动失效】 offset 跳过条数 limit 查询条数
type Config ¶
type Config struct { DB *gorm.DB // 数据库连接 AuthorityName string // 权限表 RoleName string // 角色表 RoleAuthName string // 角色权限表 RoleUserName string // 用户角色表 UserChildName string // 用户关联表 AuthMap map[uint]string // 权限类型字典 }
配置项
type Role ¶
type Role struct { Id uint `gorm:"column:id;primaryKey;type:INT UNSIGNED;not null;autoIncrement" json:"id" form:"id"` // 角色ID Title string `gorm:"column:title;type:VARCHAR(200);comment:角色标题" json:"title" form:"title"` // 角色标题 CreatedAt string `gorm:"column:created_at;type:DATETIME;comment:创建时间" json:"created_at" form:"created_at"` // 创建时间 UpdatedAt string `gorm:"column:updated_at;type:DATETIME;comment:最后修改时间" json:"updated_at" form:"updated_at"` // 更新时间 }
角色表
type RoleAuth ¶
type RoleAuth struct { Id uint `gorm:"column:id;primaryKey;type:INT UNSIGNED;not null;autoIncrement" json:"id" form:"id"` // 角色ID RoleId uint `gorm:"column:role_id;type:INT UNSIGNED;comment:角色ID;UNIQUEINDEX:role_auth" json:"role_id" form:"role_id"` // 角色ID AuthId uint `gorm:"column:auth_id;type:INT UNSIGNED;comment:权限ID;UNIQUEINDEX:role_auth" json:"auth_id" form:"auth_id"` // 权限ID CreatedAt string `gorm:"column:created_at;type:DATETIME;comment:创建时间" json:"created_at" form:"created_at"` // 创建时间 }
角色权限表
type RoleUser ¶
type RoleUser struct { Id uint `gorm:"column:id;primaryKey;type:INT UNSIGNED;not null;autoIncrement" json:"id" form:"id"` // 角色ID RoleId uint `gorm:"column:role_id;type:INT UNSIGNED;comment:角色ID;UNIQUEINDEX:role_user" json:"role_id" form:"role_id"` // 角色ID UserId uint `gorm:"column:user_id;type:INT UNSIGNED;comment:用户ID;UNIQUEINDEX:role_user" json:"user_id" form:"user_id"` // 用户ID CreatedAt string `gorm:"column:created_at;type:DATETIME;comment:创建时间" json:"created_at" form:"created_at"` // 创建时间 }
角色用户表
type UserChild ¶
type UserChild struct { Id uint `gorm:"column:id;primaryKey;type:INT UNSIGNED;not null;autoIncrement" json:"id" form:"id"` // 角色ID SuperiorId uint `` // 上级用户ID /* 127-byte string literal not displayed */ UserId uint `gorm:"column:user_id;type:INT UNSIGNED;comment:用户ID;UNIQUEINDEX:user_child" json:"user_id" form:"user_id"` Type uint `gorm:"column:type;type:INT UNSIGNED;comment:权限来源;UNIQUEINDEX:user_child" json:"type" form:"type"` // 权限来源 // 用户ID CreatedAt string `gorm:"column:created_at;type:DATETIME;comment:创建时间" json:"created_at" form:"created_at"` // 创建时间 }
用户关联表
Click to show internal directories.
Click to hide internal directories.