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" %}
- {% trans "Email" %} |
+ {% trans "Email" %} |
{% trans "Status" %} |
- {% trans "Operations" %} |
+ {% trans "Operations" %} |
{% 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):