Commit cc4de61a authored by Florian Apolloner's avatar Florian Apolloner
Browse files

Fixed #19596 -- Use `_default_manager` instead of `objects` in the auth app.

This is needed to support custom user models which don't define a manager
named `objects`.
parent 456f9b98
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -13,7 +13,7 @@ class ModelBackend(object):
    def authenticate(self, username=None, password=None):
        try:
            UserModel = get_user_model()
            user = UserModel.objects.get_by_natural_key(username)
            user = UserModel._default_manager.get_by_natural_key(username)
            if user.check_password(password):
                return user
        except UserModel.DoesNotExist:
@@ -64,7 +64,7 @@ class ModelBackend(object):
    def get_user(self, user_id):
        try:
            UserModel = get_user_model()
            return UserModel.objects.get(pk=user_id)
            return UserModel._default_manager.get(pk=user_id)
        except UserModel.DoesNotExist:
            return None

+2 −2
Original line number Diff line number Diff line
@@ -89,7 +89,7 @@ class UserCreationForm(forms.ModelForm):
        # but it sets a nicer error message than the ORM. See #13147.
        username = self.cleaned_data["username"]
        try:
            User.objects.get(username=username)
            User._default_manager.get(username=username)
        except User.DoesNotExist:
            return username
        raise forms.ValidationError(self.error_messages['duplicate_username'])
@@ -217,7 +217,7 @@ class PasswordResetForm(forms.Form):
        """
        UserModel = get_user_model()
        email = self.cleaned_data["email"]
        self.users_cache = UserModel.objects.filter(email__iexact=email)
        self.users_cache = UserModel._default_manager.filter(email__iexact=email)
        if not len(self.users_cache):
            raise forms.ValidationError(self.error_messages['unknown'])
        if not any(user.is_active for user in self.users_cache):
+2 −2
Original line number Diff line number Diff line
@@ -18,7 +18,7 @@ def check_password(environ, username, password):

    try:
        try:
            user = UserModel.objects.get_by_natural_key(username)
            user = UserModel._default_manager.get_by_natural_key(username)
        except UserModel.DoesNotExist:
            return None
        if not user.is_active:
@@ -37,7 +37,7 @@ def groups_for_user(environ, username):

    try:
        try:
            user = UserModel.objects.get_by_natural_key(username)
            user = UserModel._default_manager.get_by_natural_key(username)
        except UserModel.DoesNotExist:
            return []
        try:
+1 −1
Original line number Diff line number Diff line
@@ -174,7 +174,7 @@ def get_default_username(check_db=True):
    # Don't return the default username if it is already taken.
    if check_db and default_username:
        try:
            auth_app.User.objects.get(username=default_username)
            auth_app.User._default_manager.get(username=default_username)
        except auth_app.User.DoesNotExist:
            pass
        else:
+1 −1
Original line number Diff line number Diff line
@@ -33,7 +33,7 @@ class Command(BaseCommand):
        UserModel = get_user_model()

        try:
            u = UserModel.objects.using(options.get('database')).get(**{
            u = UserModel._default_manager.using(options.get('database')).get(**{
                    UserModel.USERNAME_FIELD: username
                })
        except UserModel.DoesNotExist:
Loading