summaryrefslogtreecommitdiff
path: root/src/apps/fedlogin/views.py
diff options
context:
space:
mode:
authorMarkus Krogh <markus@nordu.net>2017-06-02 13:19:30 +0200
committerMarkus Krogh <markus@nordu.net>2017-06-02 13:19:30 +0200
commit934702f61f1cbdbf001ebb598c22c75efa247645 (patch)
treeb0c6725a8c8a682b421aa35eea9662d7fff31bd6 /src/apps/fedlogin/views.py
parent41afbaae97384968df6312cbe570305208b2216e (diff)
Django 1.11 compatible and cleaned up
Diffstat (limited to 'src/apps/fedlogin/views.py')
-rwxr-xr-xsrc/apps/fedlogin/views.py40
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)