diff --git a/templates/sys_useradmin.html b/templates/sys_useradmin.html index 0013d6943f..05c7c0b4fc 100644 --- a/templates/sys_useradmin.html +++ b/templates/sys_useradmin.html @@ -13,9 +13,9 @@

{% trans "All Members" %}

- + - + {% for user in users %} @@ -30,6 +30,11 @@ {% if not user.is_self %} {% trans "Delete" %}{% trans "ResetPwd" %} + {% if user.is_staff %} + {% trans "Take Admin" %} + {% else %} + {% trans "Give Admin" %} + {% endif %} {% endif %} diff --git a/urls.py b/urls.py index 48f4ca6880..c7bc40c4be 100644 --- a/urls.py +++ b/urls.py @@ -74,6 +74,8 @@ urlpatterns = patterns('', (r'^useradmin/add/$', user_add), (r'^useradmin/remove/(?P[^/]+)/$', user_remove), + (r'^useradmin/makeadmin/(?P[^/]+)/$', user_make_admin), + (r'^useradmin/removeadmin/(?P[^/]+)/$', user_remove_admin), (r'^useradmin/info/(?P[^/]+)/$', user_info), (r'^useradmin/activate/(?P[^/]+)/$', activate_user), url(r'^useradmin/password/reset/(?P[^/]+)/$', user_reset, name='user_reset'), diff --git a/views.py b/views.py index 28be07e400..6e76b5439a 100644 --- a/views.py +++ b/views.py @@ -2066,6 +2066,32 @@ def user_remove(request, user_id): return HttpResponseRedirect(reverse('sys_useradmin')) +@login_required +@sys_staff_required +def user_make_admin(request, user_id): + """Remove user, also remove group relationship.""" + try: + user = User.objects.get(id=int(user_id)) + user.is_staff = True + user.save() + except User.DoesNotExist: + pass + + return HttpResponseRedirect(reverse('sys_useradmin')) + +@login_required +@sys_staff_required +def user_remove_admin(request, user_id): + """Remove user, also remove group relationship.""" + try: + user = User.objects.get(id=int(user_id)) + user.is_staff = False + user.save() + except User.DoesNotExist: + pass + + return HttpResponseRedirect(reverse('sys_useradmin')) + @login_required @sys_staff_required def activate_user(request, user_id):
{% trans "Email" %}{% trans "Email" %} {% trans "Status" %}{% trans "Operations" %}{% trans "Operations" %}