1515from common import result
1616from common .auth import TokenAuth
1717from common .auth .authentication import has_permissions
18- from common .constants .permission_constants import PermissionConstants
18+ from common .constants .permission_constants import PermissionConstants , RoleConstants
1919from common .log .log import log
2020from common .result import DefaultResultSerializer
2121from system_manage .api .user_resource_permission import UserResourcePermissionAPI , EditUserResourcePermissionAPI
@@ -31,6 +31,7 @@ def get_user_operation_object(user_id):
3131 }
3232 return {}
3333
34+
3435class WorkSpaceUserResourcePermissionView (APIView ):
3536 authentication_classes = [TokenAuth ]
3637
@@ -42,7 +43,8 @@ class WorkSpaceUserResourcePermissionView(APIView):
4243 responses = UserResourcePermissionAPI .get_response (),
4344 tags = [_ ('Resources authorization' )] # type: ignore
4445 )
45- @has_permissions (PermissionConstants .WORKSPACE_USER_RESOURCE_PERMISSION_READ .get_workspace_permission ())
46+ @has_permissions (PermissionConstants .WORKSPACE_USER_RESOURCE_PERMISSION_READ .get_workspace_permission (),
47+ RoleConstants .ADMIN , RoleConstants .WORKSPACE_MANAGE .get_workspace_role ())
4648 def get (self , request : Request , workspace_id : str , user_id : str ):
4749 return result .success (UserResourcePermissionSerializer (
4850 data = {'workspace_id' : workspace_id , 'user_id' : user_id }
@@ -60,6 +62,8 @@ def get(self, request: Request, workspace_id: str, user_id: str):
6062 @log (menu = 'System' , operate = 'Modify the resource authorization list' ,
6163 get_operation_object = lambda r , k : get_user_operation_object (k .get ('user_id' ))
6264 )
65+ @has_permissions (PermissionConstants .WORKSPACE_USER_RESOURCE_PERMISSION_EDIT .get_workspace_permission (),
66+ RoleConstants .ADMIN , RoleConstants .WORKSPACE_MANAGE .get_workspace_role ())
6367 def put (self , request : Request , workspace_id : str , user_id : str ):
6468 return result .success (UserResourcePermissionSerializer (
6569 data = {'workspace_id' : workspace_id , 'user_id' : user_id }
0 commit comments