Skip to content

Commit 97269d5

Browse files
committed
fix: System common user permission by role
1 parent d93b47d commit 97269d5

File tree

3 files changed

+16
-7
lines changed

3 files changed

+16
-7
lines changed

apps/common/auth/authentication.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,11 @@ def exist_permissions_by_view_permission(user_role: List[RoleConstants],
4848
:param permission: 所属权限
4949
:return: 是否存在 True False
5050
"""
51-
role_ok = any(list(map(lambda ur: permission.roleList.__contains__(ur), user_role)))
51+
52+
role_list = [user_r(request, kwargs) if callable(user_r) else user_r for user_r in
53+
permission.roleList]
54+
role_ok = any(list(map(lambda up: role_list.__contains__(up),
55+
role_list)))
5256
permission_list = [user_p(request, kwargs) if callable(user_p) else user_p for user_p in
5357
permission.permissionList
5458
]

apps/common/constants/permission_constants.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -396,7 +396,9 @@ def new_instance(permission_str: str):
396396
return Permission(group, operate)
397397

398398
def __str__(self):
399-
return self.group.value + ":" + self.operate.value + (
399+
400+
return self.group.value + (
401+
(":" + self.operate.value) if self.operate.value else '') + (
400402
(":" + self.resource_path) if self.resource_path is not None else '')
401403

402404
def __eq__(self, other):
@@ -1326,12 +1328,12 @@ def get_workspace_knowledge_permission(self):
13261328
def get_workspace_model_permission(self):
13271329
return lambda r, kwargs: Permission(group=self.value.group, operate=self.value.operate,
13281330
resource_path=
1329-
f"/WORKSPACE/{kwargs.get('workspace_id')}/MODEL/{kwargs.get('knowledge_id')}")
1331+
f"/WORKSPACE/{kwargs.get('workspace_id')}/MODEL/{kwargs.get('model_id')}")
13301332

13311333
def get_workspace_tool_permission(self):
13321334
return lambda r, kwargs: Permission(group=self.value.group, operate=self.value.operate,
13331335
resource_path=
1334-
f"/WORKSPACE/{kwargs.get('workspace_id')}/TOOL/{kwargs.get('knowledge_id')}")
1336+
f"/WORKSPACE/{kwargs.get('workspace_id')}/TOOL/{kwargs.get('tool_id')}")
13351337

13361338
def get_workspace_permission(self):
13371339
return lambda r, kwargs: Permission(group=self.value.group, operate=self.value.operate,

apps/tools/views/tool.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -104,8 +104,10 @@ class Operate(APIView):
104104
tags=[_('Tool')] # type: ignore
105105
)
106106
@has_permissions(
107-
PermissionConstants.TOOL_EDIT.get_workspace_permission(),PermissionConstants.TOOL_EDIT.get_workspace_permission_workspace_manage_role(),
108-
RoleConstants.WORKSPACE_MANAGE.get_workspace_role(), ViewPermission([RoleConstants.USER.get_workspace_role()],
107+
PermissionConstants.TOOL_EDIT.get_workspace_permission(),
108+
PermissionConstants.TOOL_EDIT.get_workspace_permission_workspace_manage_role(),
109+
RoleConstants.WORKSPACE_MANAGE.get_workspace_role(),
110+
ViewPermission([RoleConstants.USER.get_workspace_role()],
109111
[PermissionConstants.TOOL.get_workspace_tool_permission()],
110112
CompareConstants.AND),
111113
)
@@ -261,7 +263,8 @@ class Pylint(APIView):
261263
@has_permissions(
262264
PermissionConstants.TOOL_CREATE.get_workspace_permission(),
263265
PermissionConstants.TOOL_EDIT.get_workspace_permission(),
264-
RoleConstants.WORKSPACE_MANAGE.get_workspace_role(), RoleConstants.USER.get_workspace_role()
266+
RoleConstants.WORKSPACE_MANAGE.get_workspace_role(),
267+
RoleConstants.USER.get_workspace_role()
265268
)
266269
def post(self, request: Request, workspace_id: str):
267270
return result.success(ToolSerializer.Pylint(

0 commit comments

Comments
 (0)