feat: User profile returns permission role information (#3005)
This commit is contained in:
parent
7bda26d92a
commit
c79479d80b
@ -293,10 +293,10 @@ class Auth:
|
|||||||
current_role_list: List[Role],
|
current_role_list: List[Role],
|
||||||
permission_list: List[PermissionConstants | Permission],
|
permission_list: List[PermissionConstants | Permission],
|
||||||
**keywords):
|
**keywords):
|
||||||
# 当前工作空间的所有权限+非工作空间权限
|
# 权限列表
|
||||||
self.permission_list = permission_list
|
self.permission_list = permission_list
|
||||||
# 当前工作空间角色列表
|
# 角色列表
|
||||||
self.current_role_list = current_role_list
|
self.role_list = current_role_list
|
||||||
self.keywords = keywords
|
self.keywords = keywords
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -13,7 +13,7 @@ from django.db.models import QuerySet, Q
|
|||||||
from rest_framework import serializers
|
from rest_framework import serializers
|
||||||
import uuid_utils.compat as uuid
|
import uuid_utils.compat as uuid
|
||||||
from common.constants.exception_code_constants import ExceptionCodeConstants
|
from common.constants.exception_code_constants import ExceptionCodeConstants
|
||||||
from common.constants.permission_constants import RoleConstants
|
from common.constants.permission_constants import RoleConstants, Auth
|
||||||
from common.utils.common import valid_license, password_encrypt
|
from common.utils.common import valid_license, password_encrypt
|
||||||
from users.models import User
|
from users.models import User
|
||||||
from django.utils.translation import gettext_lazy as _
|
from django.utils.translation import gettext_lazy as _
|
||||||
@ -39,18 +39,20 @@ class CreateUserSerializer(serializers.Serializer):
|
|||||||
|
|
||||||
class UserProfileSerializer(serializers.Serializer):
|
class UserProfileSerializer(serializers.Serializer):
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def profile(user: User):
|
def profile(user: User, auth: Auth):
|
||||||
"""
|
"""
|
||||||
获取用户详情
|
获取用户详情
|
||||||
:param user: 用户对象
|
@param user: 用户对象
|
||||||
:return:
|
@param auth: 认证对象
|
||||||
|
@return:
|
||||||
"""
|
"""
|
||||||
|
|
||||||
return {'id': user.id,
|
return {'id': user.id,
|
||||||
'username': user.username,
|
'username': user.username,
|
||||||
'nick_name': user.nick_name,
|
'nick_name': user.nick_name,
|
||||||
'email': user.email,
|
'email': user.email,
|
||||||
'role': user.role,
|
'role': auth.role_list,
|
||||||
'permissions': [str(p) for p in []],
|
'permissions': auth.permission_list,
|
||||||
'is_edit_password': user.password == 'd880e722c47a34d8e9fce789fc62389d' if user.role == 'ADMIN' else False,
|
'is_edit_password': user.password == 'd880e722c47a34d8e9fce789fc62389d' if user.role == 'ADMIN' else False,
|
||||||
'language': user.language}
|
'language': user.language}
|
||||||
|
|
||||||
|
|||||||
@ -28,7 +28,7 @@ class UserProfileView(APIView):
|
|||||||
tags=[_("User management")],
|
tags=[_("User management")],
|
||||||
responses=UserProfileAPI.get_response())
|
responses=UserProfileAPI.get_response())
|
||||||
def get(self, request: Request):
|
def get(self, request: Request):
|
||||||
return result.success(UserProfileSerializer().profile(request.user))
|
return result.success(UserProfileSerializer().profile(request.user, request.auth))
|
||||||
|
|
||||||
|
|
||||||
class TestPermissionsUserView(APIView):
|
class TestPermissionsUserView(APIView):
|
||||||
@ -41,7 +41,7 @@ class TestPermissionsUserView(APIView):
|
|||||||
responses=UserProfileAPI.get_response())
|
responses=UserProfileAPI.get_response())
|
||||||
@has_permissions(PermissionConstants.USER_EDIT)
|
@has_permissions(PermissionConstants.USER_EDIT)
|
||||||
def get(self, request: Request):
|
def get(self, request: Request):
|
||||||
return result.success(UserProfileSerializer().profile(request.user))
|
return result.success(UserProfileSerializer().profile(request.user, request.auth))
|
||||||
|
|
||||||
|
|
||||||
class TestWorkspacePermissionUserView(APIView):
|
class TestWorkspacePermissionUserView(APIView):
|
||||||
@ -55,7 +55,7 @@ class TestWorkspacePermissionUserView(APIView):
|
|||||||
parameters=TestWorkspacePermissionUserApi.get_parameters())
|
parameters=TestWorkspacePermissionUserApi.get_parameters())
|
||||||
@has_permissions(PermissionConstants.USER_EDIT.get_workspace_permission())
|
@has_permissions(PermissionConstants.USER_EDIT.get_workspace_permission())
|
||||||
def get(self, request: Request, workspace_id):
|
def get(self, request: Request, workspace_id):
|
||||||
return result.success(UserProfileSerializer().profile(request.user))
|
return result.success(UserProfileSerializer().profile(request.user, request.auth))
|
||||||
|
|
||||||
|
|
||||||
class UserManage(APIView):
|
class UserManage(APIView):
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user