исправил изменения пароля
This commit is contained in:
parent
9f221e2b20
commit
81fbcba642
|
|
@ -3,19 +3,25 @@ import coreapi
|
||||||
import coreschema
|
import coreschema
|
||||||
|
|
||||||
|
|
||||||
""" class PlayListSchema(AutoSchema):
|
class UpdateUserSchema(AutoSchema):
|
||||||
def get_serializer_fields(self, path, method):
|
def get_serializer_fields(self, path, method):
|
||||||
return [
|
return [
|
||||||
coreapi.Field(
|
coreapi.Field(
|
||||||
name='playlist_id',
|
name='email',
|
||||||
location='form',
|
location='form',
|
||||||
required=False,
|
required=False,
|
||||||
schema=coreschema.Integer(description='ID плейлиста')
|
schema=coreschema.String(description='Email пользователя')
|
||||||
),
|
),
|
||||||
coreapi.Field(
|
coreapi.Field(
|
||||||
name='songs_id',
|
name='old_password',
|
||||||
location='form',
|
location='form',
|
||||||
required=False,
|
required=False,
|
||||||
schema=coreschema.Array(description='ID треков')
|
schema=coreschema.String(description='Старый пароль')
|
||||||
),
|
),
|
||||||
] """
|
coreapi.Field(
|
||||||
|
name='password',
|
||||||
|
location='form',
|
||||||
|
required=False,
|
||||||
|
schema=coreschema.String(description='Новый пароль')
|
||||||
|
),
|
||||||
|
]
|
||||||
|
|
@ -5,10 +5,13 @@ from rest_framework_simplejwt.views import TokenObtainPairView
|
||||||
from rest_framework.decorators import action
|
from rest_framework.decorators import action
|
||||||
from rest_framework import status
|
from rest_framework import status
|
||||||
from django.core.mail import send_mail
|
from django.core.mail import send_mail
|
||||||
from django.contrib.auth.hashers import make_password
|
from django.contrib.auth.hashers import make_password, check_password
|
||||||
from conf import settings
|
from conf import settings
|
||||||
from account.serializers import MyUserSerializer, MyTokenObtainPairSerializer
|
from account.serializers import MyUserSerializer, MyTokenObtainPairSerializer
|
||||||
from account.models import MyUser
|
from account.models import MyUser
|
||||||
|
from .schemas import UpdateUserSchema
|
||||||
|
|
||||||
|
|
||||||
PermissionClass = IsAuthenticated if not settings.DEBUG else AllowAny
|
PermissionClass = IsAuthenticated if not settings.DEBUG else AllowAny
|
||||||
|
|
||||||
class MyTokenObtainPairView(TokenObtainPairView):
|
class MyTokenObtainPairView(TokenObtainPairView):
|
||||||
|
|
@ -53,8 +56,11 @@ class MyUserViewSet(ViewSet):
|
||||||
token_serializer.is_valid(raise_exception=True)
|
token_serializer.is_valid(raise_exception=True)
|
||||||
return Response(token_serializer.validated_data, status=status.HTTP_201_CREATED)
|
return Response(token_serializer.validated_data, status=status.HTTP_201_CREATED)
|
||||||
|
|
||||||
@action(detail=False, methods=['post'])
|
@action(detail=False, methods=['post'], schema=UpdateUserSchema())
|
||||||
def update_user(self, request):
|
def update_user(self, request):
|
||||||
|
password = request.user.password
|
||||||
|
|
||||||
|
if check_password(request.data['old_password'], password):
|
||||||
if 'email' in request.data:
|
if 'email' in request.data:
|
||||||
del request.data['email']
|
del request.data['email']
|
||||||
if 'password' in request.data:
|
if 'password' in request.data:
|
||||||
|
|
@ -62,8 +68,9 @@ class MyUserViewSet(ViewSet):
|
||||||
serializer = MyUserSerializer(request.user, data=request.data, partial=True)
|
serializer = MyUserSerializer(request.user, data=request.data, partial=True)
|
||||||
serializer.is_valid(raise_exception=True)
|
serializer.is_valid(raise_exception=True)
|
||||||
serializer.save()
|
serializer.save()
|
||||||
|
|
||||||
return Response(serializer.data)
|
return Response(serializer.data)
|
||||||
|
else:
|
||||||
|
return Response({'error':'Неверный старый пароль'}, status=status.HTTP_400_BAD_REQUEST)
|
||||||
|
|
||||||
@action(detail=False, methods=['post'])
|
@action(detail=False, methods=['post'])
|
||||||
def password_reset_user(self, request):
|
def password_reset_user(self, request):
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue