refactor: streamline auth_resource method for improved readability and maintainability

This commit is contained in:
CaptainB 2025-07-05 18:06:00 +08:00
parent e7a30903ba
commit 13596ed7e8

View File

@ -104,29 +104,27 @@ class UserResourcePermissionSerializer(serializers.Serializer):
def auth_resource(self, resource_id: str): def auth_resource(self, resource_id: str):
self.is_valid(raise_exception=True) self.is_valid(raise_exception=True)
workspace_manage = is_workspace_manage(self.data.get('user_id'), self.data.get('workspace_id')) auth_target_type = self.data.get('auth_target_type')
if not workspace_manage: workspace_id = self.data.get('workspace_id')
auth_target_type = self.data.get('auth_target_type') user_id = self.data.get('user_id')
workspace_id = self.data.get('workspace_id') wurp = QuerySet(WorkspaceUserResourcePermission).filter(auth_target_type=auth_target_type,
user_id = self.data.get('user_id') workspace_id=workspace_id).first()
wurp = QuerySet(WorkspaceUserResourcePermission).filter(auth_target_type=auth_target_type, auth_type = wurp.auth_type if wurp else ResourceAuthType.RESOURCE_PERMISSION_GROUP
workspace_id=workspace_id).first() # 自动授权给创建者
auth_type = wurp.auth_type if wurp else ResourceAuthType.RESOURCE_PERMISSION_GROUP WorkspaceUserResourcePermission(
# 自动授权给创建者 target=resource_id,
WorkspaceUserResourcePermission( auth_target_type=auth_target_type,
target=resource_id, permission_list=[ResourcePermission.VIEW,
auth_target_type=auth_target_type, ResourcePermission.MANAGE] if auth_type == ResourceAuthType.RESOURCE_PERMISSION_GROUP else [
permission_list=[ResourcePermission.VIEW, ResourcePermissionRole.ROLE],
ResourcePermission.MANAGE] if auth_type == ResourceAuthType.RESOURCE_PERMISSION_GROUP else [ workspace_id=workspace_id,
ResourcePermissionRole.ROLE], user_id=user_id,
workspace_id=workspace_id, auth_type=auth_type
user_id=user_id, ).save()
auth_type=auth_type # 刷新缓存
).save() version = Cache_Version.PERMISSION_LIST.get_version()
# 刷新缓存 key = Cache_Version.PERMISSION_LIST.get_key(user_id=user_id)
version = Cache_Version.PERMISSION_LIST.get_version() cache.delete(key, version=version)
key = Cache_Version.PERMISSION_LIST.get_key(user_id=user_id)
cache.delete(key, version=version)
return True return True
def list(self, user, with_valid=True): def list(self, user, with_valid=True):