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.