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