@@ -151,13 +151,13 @@ def get_permission_list(user,
151151 workspace_user_role_mapping_list = QuerySet (workspace_user_role_mapping_model ).filter (user_id = user_id )
152152 workspace_user_role_mapping_dict = group_by (workspace_user_role_mapping_list ,
153153 lambda item : item .workspace_id )
154+ role_id_list = list (set ([workspace_user_role_mapping .role_id for workspace_user_role_mapping in
155+ workspace_user_role_mapping_list ]))
154156 # 获取角色权限映射数据
155157 role_permission_mapping_list = QuerySet (role_permission_mapping_model ).filter (
156- role_id__in = [workspace_user_role_mapping .role_id for workspace_user_role_mapping in
157- workspace_user_role_mapping_list ])
158- system_role_permission_mapping_list = get_default_role_permission_mapping_list ()
158+ role_id__in = role_id_list )
159159 role_permission_mapping_dict = group_by (
160- [ * role_permission_mapping_list , * system_role_permission_mapping_list ] , lambda item : item .role_id )
160+ role_permission_mapping_list , lambda item : item .role_id )
161161
162162 workspace_user_permission_list = QuerySet (WorkspaceUserResourcePermission ).filter (
163163 workspace_id__in = [workspace_user_role .workspace_id for workspace_user_role in
@@ -170,11 +170,15 @@ def get_permission_list(user,
170170
171171 workspace_permission_list = get_workspace_permission_list (role_permission_mapping_dict ,
172172 workspace_user_role_mapping_list )
173+ system_role_permission_mapping_list = list (set ([role_permission .permission_id for role_permission in
174+ get_default_role_permission_mapping_list () if
175+ role_id_list .__contains__ (role_permission .role_id )]))
173176 # 系统权限
174177 system_permission_list = [role_permission_mapping .permission_id for role_permission_mapping in
175178 role_permission_mapping_list ]
176179 # 合并权限
177- permission_list = system_permission_list + workspace_permission_list + workspace_resource_permission_list
180+ permission_list = system_permission_list + workspace_permission_list + workspace_resource_permission_list + system_role_permission_mapping_list
181+ permission_list = list (set (permission_list ))
178182 cache .set (key , permission_list , version = version )
179183 else :
180184 workspace_id_list = ['default' ]
@@ -199,6 +203,7 @@ def get_permission_list(user,
199203 [user .role ].__contains__ (role_permission_mapping .role_id )]
200204 # 合并权限
201205 permission_list = system_permission_list + workspace_permission_list + workspace_resource_permission_list
206+ permission_list = list (set (permission_list ))
202207 cache .set (key , permission_list , version = version )
203208 return permission_list
204209
@@ -220,13 +225,13 @@ def get_role_list(user,
220225 if is_query_model :
221226 # 获取工作空间 用户 角色映射数据
222227 workspace_user_role_mapping_list = QuerySet (workspace_user_role_mapping_model ).filter (user_id = user .id )
223- workspace_list = [
224- f"{ workspace_user_role_mapping .role_id } :/WORKSPACE/{ workspace_user_role_mapping .workspace_id } "
225- for
226- workspace_user_role_mapping in
227- workspace_user_role_mapping_list ] + [user .role ]
228+ role_list = [
229+ f"{ workspace_user_role_mapping .role_id } :/WORKSPACE/{ workspace_user_role_mapping .workspace_id } "
230+ for
231+ workspace_user_role_mapping in
232+ workspace_user_role_mapping_list ] + [user .role ]
228233 cache .set (key , workspace_list , version = version )
229- return workspace_list
234+ return role_list
230235 else :
231236 role_list = [user .role ]
232237 if user .role == RoleConstants .ADMIN .value .__str__ ():
0 commit comments