mirror of
https://github.com/fastapiadmin/FastapiAdmin.git
synced 2026-09-21 04:46:26 +00:00
添加 PermissionFilterStrategy 枚举定义不同权限过滤策略 在基础模型和业务模型中设置默认权限策略 重构权限服务支持策略模式,根据模型策略选择过滤方法 前端添加角色部门显示和默认头像处理
110 lines
2.4 KiB
Python
110 lines
2.4 KiB
Python
from enum import Enum, unique
|
|
|
|
|
|
@unique
|
|
class EnvironmentEnum(str, Enum):
|
|
DEV = "dev"
|
|
PROD = "prod"
|
|
|
|
|
|
@unique
|
|
class BusinessType(Enum):
|
|
"""
|
|
业务操作类型
|
|
|
|
OTHER: 其它
|
|
INSERT: 新增
|
|
UPDATE: 修改
|
|
DELETE: 删除
|
|
GRANT: 授权
|
|
EXPORT: 导出
|
|
IMPORT: 导入
|
|
FORCE: 强退
|
|
GENCODE: 生成代码
|
|
CLEAN: 清空数据
|
|
"""
|
|
|
|
OTHER = 0
|
|
INSERT = 1
|
|
UPDATE = 2
|
|
DELETE = 3
|
|
GRANT = 4
|
|
EXPORT = 5
|
|
IMPORT = 6
|
|
FORCE = 7
|
|
GENCODE = 8
|
|
CLEAN = 9
|
|
|
|
|
|
@unique
|
|
class RedisInitKeyConfig(Enum):
|
|
"""系统内置Redis键名枚举"""
|
|
|
|
ACCESS_TOKEN = {"key": "access_token", "remark": "登录令牌信息"}
|
|
REFRESH_TOKEN = {"key": "refresh_token", "remark": "刷新令牌信息"}
|
|
CAPTCHA_CODES = {"key": "captcha_codes", "remark": "图片验证码"}
|
|
SYSTEM_CONFIG = {"key": "system_config", "remark": "系统配置"}
|
|
SYSTEM_DICT = {"key": "system_dict", "remark": "数据字典"}
|
|
APSCHEDULER_LOCK_KEY = {
|
|
"key": "scheduler_job_lock",
|
|
"remark": "定时任务初始化锁",
|
|
}
|
|
|
|
@property
|
|
def key(self) -> str:
|
|
"""获取Redis键名"""
|
|
return self.value.get("key", "")
|
|
|
|
@property
|
|
def remark(self) -> str:
|
|
"""获取Redis键名说明"""
|
|
return self.value.get("remark", "")
|
|
|
|
|
|
class McpType(Enum):
|
|
"""Mcp 服务器类型"""
|
|
|
|
stdio = 0
|
|
sse = 1
|
|
|
|
|
|
class McpLLMProvider(Enum):
|
|
"""MCP 大语言模型供应商"""
|
|
|
|
openai = "openai"
|
|
deepseek = "deepseek"
|
|
anthropic = "anthropic"
|
|
gemini = "gemini"
|
|
qwen = "qwen"
|
|
|
|
|
|
@unique
|
|
class QueueEnum(str, Enum):
|
|
"""队列枚举"""
|
|
none = "None"
|
|
not_none = "not None"
|
|
date = "date"
|
|
month = "month"
|
|
like = "like"
|
|
eq = "eq" or "=="
|
|
in_ = "in"
|
|
between = "between"
|
|
ne = "!=" or "ne"
|
|
gt = ">" or "gt"
|
|
ge = ">=" or "ge"
|
|
lt = "<" or "lt"
|
|
le = "<=" or "le"
|
|
|
|
|
|
class PermissionFilterStrategy(str, Enum):
|
|
"""
|
|
权限过滤策略枚举
|
|
|
|
定义不同的权限过滤策略,让模型选择合适的过滤方式
|
|
"""
|
|
DATA_SCOPE = "data_scope" # 基于数据范围权限(默认)
|
|
ROLE_BASED = "role_based" # 基于角色授权(菜单)
|
|
DEPT_BASED = "dept_based" # 基于部门关联(部门、角色)
|
|
SELF_ONLY = "self_only" # 仅本人数据
|
|
USER_ROLE = "user_role" # 当前用户绑定的角色
|