Added alternate view for Helpdesk
[flowspy] / flowspec / views.py
index ff8f21a..0f14b6e 100644 (file)
@@ -322,6 +322,7 @@ def user_login(request):
         except:
             user_exists = False
         user = authenticate(username=username, firstname=firstname, lastname=lastname, mail=mail, authsource='shibboleth')
+        
         if user is not None:
             try:
                 peer = user.get_profile().peer
@@ -345,7 +346,7 @@ def user_login(request):
             error = _("Something went wrong during user authentication. Contact your administrator")
             return render_to_response('error.html', {'error': error,},
                                   context_instance=RequestContext(request))
-    except Exception as e:
+    except User.DoesNotExist as e:
         error = _("Invalid login procedure. Error: %s" %e)
         return render_to_response('error.html', {'error': error,},
                                   context_instance=RequestContext(request))
@@ -435,6 +436,22 @@ def selectinst(request):
             form.fields['institution'] = forms.ModelChoiceField(queryset=Peer.objects.all(), empty_label=None)
             return render_to_response('registration/select_institution.html', {'form': form}, context_instance=RequestContext(request))
 
+@never_cache
+def overview(request):
+    user = request.user
+    if user.is_authenticated():
+        if user.has_perm('accounts.overview'):
+            users = User.objects.all()
+            group_routes = Route.objects.all()
+            return render_to_response('overview/index.html', {'users': users, 'routes': group_routes},
+                                  context_instance=RequestContext(request))
+        else:
+            violation=True
+            return render_to_response('overview/index.html', {'violation': violation},
+                                  context_instance=RequestContext(request))
+    else:
+        return HttpResponseRedirect(reverse("altlogin"))
+
 @login_required
 @never_cache
 def user_logout(request):
@@ -470,6 +487,7 @@ def send_new_mail(subject, message, from_email, recipient_list, bcc_list):
 
 def lookupShibAttr(attrmap, requestMeta):
     for attr in attrmap:
-        if attr in requestMeta:
-            return requestMeta[attr]
-    return ''
\ No newline at end of file
+        if (attr in requestMeta.keys()):
+            if len(requestMeta[attr]) > 0:
+                return requestMeta[attr]
+    return ''