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