diff options
| author | Markus Krogh <markus@nordu.net> | 2017-06-02 13:19:30 +0200 |
|---|---|---|
| committer | Markus Krogh <markus@nordu.net> | 2017-06-02 13:19:30 +0200 |
| commit | 934702f61f1cbdbf001ebb598c22c75efa247645 (patch) | |
| tree | b0c6725a8c8a682b421aa35eea9662d7fff31bd6 /src/apps/fedlogin/views.py | |
| parent | 41afbaae97384968df6312cbe570305208b2216e (diff) | |
Django 1.11 compatible and cleaned up
Diffstat (limited to 'src/apps/fedlogin/views.py')
| -rwxr-xr-x | src/apps/fedlogin/views.py | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/src/apps/fedlogin/views.py b/src/apps/fedlogin/views.py new file mode 100755 index 0000000..f122ccd --- /dev/null +++ b/src/apps/fedlogin/views.py @@ -0,0 +1,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) |
