Initial port to python3
[htsworkflow.git] / htsworkflow / frontend / samples / auth_backend.py
1 from django.conf import settings
2 from django.contrib.auth.backends import ModelBackend
3 from django.core.exceptions import ImproperlyConfigured
4 from django.db.models import get_model
5
6 import sys
7
8 class HTSUserModelBackend(ModelBackend):
9     def authenticate(self, username=None, password=None):
10         try:
11             user = self.user_class.objects.get(username=username)
12             if user.check_password(password):
13                 return user
14         #except self.user_class.DoesNotExist:
15         except Exception as e:
16             print(e, file=sys.stderr)
17             return None
18
19     def get_user(self, user_id):
20         try:
21             return self.user_class.objects.get(pk=user_id)
22         #except self.user_class.DoesNotExist:
23         except Exception as e:
24             print(e, file=sys.stderr)
25             return None
26
27     @property
28     def user_class(self):
29         if not hasattr(self, '_user_class'):
30             self._user_class = get_model(*settings.CUSTOM_USER_MODEL.split('.',2))
31             if not self._user_class:
32                 raise ImproperlyConfigured('Could not get custom user model')
33             return self._user_class
34