diff --git a/backend/app/core/permission_cache.py b/backend/app/core/permission_cache.py index 2c05369e..6ba21423 100644 --- a/backend/app/core/permission_cache.py +++ b/backend/app/core/permission_cache.py @@ -12,11 +12,6 @@ from typing import Any from sqlalchemy.ext.asyncio import AsyncSession -from app.core.project_permissions import ( - get_project_role_permissions, - get_member_role, -) - class PermissionCache: """权限缓存管理器 @@ -63,6 +58,8 @@ class PermissionCache: Returns: 权限矩阵:{role: {module: {action: bool}}} """ + from app.core.project_permissions import get_project_role_permissions as _get_project_role_permissions + if ttl is None: ttl = self.default_ttl @@ -75,7 +72,7 @@ class PermissionCache: return cached_data # 缓存未命中,从数据库查询 - permissions = await get_project_role_permissions(db, study_id) + permissions = await _get_project_role_permissions(db, study_id) # 存储到缓存 self._project_permissions_cache[cache_key] = (permissions, time.time()) @@ -100,6 +97,8 @@ class PermissionCache: Returns: 成员在项目中的角色,如果不是成员则返回 None """ + from app.core.project_permissions import get_member_role as _get_member_role + if ttl is None: ttl = self.default_ttl @@ -112,7 +111,7 @@ class PermissionCache: return cached_role # 缓存未命中,从数据库查询 - role = await get_member_role(db, study_id, user_id) + role = await _get_member_role(db, study_id, user_id) # 存储到缓存 self._member_role_cache[cache_key] = (role, time.time())