feat: add tenant-scoped rule and permission management

This commit is contained in:
wren
2026-05-21 22:03:08 +08:00
parent a2c2bf1969
commit 1f1bccf3b3
193 changed files with 64463 additions and 1771 deletions
@@ -17,8 +17,26 @@ from fastapi_modules.fastapi_leaudit.services.permissionService import IPermissi
class PermissionServiceImpl(IPermissionService):
"""权限检查服务实现。"""
_GLOBAL_PERMISSION_CACHE: dict[int, tuple[float, tuple[set[str], set[str]]]] = {}
def __init__(self) -> None:
self._permission_cache: dict[int, tuple[float, tuple[set[str], set[str]]]] = {}
self._permission_cache = self.__class__._GLOBAL_PERMISSION_CACHE
@classmethod
def InvalidateUser(cls, UserId: int) -> None:
"""清理指定用户权限缓存。"""
cls._GLOBAL_PERMISSION_CACHE.pop(UserId, None)
@classmethod
def InvalidateUsers(cls, UserIds: list[int]) -> None:
"""批量清理用户权限缓存。"""
for userId in UserIds:
cls.InvalidateUser(int(userId))
@classmethod
def InvalidateAll(cls) -> None:
"""清理全部权限缓存。角色权限批量变更后使用。"""
cls._GLOBAL_PERMISSION_CACHE.clear()
async def CheckPermission(self, UserId: int, PermissionKey: str) -> bool:
"""检查用户是否拥有指定权限。