Skip to content

Commit b90e72c

Browse files
committed
fix: permission
1 parent fb4880f commit b90e72c

File tree

3 files changed

+19
-14
lines changed

3 files changed

+19
-14
lines changed

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

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -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__():

apps/users/views/user.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
from common.auth.authenticate import TokenAuth
1717
from common.auth.authentication import has_permissions
1818
from common.constants.cache_version import Cache_Version
19-
from common.constants.permission_constants import PermissionConstants, Permission, Group, Operate
19+
from common.constants.permission_constants import PermissionConstants, Permission, Group, Operate, RoleConstants
2020
from common.log.log import log
2121
from common.result import result
2222
from maxkb.const import CONFIG
@@ -164,7 +164,7 @@ class UserManage(APIView):
164164
tags=[_("User Management")], # type: ignore
165165
request=UserProfileAPI.get_request(),
166166
responses=UserProfileAPI.get_response())
167-
@has_permissions(PermissionConstants.USER_CREATE)
167+
@has_permissions(PermissionConstants.USER_CREATE, RoleConstants.ADMIN)
168168
@log(menu='User management', operate='Add user',
169169
get_operation_object=lambda r, k: {'name': r.data.get('username', None)})
170170
def post(self, request: Request):

ui/src/router/modules/system.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { PermissionConst, EditionConst, RoleConst } from '@/utils/permission/dat
22
const systemRouter = {
33
path: '/system',
44
name: 'system',
5-
meta: { title: 'views.system.title', permission: 'USER_MANAGEMENT:READ' },
5+
meta: { title: 'views.system.title' },
66
hidden: true,
77
component: () => import('@/layout/layout-template/SystemMainLayout.vue'),
88
children: [

0 commit comments

Comments
 (0)