summaryrefslogtreecommitdiff
path: root/src/apps/fedlogin/views.py
blob: f122ccd557db7b373d80df634d008b8ab8a0a8c2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
from django.contrib.auth import logout
from django.http import HttpResponseRedirect
from django.conf import settings
from django.core.urlresolvers import reverse
from django.contrib.auth.views import login


def fedlogin(request):
    user = request.user

    if user.is_authenticated():

        first_name = request.META.get('HTTP_GIVENNAME')
        last_name = request.META.get('HTTP_SN')
        email = request.META.get('HTTP_MAIL')
        affiliations = request.META.get('HTTP_AFFILIATION', '').split(';')

        if first_name:
            user.first_name = first_name
        if last_name:
            user.last_name = last_name
        if email:
            user.email = email
        user.is_staff = 'employee@nordu.net' in affiliations
        user.is_active = 'employee@nordu.net' in affiliations or 'member@nordu.net' in affiliations
        if user.password == "":
            user.password = "(not used for federated logins)"
        user.save()

    _next = request.GET.get('next')
    if _next:
        return HttpResponseRedirect(_next)
    else:
        return HttpResponseRedirect(reverse(login))


def fedlogout(request):
    logout(request)
    url = getattr(settings, 'FEDERATE_LOGOUT_URL', '/Shibboleth.sso/Logout')
    return HttpResponseRedirect(url)