password check

This commit is contained in:
Jonathan Baecker 2020-04-16 17:57:49 +02:00
parent 5cdd35ea82
commit 3d994ae121

@ -6,38 +6,38 @@ from api.models import GuiSettings
class UserSerializer(serializers.ModelSerializer):
confirm_password = serializers.CharField(write_only=False, required=False)
new_password = serializers.CharField(write_only=True, required=False)
old_password = serializers.CharField(write_only=True, required=False)
class Meta:
model = User
fields = ['username', 'old_password',
'new_password', 'confirm_password', 'email']
fields = ['id', 'username', 'old_password',
'new_password', 'email']
def update(self, instance, validated_data):
print(validated_data)
instance.password = validated_data.get('password', instance.password)
if not validated_data['new_password']:
raise serializers.ValidationError({'new_password': 'not found'})
if 'new_password' in validated_data and \
'old_password' in validated_data:
if not validated_data['new_password']:
raise serializers.ValidationError({'new_password': 'not found'})
if not validated_data['old_password']:
raise serializers.ValidationError({'old_password': 'not found'})
if not validated_data['old_password']:
raise serializers.ValidationError({'old_password': 'not found'})
if not instance.check_password(validated_data['old_password']):
raise serializers.ValidationError(
{'old_password': 'wrong password'})
if not instance.check_password(validated_data['old_password']):
raise serializers.ValidationError(
{'old_password': 'wrong password'})
if validated_data['new_password'] != \
validated_data['confirm_password']:
raise serializers.ValidationError(
{'passwords': 'passwords do not match'})
if validated_data['new_password'] == \
validated_data['confirm_password'] and \
instance.check_password(validated_data['old_password']):
# instance.password = validated_data['new_password']
instance.set_password(validated_data['new_password'])
if validated_data['new_password'] and \
instance.check_password(validated_data['old_password']):
# instance.password = validated_data['new_password']
instance.set_password(validated_data['new_password'])
instance.save()
return instance
elif 'email' in validated_data:
instance.email = validated_data['email']
instance.save()
return instance
return instance