예제 #1
0
def user_model_swapped(**kwargs):
    if kwargs['setting'] == 'AUTH_USER_MODEL':
        apps.clear_cache()
        try:
            from server.contrib.auth import get_user_model
            UserModel = get_user_model()
        except ImproperlyConfigured:
            # Some tests set an invalid AUTH_USER_MODEL.
            pass
        else:
            from server.contrib.auth import backends
            backends.UserModel = UserModel

            from server.contrib.auth import forms
            forms.UserModel = UserModel

            from server.contrib.auth.handlers import modwsgi
            modwsgi.UserModel = UserModel

            from server.contrib.auth.management.commands import changepassword
            changepassword.UserModel = UserModel

            from server.contrib.auth import views
            views.UserModel = UserModel
예제 #2
0
 def __init__(self, *args, **kwargs):
     super().__init__(*args, **kwargs)
     self.UserModel = get_user_model()
     self.username_field = self.UserModel._meta.get_field(
         self.UserModel.USERNAME_FIELD)
예제 #3
0
 def _get_group_permissions(self, user_obj):
     user_groups_field = get_user_model()._meta.get_field('groups')
     user_groups_query = 'group__%s' % user_groups_field.related_query_name(
     )
     return Permission.objects.filter(**{user_groups_query: user_obj})
예제 #4
0
from server.contrib.auth import get_user_model
from server.contrib.auth.models import Permission

UserModel = get_user_model()


class ModelBackend:
    """
    Authenticates against settings.AUTH_USER_MODEL.
    """
    def authenticate(self, request, username=None, password=None, **kwargs):
        if username is None:
            username = kwargs.get(UserModel.USERNAME_FIELD)
        try:
            user = UserModel._default_manager.get_by_natural_key(username)
        except UserModel.DoesNotExist:
            # Run the default password hasher once to reduce the timing
            # difference between an existing and a nonexistent user (#20760).
            UserModel().set_password(password)
        else:
            if user.check_password(password) and self.user_can_authenticate(
                    user):
                return user

    def user_can_authenticate(self, user):
        """
        Reject users with is_active=False. Custom user models that don't have
        that attribute are allowed.
        """
        is_active = getattr(user, 'is_active', None)
        return is_active or is_active is None
예제 #5
0
from server import db
from server.contrib import auth
from server.utils.encoding import force_bytes

UserModel = auth.get_user_model()


def check_password(environ, username, password):
    """
    Authenticate against Server's auth database.

    mod_wsgi docs specify None, True, False as return value depending
    on whether the user exists and authenticates.
    """
    # db connection state is managed similarly to the wsgi handler
    # as mod_wsgi may call these functions outside of a request/response cycle
    db.reset_queries()
    try:
        try:
            user = UserModel._default_manager.get_by_natural_key(username)
        except UserModel.DoesNotExist:
            return None
        if not user.is_active:
            return None
        return user.check_password(password)
    finally:
        db.close_old_connections()


def groups_for_user(environ, username):
    """