Added fixtures for site and flatpages. Run manually to fill the corresponding tables
[flowspy] / djangobackends / shibauthBackend.py
1 # -*- coding: utf-8 -*- vim:encoding=utf-8:
2 # vim: tabstop=4:shiftwidth=4:softtabstop=4:expandtab
3
4 from django.contrib.auth.models import User, UserManager, Permission, Group
5 from django.conf import settings
6
7 class shibauthBackend:
8     def authenticate(self, **kwargs):
9         username = kwargs.get('username')
10         firstname = kwargs.get('firstname')
11         lastname = kwargs.get('lastname')
12         mail = kwargs.get('mail')
13         try:
14             user = self._auth_user(username, firstname, lastname, mail)
15         except:
16             return None
17         if not user:
18             return None
19         return user
20
21     def _auth_user(self, username, firstname, lastname, mail):
22
23         try:
24             user = User.objects.get(username__exact=username)
25             user.email = mail
26             user.first_name = firstname
27             user.last_name = lastname
28             user.save()
29         # The user did not exist. Create one with no privileges
30         except: 
31             user = User.objects.create_user(username, mail, None)
32             user.first_name = firstname
33             user.last_name = lastname
34             user.is_staff = False
35             user.is_superuser = False
36             user.is_active = False
37             user.save()
38
39         return user
40
41     def get_user(self, user_id):
42         try:
43             return User.objects.get(pk=user_id)
44         except User.DoesNotExist:
45             return None