"""API端点权限注册装饰器""" from typing import Callable def register_api_endpoint( endpoint_key: str, module: str, action: str, description: str = "", default_roles: list[str] | None = None, prerequisite_permissions: list[str] | None = None, ): """装饰器:注册API端点权限 参数: endpoint_key: 接口标识,格式为 "subjects:create" module: 关联的模块,用于向后兼容 action: 操作类型,"read" 或 "write" description: 接口描述 default_roles: 默认有权限的角色列表 prerequisite_permissions: 前置权限列表 """ def decorator(func: Callable) -> Callable: func._endpoint_key = endpoint_key func._module = module func._action = action func._description = description func._default_roles = default_roles or [] func._prerequisite_permissions = prerequisite_permissions or [] return func return decorator