Add a custom (inherited) user object named HTSUser to the samples table.
[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 class HTSUserModelBackend(ModelBackend):
7     def authenticate(self, username=None, password=None):
8         try:
9             user = self.user_class.objects.get(username=username)
10             if user.check_password(password):
11                 return user
12         #except self.user_class.DoesNotExist:
13         except Exception, e:
14             print e
15             return None
16
17     def get_user(self, user_id):
18         try:
19             return self.user_class.objects.get(pk=user_id)
20         #except self.user_class.DoesNotExist:
21         except Exception, e:
22             print e
23             return None
24
25     @property
26     def user_class(self):
27         if not hasattr(self, '_user_class'):
28             self._user_class = get_model(*settings.CUSTOM_USER_MODEL.split('.',2))
29             if not self._user_class:
30                 raise ImproperlyConfigured('Could not get custom user model')
31             return self._user_class
32