50 lines
1.8 KiB
Go
50 lines
1.8 KiB
Go
package models
|
||
|
||
// 权限码(与前端、路由 meta.permission 一致)
|
||
const (
|
||
PermSiteManage = "site:manage"
|
||
PermHomepageEdit = "homepage:edit"
|
||
PermPageManage = "page:manage"
|
||
PermModuleUpload = "module:upload"
|
||
PermUserManage = "user:manage"
|
||
PermWorkspaceManage = "workspace:manage"
|
||
PermConversationManage = "conversation:manage"
|
||
PermSMSConfig = "sms_config"
|
||
PermPaymentConfig = "payment_config"
|
||
PermRolePermission = "role:permission" // 角色权限管理
|
||
)
|
||
|
||
// PermissionItem 单条权限定义(JSON 须用小写 key/name,供前端展示与勾选)
|
||
type PermissionItem struct {
|
||
Key string `json:"key"`
|
||
Name string `json:"name"`
|
||
}
|
||
|
||
// AllPermissions 所有可配置权限(用于角色权限管理页)
|
||
var AllPermissions = []PermissionItem{
|
||
{Key: PermSiteManage, Name: "站点管理"},
|
||
{Key: PermHomepageEdit, Name: "首页编辑"},
|
||
{Key: PermPageManage, Name: "网页管理"},
|
||
{Key: PermModuleUpload, Name: "功能模块上传"},
|
||
{Key: PermUserManage, Name: "用户管理"},
|
||
{Key: PermWorkspaceManage, Name: "工作空间"},
|
||
{Key: PermConversationManage, Name: "对话管理"},
|
||
{Key: PermSMSConfig, Name: "短信配置"},
|
||
{Key: PermPaymentConfig, Name: "支付配置"},
|
||
{Key: PermRolePermission, Name: "角色权限管理"},
|
||
}
|
||
|
||
// RolePermissionsDoc MongoDB 文档:角色 ID -> 名称与权限列表(支持自定义角色)
|
||
type RolePermissionsDoc struct {
|
||
RoleID int `bson:"role_id" json:"role_id"`
|
||
RoleName string `bson:"role_name,omitempty" json:"role_name"`
|
||
Permissions []string `bson:"permissions" json:"permissions"`
|
||
}
|
||
|
||
// 预定义角色 ID 的默认名称(未在 DB 中存 role_name 时使用)
|
||
var DefaultRoleNames = map[int]string{
|
||
RoleIDSuperAdmin: "超级管理员",
|
||
RoleIDSuperUser: "超级用户",
|
||
RoleIDUser: "普通用户",
|
||
}
|