Ejemplo n.º 1
0
 def update(self, instance, validated_data):
     email_field = get_user_email_field_name(User)
     if settings.SEND_ACTIVATION_EMAIL and email_field in validated_data:
         instance_email = get_user_email(instance)
         if instance_email != validated_data[email_field]:
             instance.is_active = False
             instance.save(update_fields=['is_active'])
     return super(UserSerializer, self).update(instance, validated_data)
Ejemplo n.º 2
0
    def test_get_user_email_field_name_returns_proper_value(self):
        if django.VERSION >= (1, 11):
            email_field_name = User.get_email_field_name()
        else:
            email_field_name = settings.USER_EMAIL_FIELD_NAME

        user_email_field_name = get_user_email_field_name(User)
        self.assertEquals(user_email_field_name, email_field_name)
Ejemplo n.º 3
0
 def get_users(self, email):
     if self._users is None:
         email_field_name = get_user_email_field_name(User)
         users = User._default_manager.filter(
             **{email_field_name + '__iexact': email})
         self._users = [
             u for u in users if u.is_active and u.has_usable_password()
         ]
     return self._users
Ejemplo n.º 4
0
 def get_users(self, email):
     if self._users is None:
         email_field_name = get_user_email_field_name(User)
         users = User._default_manager.filter(**{
             email_field_name + '__iexact': email
         })
         self._users = [
             u for u in users if u.is_active and u.has_usable_password()
         ]
     return self._users
Ejemplo n.º 5
0
 def update(self, instance, validated_data):
     email_field = get_user_email_field_name(User)
     instance.email_changed = False
     if settings.SEND_ACTIVATION_EMAIL and email_field in validated_data:
         instance_email = get_user_email(instance)
         if instance_email != validated_data[email_field]:
             instance.is_active = False
             instance.email_changed = True
             instance.save(update_fields=["is_active"])
     return super().update(instance, validated_data)
Ejemplo n.º 6
0
    def __init__(self, *args, **kwargs):
        super(PasswordResetSerializer, self).__init__(*args, **kwargs)

        email_field = get_user_email_field_name(User)
        self.fields[email_field] = serializers.EmailField()
        validate_email_fn_name = "validate_" + email_field

        def validate_email_fn(self, value):
            users = self.context["view"].get_users(value)
            if settings.PASSWORD_RESET_SHOW_EMAIL_NOT_FOUND and not users:
                self.fail("email_not_found")
            else:
                return value

        setattr(PasswordResetSerializer, validate_email_fn_name,
                validate_email_fn)
Ejemplo n.º 7
0
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)

        self.email_field = get_user_email_field_name(User)
        self.fields[self.email_field] = serializers.EmailField()
Ejemplo n.º 8
0
 def get_users(self, email):
     if self._users is None:
         email_field_name = get_user_email_field_name(User)
         self._users = User.objects.filter(
             **{email_field_name + '__iexact': email})
     return self._users
Ejemplo n.º 9
0
 def _action(self, serializer):
     for user in self.get_users(serializer.data[get_user_email_field_name(User)]):
         self.send_password_reset_email(user)
     return Response(status=status.HTTP_204_NO_CONTENT)
Ejemplo n.º 10
0
 def _action(self, serializer):
     if not settings.SEND_ACTIVATION_EMAIL:
         return response.Response(status=status.HTTP_400_BAD_REQUEST)
     for user in self.get_users(serializer.data[get_user_email_field_name(User)]):
         self.send_activation_email(user)
     return response.Response(status=status.HTTP_204_NO_CONTENT)