root / djangobackends / shibauthBackend.py @ 15d4014d
History | View | Annotate | Download (1.4 kB)
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 |