root / djangobackends / shibauthBackend.py @ e0a35792
History | View | Annotate | Download (1.4 kB)
1 | 97e42c7d | Leonidas Poulopoulos | # -*- coding: utf-8 -*- vim:encoding=utf-8:
|
---|---|---|---|
2 | 97e42c7d | Leonidas Poulopoulos | # vim: tabstop=4:shiftwidth=4:softtabstop=4:expandtab
|
3 | 97e42c7d | Leonidas Poulopoulos | |
4 | 97e42c7d | Leonidas Poulopoulos | from django.contrib.auth.models import User, UserManager, Permission, Group |
5 | 97e42c7d | Leonidas Poulopoulos | from django.conf import settings |
6 | 97e42c7d | Leonidas Poulopoulos | |
7 | 97e42c7d | Leonidas Poulopoulos | class shibauthBackend: |
8 | 97e42c7d | Leonidas Poulopoulos | def authenticate(self, **kwargs): |
9 | 97e42c7d | Leonidas Poulopoulos | username = kwargs.get('username')
|
10 | 97e42c7d | Leonidas Poulopoulos | firstname = kwargs.get('firstname')
|
11 | 97e42c7d | Leonidas Poulopoulos | lastname = kwargs.get('lastname')
|
12 | 97e42c7d | Leonidas Poulopoulos | mail = kwargs.get('mail')
|
13 | 9452bd72 | Leonidas Poulopoulos | try:
|
14 | e0a35792 | Leonidas Poulopoulos | user = self._auth_user(username, firstname, lastname, mail)
|
15 | 9452bd72 | Leonidas Poulopoulos | except:
|
16 | 9452bd72 | Leonidas Poulopoulos | return None |
17 | 97e42c7d | Leonidas Poulopoulos | if not user: |
18 | 97e42c7d | Leonidas Poulopoulos | return None |
19 | 97e42c7d | Leonidas Poulopoulos | return user
|
20 | 97e42c7d | Leonidas Poulopoulos | |
21 | e0a35792 | Leonidas Poulopoulos | def _auth_user(self, username, firstname, lastname, mail): |
22 | 97e42c7d | Leonidas Poulopoulos | |
23 | 97e42c7d | Leonidas Poulopoulos | try:
|
24 | 97e42c7d | Leonidas Poulopoulos | user = User.objects.get(username__exact=username) |
25 | 5366dc62 | Leonidas Poulopoulos | user.email = mail |
26 | 5366dc62 | Leonidas Poulopoulos | user.first_name = firstname |
27 | 5366dc62 | Leonidas Poulopoulos | user.last_name = lastname |
28 | 5366dc62 | Leonidas Poulopoulos | user.save() |
29 | 97e42c7d | Leonidas Poulopoulos | # The user did not exist. Create one with no privileges
|
30 | e0a35792 | Leonidas Poulopoulos | except:
|
31 | 97e42c7d | Leonidas Poulopoulos | user = User.objects.create_user(username, mail, None)
|
32 | 97e42c7d | Leonidas Poulopoulos | user.first_name = firstname |
33 | 97e42c7d | Leonidas Poulopoulos | user.last_name = lastname |
34 | 97e42c7d | Leonidas Poulopoulos | user.is_staff = False
|
35 | 97e42c7d | Leonidas Poulopoulos | user.is_superuser = False
|
36 | d4c9f39f | Leonidas Poulopoulos | user.is_active = False
|
37 | 5366dc62 | Leonidas Poulopoulos | user.save() |
38 | e0a35792 | Leonidas Poulopoulos | |
39 | 97e42c7d | Leonidas Poulopoulos | return user
|
40 | 97e42c7d | Leonidas Poulopoulos | |
41 | 97e42c7d | Leonidas Poulopoulos | def get_user(self, user_id): |
42 | 97e42c7d | Leonidas Poulopoulos | try:
|
43 | 97e42c7d | Leonidas Poulopoulos | return User.objects.get(pk=user_id)
|
44 | 97e42c7d | Leonidas Poulopoulos | except User.DoesNotExist:
|
45 | 97e42c7d | Leonidas Poulopoulos | return None |