modify: 修复 static_files.py 错误

This commit is contained in:
2026-04-29 13:55:23 +08:00
parent 8a538eee52
commit fc99e52505
2 changed files with 49 additions and 0 deletions
@@ -44,3 +44,52 @@ class PermissionConstant:
CUSTOMER_EXPORT = "customer:export" # 导出客户
...
@classmethod
def get_all(cls):
"""
获取系统中定义的所有权限字符串列表
该方法通过反射机制自动收集所有内部类中定义的权限常量,
用于数据库同步、权限初始化等场景。
工作流程:
1. 遍历 Permission 类的所有属性
2. 跳过私有属性和非类属性
3. 对每个内部类,遍历其所有字符串类型的权限常量
4. 过滤出符合 "resource:action" 格式的权限标识
Returns:
list[str]: 所有权限字符串的列表,例如:
[
'sales_order:create',
'sales_order:read',
'customer:export',
...
]
使用示例:
>>> all_perms = Permission.get_all()
>>> len(all_perms) # 获取权限总数
85
>>> 'sales_order:create' in all_perms # 检查权限是否存在
True
Note:
- 该方法会自动排除以下划线开头的私有属性
- 只收集包含冒号的字符串值,确保是有效的权限标识
- 返回的列表顺序取决于 dir() 函数的返回顺序
"""
perms = []
for attr_name in dir(cls):
attr = getattr(cls, attr_name)
if attr_name.startswith("_") or not hasattr(attr, "__dict__"):
continue
# 遍历内部类的属性
for sub_attr in dir(attr):
if sub_attr.startswith("_"):
continue
val = getattr(attr, sub_attr)
if isinstance(val, str) and ":" in val:
perms.append(val)
return perms