diff --git a/ffplayout/api/serializers.py b/ffplayout/api/serializers.py index b0207867..fce81c7d 100644 --- a/ffplayout/api/serializers.py +++ b/ffplayout/api/serializers.py @@ -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