Skip to content

Commit c79479d

Browse files
authored
feat: User profile returns permission role information (#3005)
1 parent 7bda26d commit c79479d

File tree

3 files changed

+15
-13
lines changed

3 files changed

+15
-13
lines changed

apps/common/constants/permission_constants.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -293,10 +293,10 @@ def __init__(self,
293293
current_role_list: List[Role],
294294
permission_list: List[PermissionConstants | Permission],
295295
**keywords):
296-
# 当前工作空间的所有权限+非工作空间权限
296+
# 权限列表
297297
self.permission_list = permission_list
298-
# 当前工作空间角色列表
299-
self.current_role_list = current_role_list
298+
# 角色列表
299+
self.role_list = current_role_list
300300
self.keywords = keywords
301301

302302

apps/users/serializers/user.py

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
from rest_framework import serializers
1414
import uuid_utils.compat as uuid
1515
from common.constants.exception_code_constants import ExceptionCodeConstants
16-
from common.constants.permission_constants import RoleConstants
16+
from common.constants.permission_constants import RoleConstants, Auth
1717
from common.utils.common import valid_license, password_encrypt
1818
from users.models import User
1919
from django.utils.translation import gettext_lazy as _
@@ -39,18 +39,20 @@ class CreateUserSerializer(serializers.Serializer):
3939

4040
class UserProfileSerializer(serializers.Serializer):
4141
@staticmethod
42-
def profile(user: User):
42+
def profile(user: User, auth: Auth):
4343
"""
44-
获取用户详情
45-
:param user: 用户对象
46-
:return:
44+
获取用户详情
45+
@param user: 用户对象
46+
@param auth: 认证对象
47+
@return:
4748
"""
49+
4850
return {'id': user.id,
4951
'username': user.username,
5052
'nick_name': user.nick_name,
5153
'email': user.email,
52-
'role': user.role,
53-
'permissions': [str(p) for p in []],
54+
'role': auth.role_list,
55+
'permissions': auth.permission_list,
5456
'is_edit_password': user.password == 'd880e722c47a34d8e9fce789fc62389d' if user.role == 'ADMIN' else False,
5557
'language': user.language}
5658

apps/users/views/user.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ class UserProfileView(APIView):
2828
tags=[_("User management")],
2929
responses=UserProfileAPI.get_response())
3030
def get(self, request: Request):
31-
return result.success(UserProfileSerializer().profile(request.user))
31+
return result.success(UserProfileSerializer().profile(request.user, request.auth))
3232

3333

3434
class TestPermissionsUserView(APIView):
@@ -41,7 +41,7 @@ class TestPermissionsUserView(APIView):
4141
responses=UserProfileAPI.get_response())
4242
@has_permissions(PermissionConstants.USER_EDIT)
4343
def get(self, request: Request):
44-
return result.success(UserProfileSerializer().profile(request.user))
44+
return result.success(UserProfileSerializer().profile(request.user, request.auth))
4545

4646

4747
class TestWorkspacePermissionUserView(APIView):
@@ -55,7 +55,7 @@ class TestWorkspacePermissionUserView(APIView):
5555
parameters=TestWorkspacePermissionUserApi.get_parameters())
5656
@has_permissions(PermissionConstants.USER_EDIT.get_workspace_permission())
5757
def get(self, request: Request, workspace_id):
58-
return result.success(UserProfileSerializer().profile(request.user))
58+
return result.success(UserProfileSerializer().profile(request.user, request.auth))
5959

6060

6161
class UserManage(APIView):

0 commit comments

Comments
 (0)