Skip to content

Commit e8418f6

Browse files
authored
fix: role user permission (#3452)
1 parent 8b40762 commit e8418f6

File tree

2 files changed

+26
-9
lines changed

2 files changed

+26
-9
lines changed

apps/common/auth/handle/impl/user_token.py

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,8 @@ def get_workspace_resource_permission_list_by_workspace_user_permission(
127127
ResourcePermissionRole.ROLE)):
128128
return [
129129
f"{role_permission_mapping.permission_id}:/WORKSPACE/{workspace_user_resource_permission.workspace_id}/{workspace_user_resource_permission.auth_target_type}/{workspace_user_resource_permission.target}"
130-
for role_permission_mapping in role_permission_mapping_list]
130+
for role_permission_mapping in role_permission_mapping_list] + [
131+
f"{workspace_user_resource_permission.auth_target_type}:/WORKSPACE/{workspace_user_resource_permission.workspace_id}/{workspace_user_resource_permission.auth_target_type}/{workspace_user_resource_permission.target}"]
131132

132133
elif workspace_user_resource_permission.auth_type == ResourceAuthType.RESOURCE_PERMISSION_GROUP:
133134
resource_permission_list = [
@@ -230,15 +231,15 @@ def reset_workspace_role(role_id, workspace_id, role_dict):
230231
if system_role == role_id:
231232
return role_id
232233
else:
233-
return f"{role_id}:/WORKSPACE/{workspace_id}"
234+
return [f"{role_id}:/WORKSPACE/{workspace_id}", role_id]
234235
else:
235236
r = role_dict.get(role_id)
236237
if r is None:
237238
return ''
238239
role_type = role_dict.get(role_id).type
239240
if system_role == role_type:
240241
return RoleConstants.EXTENDS_ADMIN.value.name
241-
return f"EXTENDS_{role_type}:/WORKSPACE/{workspace_id}"
242+
return [f"EXTENDS_{role_type}:/WORKSPACE/{workspace_id}", f"EXTENDS_{role_type}"]
242243

243244

244245
def get_role_list(user,
@@ -260,12 +261,13 @@ def get_role_list(user,
260261
workspace_user_role_mapping_list = QuerySet(workspace_user_role_mapping_model).filter(user_id=user.id)
261262
role_list = QuerySet(role_model).filter(id__in=[wurm.role_id for wurm in workspace_user_role_mapping_list])
262263
role_dict = {r.id: r for r in role_list}
263-
role_list = list(set([reset_workspace_role(workspace_user_role_mapping.role_id,
264-
workspace_user_role_mapping.workspace_id,
265-
role_dict)
266-
for
267-
workspace_user_role_mapping in
268-
workspace_user_role_mapping_list]))
264+
role_list = list(
265+
set(reduce(lambda x, y: [*x, *y], [reset_workspace_role(workspace_user_role_mapping.role_id,
266+
workspace_user_role_mapping.workspace_id,
267+
role_dict)
268+
for
269+
workspace_user_role_mapping in
270+
workspace_user_role_mapping_list], [])))
269271
cache.set(key, workspace_list, version=version)
270272
return role_list
271273
else:

apps/common/constants/permission_constants.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,7 @@ class Operate(Enum):
125125
"""
126126
一个权限组的操作权限
127127
"""
128+
SELF = ""
128129
READ = 'READ'
129130
EDIT = "READ+EDIT"
130131
CREATE = "READ+CREATE"
@@ -161,6 +162,7 @@ class Operate(Enum):
161162
SETTING = "READ+SETTING" # 管理
162163
DOWNLOAD = "READ+DOWNLOAD" # 下载
163164

165+
164166
class RoleGroup(Enum):
165167
# 系统用户
166168
SYSTEM_USER = "SYSTEM_USER"
@@ -405,6 +407,19 @@ class PermissionConstants(Enum):
405407
"""
406408
权限枚举
407409
"""
410+
KNOWLEDGE = Permission(
411+
group=Group.KNOWLEDGE, operate=Operate.SELF, role_list=[RoleConstants.ADMIN, RoleConstants.USER]
412+
)
413+
APPLICATION = Permission(
414+
group=Group.APPLICATION, operate=Operate.SELF, role_list=[RoleConstants.ADMIN, RoleConstants.USER],
415+
)
416+
MODEL = Permission(
417+
group=Group.MODEL, operate=Operate.SELF, role_list=[RoleConstants.ADMIN, RoleConstants.USER],
418+
)
419+
TOOL = Permission(
420+
group=Group.TOOL, operate=Operate.SELF, role_list=[RoleConstants.ADMIN, RoleConstants.USER],
421+
)
422+
408423
USER_READ = Permission(
409424
group=Group.USER, operate=Operate.READ, role_list=[RoleConstants.ADMIN, RoleConstants.USER],
410425
parent_group=[SystemGroup.USER_MANAGEMENT]

0 commit comments

Comments
 (0)