backdoor "su" function for administrators.
authorgfawcett <gfawcett@6d9bc8c9-1ec2-4278-b937-99fde70a366f>
Tue, 11 Jan 2011 00:35:36 +0000 (00:35 +0000)
committergfawcett <gfawcett@6d9bc8c9-1ec2-4278-b937-99fde70a366f>
Tue, 11 Jan 2011 00:35:36 +0000 (00:35 +0000)
git-svn-id: svn://svn.open-ils.org/ILS-Contrib/servres/trunk@1185 6d9bc8c9-1ec2-4278-b937-99fde70a366f

conifer/syrup/urls.py
conifer/syrup/views/admin.py

index 5026fec..511935b 100644 (file)
@@ -54,6 +54,7 @@ urlpatterns = patterns('conifer.syrup.views',
     (r'^admin/update_depts_courses/$', 'admin_update_depts_courses'),
     (r'^admin/update_terms/$', 'admin_update_terms'),
     (r'^admin/staff/add/$', 'admin_staff_add'),
+    (r'^admin/su/(?P<userid>.*)', 'admin_su'),
 
 
     # (r'^phys/$', 'phys_index'),
index 141458e..432e780 100644 (file)
@@ -175,3 +175,15 @@ def admin_staff_add(request):
             message = 'Staff user added: %s [%s].' % (user.get_full_name(), user.username)
 
         return g.render('admin/staff_add.xhtml', **locals())
+
+@admin_only
+def admin_su(request, userid):
+    user, created = User.objects.get_or_create(username=userid)
+    user.maybe_decorate()
+    if created and not user.last_name:
+        raise Exception(user)
+        user.delete()
+    elif user.is_active:
+        request.session['_auth_user_id'] = user.id
+    return HttpResponseRedirect('../../')
+