Statistics
| Branch: | Tag: | Revision:

root / djangobackends / shibauthBackend.py @ e0a35792

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