Files
mayan-edms/mayan/apps/authentication/auth/model_auth_backend.py
2016-06-30 21:30:01 -04:00

26 lines
1.1 KiB
Python

from __future__ import unicode_literals
from django.contrib.auth import get_user_model
from django.contrib.auth.backends import ModelBackend
class UsernameModelBackend(ModelBackend):
def authenticate(self, username=None, password=None, **kwargs):
UserModel = get_user_model()
if username is None:
username = kwargs.get(UserModel.USERNAME_FIELD)
try:
user = UserModel.on_organization.get(username=username)
if user.check_password(password):
return user
except UserModel.DoesNotExist:
# Check for superadmins, they can login from any organization.
try:
user = UserModel.objects.filter(is_superuser=True).get(username=username)
if user.check_password(password):
return user
except UserModel.DoesNotExist:
# Run the default password hasher once to reduce the timing
# difference between an existing and a non-existing user (#20760).
UserModel().set_password(password)