mirror of
https://github.com/jumpserver/jumpserver.git
synced 2025-07-05 19:16:37 +00:00
perf: user profile api
This commit is contained in:
parent
533dbf316c
commit
bcb112d5c6
@ -1,9 +1,9 @@
|
|||||||
from rest_framework.response import Response
|
|
||||||
from rest_framework.decorators import action
|
|
||||||
from django.shortcuts import get_object_or_404
|
from django.shortcuts import get_object_or_404
|
||||||
|
from rest_framework.decorators import action
|
||||||
|
from rest_framework.response import Response
|
||||||
|
|
||||||
from common.tree import TreeNodeSerializer
|
|
||||||
from common.api import JMSModelViewSet
|
from common.api import JMSModelViewSet
|
||||||
|
from common.tree import TreeNodeSerializer
|
||||||
from ..models import Permission, Role
|
from ..models import Permission, Role
|
||||||
from ..serializers import PermissionSerializer
|
from ..serializers import PermissionSerializer
|
||||||
|
|
||||||
|
@ -1,10 +1,9 @@
|
|||||||
from django.contrib.auth.models import ContentType
|
from django.contrib.auth.models import ContentType
|
||||||
from django.utils.translation import gettext_lazy as _
|
|
||||||
from rest_framework import serializers
|
from rest_framework import serializers
|
||||||
|
|
||||||
from ..models import Permission
|
from ..models import Permission
|
||||||
|
|
||||||
__all__ = ['PermissionSerializer', 'UserPermsSerializer']
|
__all__ = ['PermissionSerializer']
|
||||||
|
|
||||||
|
|
||||||
class PermissionContentTypeSerializer(serializers.ModelSerializer):
|
class PermissionContentTypeSerializer(serializers.ModelSerializer):
|
||||||
@ -19,13 +18,3 @@ class PermissionSerializer(serializers.ModelSerializer):
|
|||||||
class Meta:
|
class Meta:
|
||||||
model = Permission
|
model = Permission
|
||||||
fields = ['id', 'name', 'content_type', 'codename']
|
fields = ['id', 'name', 'content_type', 'codename']
|
||||||
|
|
||||||
|
|
||||||
class UserPermsSerializer(serializers.Serializer):
|
|
||||||
perms = serializers.ListField(label=_('Perms'), read_only=True)
|
|
||||||
|
|
||||||
def create(self, validated_data):
|
|
||||||
pass
|
|
||||||
|
|
||||||
def update(self, instance, validated_data):
|
|
||||||
pass
|
|
||||||
|
@ -17,7 +17,8 @@ from ..models import User
|
|||||||
|
|
||||||
__all__ = [
|
__all__ = [
|
||||||
'UserResetPasswordApi', 'UserResetPKApi',
|
'UserResetPasswordApi', 'UserResetPKApi',
|
||||||
'UserProfileApi', 'UserPasswordApi'
|
'UserProfileApi', 'UserPasswordApi',
|
||||||
|
'UserPermissionsApi'
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
@ -77,3 +78,11 @@ class UserPasswordApi(generics.RetrieveUpdateAPIView):
|
|||||||
resp = super().update(request, *args, **kwargs)
|
resp = super().update(request, *args, **kwargs)
|
||||||
ResetPasswordSuccessMsg(self.request.user, request).publish_async()
|
ResetPasswordSuccessMsg(self.request.user, request).publish_async()
|
||||||
return resp
|
return resp
|
||||||
|
|
||||||
|
|
||||||
|
class UserPermissionsApi(generics.RetrieveAPIView):
|
||||||
|
permission_classes = (IsAuthenticated,)
|
||||||
|
serializer_class = serializers.UserPermsSerializer
|
||||||
|
|
||||||
|
def get_object(self):
|
||||||
|
return self.request.user
|
||||||
|
@ -8,14 +8,6 @@ from .user import UserSerializer
|
|||||||
from ..models import User, MFAMixin
|
from ..models import User, MFAMixin
|
||||||
|
|
||||||
|
|
||||||
class UserOrgSerializer(serializers.Serializer):
|
|
||||||
id = serializers.CharField()
|
|
||||||
name = serializers.CharField()
|
|
||||||
is_default = serializers.BooleanField(read_only=True)
|
|
||||||
is_root = serializers.BooleanField(read_only=True)
|
|
||||||
is_system = serializers.BooleanField(read_only=True)
|
|
||||||
|
|
||||||
|
|
||||||
class UserUpdatePasswordSerializer(serializers.ModelSerializer):
|
class UserUpdatePasswordSerializer(serializers.ModelSerializer):
|
||||||
old_password = EncryptedField(required=True, max_length=128)
|
old_password = EncryptedField(required=True, max_length=128)
|
||||||
new_password = EncryptedField(required=True, max_length=128)
|
new_password = EncryptedField(required=True, max_length=128)
|
||||||
@ -71,16 +63,11 @@ class UserProfileSerializer(UserSerializer):
|
|||||||
mfa_level = LabeledChoiceField(choices=MFAMixin.MFA_LEVEL_CHOICES, label=_("MFA"), required=False)
|
mfa_level = LabeledChoiceField(choices=MFAMixin.MFA_LEVEL_CHOICES, label=_("MFA"), required=False)
|
||||||
guide_url = serializers.SerializerMethodField()
|
guide_url = serializers.SerializerMethodField()
|
||||||
receive_backends = serializers.ListField(child=serializers.CharField(), read_only=True)
|
receive_backends = serializers.ListField(child=serializers.CharField(), read_only=True)
|
||||||
console_orgs = UserOrgSerializer(many=True, read_only=True)
|
|
||||||
audit_orgs = UserOrgSerializer(many=True, read_only=True)
|
|
||||||
workbench_orgs = UserOrgSerializer(many=True, read_only=True)
|
|
||||||
perms = serializers.ListField(label=_("Perms"), read_only=True)
|
|
||||||
|
|
||||||
class Meta(UserSerializer.Meta):
|
class Meta(UserSerializer.Meta):
|
||||||
read_only_fields = [
|
read_only_fields = [
|
||||||
'date_joined', 'last_login', 'created_by', 'source',
|
'date_joined', 'last_login', 'created_by', 'source',
|
||||||
'console_orgs', 'audit_orgs', 'workbench_orgs',
|
'receive_backends',
|
||||||
'receive_backends', 'perms',
|
|
||||||
]
|
]
|
||||||
fields_mini = [
|
fields_mini = [
|
||||||
'id', 'name', 'username', 'email',
|
'id', 'name', 'username', 'email',
|
||||||
@ -184,3 +171,26 @@ class ResetOTPSerializer(serializers.Serializer):
|
|||||||
|
|
||||||
def update(self, instance, validated_data):
|
def update(self, instance, validated_data):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
class UserOrgSerializer(serializers.Serializer):
|
||||||
|
id = serializers.CharField()
|
||||||
|
name = serializers.CharField()
|
||||||
|
is_default = serializers.BooleanField(read_only=True)
|
||||||
|
is_root = serializers.BooleanField(read_only=True)
|
||||||
|
is_system = serializers.BooleanField(read_only=True)
|
||||||
|
|
||||||
|
|
||||||
|
class UserPermsSerializer(serializers.Serializer):
|
||||||
|
id = serializers.CharField(label=_("User ID"), read_only=True)
|
||||||
|
username = serializers.CharField(label=_("Username"), read_only=True)
|
||||||
|
console_orgs = UserOrgSerializer(many=True, read_only=True)
|
||||||
|
audit_orgs = UserOrgSerializer(many=True, read_only=True)
|
||||||
|
workbench_orgs = UserOrgSerializer(many=True, read_only=True)
|
||||||
|
perms = serializers.ListField(label=_("Perms"), read_only=True)
|
||||||
|
|
||||||
|
def create(self, validated_data):
|
||||||
|
pass
|
||||||
|
|
||||||
|
def update(self, instance, validated_data):
|
||||||
|
pass
|
||||||
|
@ -22,6 +22,7 @@ urlpatterns = [
|
|||||||
path('profile/', api.UserProfileApi.as_view(), name='user-profile'),
|
path('profile/', api.UserProfileApi.as_view(), name='user-profile'),
|
||||||
path('profile/password/', api.UserPasswordApi.as_view(), name='user-password'),
|
path('profile/password/', api.UserPasswordApi.as_view(), name='user-password'),
|
||||||
path('profile/mfa/reset/', api.UserResetMFAApi.as_view(), name='my-mfa-reset'),
|
path('profile/mfa/reset/', api.UserResetMFAApi.as_view(), name='my-mfa-reset'),
|
||||||
|
path('profile/permissions/', api.UserPermissionsApi.as_view(), name='user-permissions'),
|
||||||
path('preference/', api.PreferenceApi.as_view(), name='preference'),
|
path('preference/', api.PreferenceApi.as_view(), name='preference'),
|
||||||
path('users/<uuid:pk>/mfa/reset/', api.UserResetMFAApi.as_view(), name='user-reset-mfa'),
|
path('users/<uuid:pk>/mfa/reset/', api.UserResetMFAApi.as_view(), name='user-reset-mfa'),
|
||||||
path('users/<uuid:pk>/password/', api.UserChangePasswordApi.as_view(), name='change-user-password'),
|
path('users/<uuid:pk>/password/', api.UserChangePasswordApi.as_view(), name='change-user-password'),
|
||||||
|
Loading…
Reference in New Issue
Block a user