dockered
This commit is contained in:
12
django/accounts/serializers/login.py
Normal file
12
django/accounts/serializers/login.py
Normal file
@ -0,0 +1,12 @@
|
||||
from rest_framework.serializers import Serializer, CharField
|
||||
from django.contrib.auth import authenticate
|
||||
from django.core.exceptions import ValidationError
|
||||
|
||||
class LoginSerializer(Serializer):
|
||||
|
||||
username = CharField()
|
||||
password = CharField()
|
||||
|
||||
def get_user(self, data):
|
||||
user = authenticate(username=data['username'], password=data['password'])
|
||||
return user
|
12
django/accounts/serializers/register.py
Normal file
12
django/accounts/serializers/register.py
Normal file
@ -0,0 +1,12 @@
|
||||
from rest_framework.serializers import ModelSerializer
|
||||
from django.contrib.auth.models import User
|
||||
|
||||
class RegisterSerialiser(ModelSerializer):
|
||||
class Meta:
|
||||
model = User
|
||||
fields = ['username', 'password']
|
||||
|
||||
def create(self, data):
|
||||
user_obj = User.objects.create_user(username=data['username'], password=data['password'])
|
||||
user_obj.save()
|
||||
return user_obj
|
37
django/accounts/serializers/update_password.py
Normal file
37
django/accounts/serializers/update_password.py
Normal file
@ -0,0 +1,37 @@
|
||||
from rest_framework.serializers import ModelSerializer, ValidationError
|
||||
from rest_framework.fields import CharField
|
||||
from django.contrib.auth.models import User
|
||||
from django.contrib.auth import login
|
||||
from django.utils.translation import gettext as _
|
||||
|
||||
|
||||
class UpdatePasswordSerializer(ModelSerializer):
|
||||
current_password = CharField(write_only=True, required=True)
|
||||
new_password = CharField(write_only=True, required=True)
|
||||
new_password2 = CharField(write_only=True, required=True)
|
||||
|
||||
class Meta:
|
||||
model = User
|
||||
fields = ['current_password', 'new_password', 'new_password2']
|
||||
|
||||
def validate_current_password(self, value):
|
||||
if not self.instance.check_password(value):
|
||||
raise ValidationError(_('Current password is incorrect.'))
|
||||
return value
|
||||
|
||||
def validate(self, data):
|
||||
if data['new_password'] != data['new_password2']:
|
||||
raise ValidationError({'new_password2': _('The password does not match.')})
|
||||
return data
|
||||
|
||||
def update(self, instance, validated_data):
|
||||
user = self.context['request'].user
|
||||
|
||||
if user.pk != instance.pk:
|
||||
raise ValidationError({'authorize': _('You dont have permission for this user.')})
|
||||
|
||||
instance.set_password(validated_data['new_password'])
|
||||
|
||||
instance.save()
|
||||
login(self.context['request'], instance)
|
||||
return instance
|
20
django/accounts/serializers/update_user.py
Normal file
20
django/accounts/serializers/update_user.py
Normal file
@ -0,0 +1,20 @@
|
||||
from rest_framework.serializers import ModelSerializer, ValidationError
|
||||
from django.contrib.auth.models import User
|
||||
from django.utils.translation import gettext as _
|
||||
|
||||
|
||||
class UpdateUserSerializer(ModelSerializer):
|
||||
class Meta:
|
||||
model = User
|
||||
fields = ['username']
|
||||
|
||||
def update(self, instance, validated_data):
|
||||
user = self.context['request'].user
|
||||
|
||||
if user.pk != instance.pk:
|
||||
raise ValidationError({'authorize': _('You dont have permission for this user.')})
|
||||
|
||||
instance.username = validated_data.get('username', instance.username)
|
||||
|
||||
instance.save()
|
||||
return instance
|
Reference in New Issue
Block a user