From 934702f61f1cbdbf001ebb598c22c75efa247645 Mon Sep 17 00:00:00 2001 From: Markus Krogh Date: Fri, 2 Jun 2017 13:19:30 +0200 Subject: Django 1.11 compatible and cleaned up --- src/apps/fedlogin/views.py | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100755 src/apps/fedlogin/views.py (limited to 'src/apps/fedlogin/views.py') 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) -- cgit v1.1