root / djangobackends / shibauthBackend.py @ 5366dc62
History | View | Annotate | Download (2.1 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 |
from flowspy.peers.models import * |
7 |
from flowspy.accounts.models import * |
8 |
|
9 |
class shibauthBackend: |
10 |
def authenticate(self, **kwargs): |
11 |
|
12 |
username = kwargs.get('username')
|
13 |
firstname = kwargs.get('firstname')
|
14 |
lastname = kwargs.get('lastname')
|
15 |
mail = kwargs.get('mail')
|
16 |
affiliation = kwargs.get('affiliation')
|
17 |
organization = kwargs.get('organization')
|
18 |
user = self._auth_user(username, firstname, lastname, mail, affiliation, organization)
|
19 |
if not user: |
20 |
return None |
21 |
return user
|
22 |
|
23 |
def _auth_user(self, username, firstname, lastname, mail, affiliation, organization): |
24 |
|
25 |
try:
|
26 |
user = User.objects.get(username__exact=username) |
27 |
user.email = mail |
28 |
user.first_name = firstname |
29 |
user.last_name = lastname |
30 |
# if organization == settings.SHIB_ADMIN_DOMAIN:
|
31 |
# user.is_staff = True
|
32 |
# user.is_superuser = True
|
33 |
user.is_active = True
|
34 |
user.save() |
35 |
# The user did not exist. Create one with no privileges
|
36 |
except:
|
37 |
|
38 |
user = User.objects.create_user(username, mail, None)
|
39 |
user.first_name = firstname |
40 |
user.last_name = lastname |
41 |
user.is_staff = False
|
42 |
user.is_superuser = False
|
43 |
# if organization == settings.SHIB_ADMIN_DOMAIN:
|
44 |
# user.is_staff = True
|
45 |
# user.is_superuser = True
|
46 |
user.is_active = True
|
47 |
user.save() |
48 |
try:
|
49 |
peer = Peer.objects.get(domain_name=organization) |
50 |
up = UserProfile.objects.get_or_create(user=user,peer=peer) |
51 |
except:
|
52 |
return False |
53 |
return user
|
54 |
|
55 |
def get_user(self, user_id): |
56 |
try:
|
57 |
return User.objects.get(pk=user_id)
|
58 |
except User.DoesNotExist:
|
59 |
return None |