Guest User

Untitled

a guest
Jul 27th, 2018
120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.61 KB | None | 0 0
  1. '''
  2. Created on 16-04-2012
  3.  
  4. @author: Krzysztof
  5. '''
  6.  
  7. from django.contrib.auth.backends import ModelBackend
  8. from ksiazkakucharska.core.models import Uzytkownik
  9. from django.core.exceptions import ImproperlyConfigured
  10. from django.core.exceptions import ObjectDoesNotExist
  11. from django.contrib.auth.models import User
  12.  
  13. class CustomUserModelBackend(ModelBackend):
  14.     def authenticate(self, username=None, password=None):
  15.         try:
  16.             user = Uzytkownik.objects.get(username=username)
  17.             self._user_class = Uzytkownik
  18.             if user.check_password(password, user.password):
  19.                 return user
  20.         except Uzytkownik.DoesNotExist:
  21.             try:
  22.                 user = User.objects.get(username=username)
  23.                 self._user_class = User
  24.                 if user.check_password(password):
  25.                     return user
  26.             except ObjectDoesNotExist:
  27.                 return None
  28.  
  29.     def get_user(self, user_id):
  30.         try:
  31.             return Uzytkownik.objects.get(pk=user_id)
  32.         except Uzytkownik.DoesNotExist:
  33.             try:
  34.                 return User.objects.get(id=user_id)
  35.             except ObjectDoesNotExist:
  36.                 return None
  37.        
  38.     @property
  39.     def user_class(self):
  40.         if not hasattr(self, '_user_class'):
  41.             if hasattr(self.logged_user, 'nazwa_firmy'):
  42.                 self._user_class = Uzytkownik
  43.             else:
  44.                 self._user_class = User
  45.             if not self._user_class:
  46.                 raise ImproperlyConfigured('Could not get custom user model')
  47.         return self._user_class
Add Comment
Please, Sign In to add comment