Files
web/server/models/permission.go

50 lines
1.8 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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: "普通用户",
}