Documentation ¶
Index ¶
- Constants
- func AdminModule(ac quick.Context)
- func AdminSessionCheck(storage session.Storage, fnCanAccessAPI FnCanAccessAPI, logf quick.Logf) echo.MiddlewareFunc
- func Migrate(db *gorm.DB) error
- type API
- type APIData
- type APIDataList
- type Action
- type Admin
- type AdminLoginReq
- type AdminRole
- type CreateAdminCmd
- type DataPerm
- type DataPerms
- type FnBuildDataPermAppliers
- type FnCanAccessAPI
- type Menu
- type MenuData
- type MenuDataList
- type MenuList
- type MenuNode
- type QueryAdminPageByRoleCmd
- type QueryAdminPageCmd
- type QueryRoleListCmd
- type Role
- type RoleData
- type RoleDataList
- type RoleMenu
- type Roles
- type Service
- type Session
- type UpdateAdminCmd
- type UpdateAdminPasswordCmd
- type WxAdmin
Constants ¶
View Source
const AdminSessionID = "AdminSessionID"
Variables ¶
This section is empty.
Functions ¶
func AdminModule ¶
func AdminSessionCheck ¶
func AdminSessionCheck(storage session.Storage, fnCanAccessAPI FnCanAccessAPI, logf quick.Logf) echo.MiddlewareFunc
AdminSessionCheck
Types ¶
type API ¶
type API struct { ID uint `gorm:"primaryKey" json:"id"` Name string `gorm:"type:varchar(40)" json:"name"` // 接口名 Method string `gorm:"type:varchar(20);not null" json:"method"` // 接口方式 Path string `gorm:"type:varchar(100);not null" json:"path"` // 接口路径 }
API 是接口
type APIDataList ¶
type APIDataList []APIData
APIDataList 是简化API列表
func (*APIDataList) Scan ¶
func (r *APIDataList) Scan(value interface{}) error
Scan 实现 driver.Scaner
type Admin ¶
type Admin struct { ID uint `gorm:"primaryKey" json:"id"` Account string `gorm:"type:varchar(30);uniqueIndex;not null" json:"account"` Password string `gorm:"type:varchar(150);not null" json:"-"` Name string `gorm:"type:varchar(30)" json:"name"` Mobile string `gorm:"type:varchar(20)" json:"mobile"` Code string `gorm:"type:varchar(30);not null;uniqueIndex" json:"code"` Active bool `json:"active"` CreatedAt time.Time `json:"createdAt"` UpdatedAt time.Time `json:"updatedAt"` }
Admin 是管理员
func (Admin) CheckPassword ¶
CheckPassword 检查传入的密码是否本实例的密码
func (*Admin) Desensitive ¶
func (o *Admin) Desensitive()
type AdminLoginReq ¶
type AdminLoginReq struct { Account string `json:"account" validate:"nonzero"` Password string `json:"password" validate:"nonzero"` Remember bool `json:"remember"` }
AdminLoginReq 是管理员登录请求
type AdminRole ¶
type AdminRole struct { ID uint `gorm:"primaryKey" json:"id"` AdminID uint `gorm:"index" json:"adminID"` RoleID uint `gorm:"index" json:"roleID"` }
AdminRole 是管理员的角色
type CreateAdminCmd ¶
type CreateAdminCmd struct { Account string `json:"account" validate:"nonzero"` Password string `json:"password" validate:"nonzero"` Name string `json:"name" validate:"nonzero"` Mobile string `json:"mobile" validate:"nonzero"` Active bool `json:"active"` RoleIDList []uint `json:"roleIdList"` }
CreateAdminCmd 是添加管理员的命令
type DataPerm ¶
type DataPerm struct { Domain string `json:"domain"` Perm map[string]json.RawMessage `json:"perm"` }
type FnBuildDataPermAppliers ¶
FnBuildDataPermAppliers 根据adminID构造出数据权限适配器
type FnCanAccessAPI ¶
FnCanAccessAPI 检查adminID是否有有个接口的访问权限
type Menu ¶
type Menu struct { ID uint `gorm:"primaryKey" json:"id"` ParentID uint `json:"parentID"` Name string `gorm:"type:varchar(30);not null" json:"name"` Type string `gorm:"type:varchar(10)" json:"type"` URL string `gorm:"type:varchar(50);not null" json:"url"` Sort int `json:"sort"` APIList sqlex.StringList `gorm:"type:varchar(2000)" json:"apiList"` CreatedAt time.Time `json:"createdAt"` UpdatedAt time.Time `json:"updatedAt"` }
Menu 是菜单
type MenuDataList ¶
type MenuDataList []MenuData
MenuDataList 是菜单列表
func (*MenuDataList) Scan ¶
func (r *MenuDataList) Scan(value interface{}) error
Scan 实现 driver.Scaner
type MenuNode ¶
type MenuNode struct { ID uint `json:"id"` ParentID uint `json:"parentID"` Name string `json:"name"` Type string `json:"type"` URL string `json:"url"` Children []*MenuNode `json:"children"` Actions []*Action `json:"actions"` }
MenuNode 是菜单树
type QueryAdminPageByRoleCmd ¶
type QueryAdminPageByRoleCmd struct { Page int `query:"page"` Size int `query:"size"` RoleIDList []uint `query:"roleIDList"` Account string `query:"account"` Name string `query:"name"` Mobile string `query:"mobile"` Active *bool `query:"active"` }
QueryAdminPageByRoleCmd 是根据角色查询管理员的命令
type QueryAdminPageCmd ¶
type QueryAdminPageCmd struct { Page int `query:"page"` Size int `query:"size"` Account string `query:"account"` Name string `query:"name"` Mobile string `query:"mobile"` Active *bool `query:"active"` }
QueryAdminPageCmd 是查询管理员分页列表的命令
type QueryRoleListCmd ¶
QueryRoleListCmd 查询角色列表的命令
type Role ¶
type Role struct { ID uint `gorm:"primaryKey" json:"id"` // 角色ID Group string `gorm:"type:varchar(30);not null" json:"group"` // 所属组 Key string `gorm:"type:varchar(30);not null" json:"key"` // 角色特性 Name string `gorm:"type:varchar(30);not null" json:"name"` // 角色名称 DataPerms DataPerms `gorm:"type:varchar(500)" json:"dataPerm"` // 数据权限 CreatedAt time.Time `json:"createdAt"` UpdatedAt time.Time `json:"updatedAt"` }
Role 是角色
type RoleDataList ¶
type RoleDataList []RoleData
RoleDataList 是角色列表
func (*RoleDataList) Scan ¶
func (r *RoleDataList) Scan(value interface{}) error
Scan 实现 driver.Scaner
type RoleMenu ¶
type RoleMenu struct { ID uint `gorm:"primaryKey" json:"id"` RoleID uint `gorm:"index" json:"roleID"` MenuID uint `gorm:"index" json:"menuID"` }
RoleMenu 是角色的菜单
type Roles ¶
type Roles []Role
Roles 角色组 用来使多角色的一些判断更方便点
func (Roles) BelongGroup ¶
BelongGroup 判断角色是否不是归属某个组 只要有一个角色有即true
type Service ¶
type Service interface { QueryAdminPage(context.Context, QueryAdminPageCmd) ([]Admin, support.Page, error) // 查询管理员分页列表 GetAdminByID(context.Context, uint) (Admin, error) // 根据ID查找管理员 GetAdminByAccount(context.Context, string) (Admin, error) // 根据帐号查找管理员 GetAdminByWxopenid(context.Context, string) (Admin, error) // 根据微信openid查找管理员 CreateAdmin(context.Context, CreateAdminCmd) (Admin, error) // 创建管理员 UpdateAdmin(context.Context, UpdateAdminCmd) error // 修改管理员 UpdateAdminPassword(context.Context, UpdateAdminPasswordCmd) error // 修改管理员密码 QueryRoleListByAdminID(context.Context, uint) (Roles, error) // 查询管理员的角色列表 QueryRoleIDListByAdminID(context.Context, uint) ([]uint, error) // 查询管理员的角色ID列表 QueryMenuListByAdminID(context.Context, uint) ([]Menu, error) // 查询管理员拥有的菜单列表 QueryRoleList(context.Context, QueryRoleListCmd) ([]Role, error) // 查询所有角色列表 GetAdminByCode(ctx context.Context, code string) (data Admin, err error) // 根据code查找管理员 BindMiniapp(ctx context.Context, code, openid, password string) (err error) // 管理员绑定小程序 QueryAdminPageByRole(ctx context.Context, cmd QueryAdminPageByRoleCmd) (data []Admin, pg support.Page, err error) // 根据角色查询管理员 CanAccessAPI(ctx context.Context, adminID uint, method, path string) bool // 返回能否访问某个接口 GetPermData(ctx context.Context, adminID uint) []DataPerm // 返回管理员的数据权限 }
Service 是管理员服务
type UpdateAdminCmd ¶
type UpdateAdminCmd struct { ID uint `json:"id" validate:"nonzero"` Account string `json:"account" validate:"nonzero"` Name string `json:"name" validate:"nonzero"` Mobile string `json:"mobile" validate:"nonzero"` Active bool `json:"active"` RoleIDList []uint `json:"roleIdList"` }
UpdateAdminCmd 是修改管理员的命令
type UpdateAdminPasswordCmd ¶
type UpdateAdminPasswordCmd struct { ID uint `json:"id" validate:"nonzero"` Origin string `json:"origin" vaidate:"nonzero"` Password string `json:"password" validate:"nonzero"` }
UpdateAdminPasswordCmd 是修改管理员密码的命令
type WxAdmin ¶
type WxAdmin struct { ID uint `gorm:"primaryKey" json:"id"` Openid string `gorm:"type:varchar(100);not null;uniqueIndex" json:"openid"` AdminID uint `gorm:"not null" json:"adminID"` CreatedAt time.Time `json:"createdAt"` UpdatedAt time.Time `json:"updatedAt"` }
WxAdmin 是微信openid映射的管理员
Click to show internal directories.
Click to hide internal directories.