From 0acb772d1c2be46f35977b917271d323167ac9a6 Mon Sep 17 00:00:00 2001 From: gfawcett Date: Tue, 11 Jan 2011 00:35:36 +0000 Subject: [PATCH] backdoor "su" function for administrators. git-svn-id: svn://svn.open-ils.org/ILS-Contrib/servres/trunk@1185 6d9bc8c9-1ec2-4278-b937-99fde70a366f --- conifer/syrup/urls.py | 1 + conifer/syrup/views/admin.py | 12 ++++++++++++ 2 files changed, 13 insertions(+) diff --git a/conifer/syrup/urls.py b/conifer/syrup/urls.py index 5026fec..511935b 100644 --- a/conifer/syrup/urls.py +++ b/conifer/syrup/urls.py @@ -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.*)', 'admin_su'), # (r'^phys/$', 'phys_index'), diff --git a/conifer/syrup/views/admin.py b/conifer/syrup/views/admin.py index 141458e..432e780 100644 --- a/conifer/syrup/views/admin.py +++ b/conifer/syrup/views/admin.py @@ -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('../../') + -- 2.11.0