80 lines
2.3 KiB
Python
80 lines
2.3 KiB
Python
"""权限点定义与角色默认权限"""
|
|
|
|
# ---- 权限点 ----
|
|
PERMISSIONS = {
|
|
# 用户管理
|
|
"user:view": "查看用户列表",
|
|
"user:create": "创建用户",
|
|
"user:edit": "编辑用户",
|
|
"user:delete": "删除用户",
|
|
"user:assign_permissions": "分配权限",
|
|
# 账号管理
|
|
"account:view_all": "查看所有账号(完整字段)",
|
|
"account:view_assigned": "查看分配给自己的账号(仅用户名)",
|
|
"account:import": "导入账号",
|
|
"account:assign": "分配账号给客服",
|
|
"account:delete": "删除账号",
|
|
# 登录任务
|
|
"login:batch": "发起批量登录",
|
|
"login:view_all": "查看所有登录任务",
|
|
"login:view_assigned": "查看自己账号的登录任务",
|
|
# Cookie
|
|
"cookie:view": "查看 Cookie",
|
|
"cookie:export": "导出 Cookie",
|
|
# 代理 & 白名单
|
|
"proxy:manage": "代理配置管理",
|
|
"whitelist:manage": "白名单配置管理",
|
|
"whitelist:test": "测试白名单",
|
|
# 系统
|
|
"system:settings": "系统设置",
|
|
"audit:view": "查看审计日志",
|
|
}
|
|
|
|
# ---- 角色默认权限 ----
|
|
ROLE_PERMISSIONS = {
|
|
"super_admin": list(PERMISSIONS.keys()), # 全部权限
|
|
"operation": [
|
|
"account:view_all",
|
|
"account:import",
|
|
"account:assign",
|
|
"account:delete",
|
|
"login:batch",
|
|
"login:view_all",
|
|
"cookie:view",
|
|
"cookie:export",
|
|
"proxy:manage",
|
|
"whitelist:manage",
|
|
"whitelist:test",
|
|
],
|
|
"support": [
|
|
"account:view_assigned",
|
|
],
|
|
}
|
|
|
|
# 角色中文映射
|
|
ROLE_LABELS = {
|
|
"super_admin": "超级管理员",
|
|
"operation": "运营",
|
|
"support": "客服",
|
|
}
|
|
|
|
|
|
def get_role_permissions(role: str) -> list[str]:
|
|
"""获取角色拥有的权限列表。"""
|
|
return ROLE_PERMISSIONS.get(role, [])
|
|
|
|
|
|
def get_user_permissions(user) -> list[str]:
|
|
"""获取用户的实际权限列表。
|
|
优先使用用户自定义权限(custom_permissions),
|
|
若为 None 则回退到角色默认权限。
|
|
"""
|
|
if user.custom_permissions is not None:
|
|
return user.custom_permissions
|
|
return get_role_permissions(user.role)
|
|
|
|
|
|
def has_permission(role: str, permission: str) -> bool:
|
|
"""检查角色是否拥有某权限。"""
|
|
return permission in get_role_permissions(role)
|