diff --git a/seahub/templates/sysadmin/sys_useradmin.html b/seahub/templates/sysadmin/sys_useradmin.html index 74b0bb2d61..393f2a806c 100644 --- a/seahub/templates/sysadmin/sys_useradmin.html +++ b/seahub/templates/sysadmin/sys_useradmin.html @@ -9,38 +9,65 @@ {% endblock %} {% block right_panel %} -
-
+
+ + + + + + + + + + {% for user in users %} + {% if user.is_staff %} + + + + + + + + + + {% endif %} + {% endfor %} +
{% trans "Email" %}{% trans "Status" %}{% trans "Space Used" %}{% trans "Create At / Last Login" %}{% trans "Operations" %}
{{ user.email }} + {% if user.source != 'LDAP' %} +
+ {% if user.is_active %} + {% trans "Active" %} + {% else %} + {% trans "Inactive" %} + {% endif %} + {% trans +
+ + {% endif %} +
+ {% if CALC_SHARE_USAGE %} + {{ user.self_usage|filesizeformat }} + {{ user.share_usage|filesizeformat }} {% if user.quota > 0 %} / {{ user.quota|filesizeformat }} {% endif %} + {% else %} + {{ user.self_usage|filesizeformat }} {% if user.quota > 0 %} / {{ user.quota|filesizeformat }} {% endif %} + {% endif %} + + {% if user.source != 'LDAP' %} + {{ user.ctime|tsstr_sec }} /
+ {% if user.last_login %}{{user.last_login|translate_seahub_time}} {% else %} -- {% endif %} + {% endif %} +
+ {% if user.source != 'LDAP' %} + {% if not user.is_self %} + {% trans "Delete" %} + {% trans "ResetPwd" %} + {% trans "Revoke Admin" %} + {% else %} + {% endif %} + {% endif %} +
+
+ diff --git a/seahub/urls.py b/seahub/urls.py index 66ac9e9705..dd70ce79ba 100644 --- a/seahub/urls.py +++ b/seahub/urls.py @@ -20,7 +20,8 @@ from seahub.views.sysadmin import sys_repo_admin, sys_user_admin, user_search,\ sys_group_admin, user_info, user_add, user_remove, user_make_admin, \ user_remove_admin, user_reset, user_activate, sys_publink_admin, \ sys_repo_search, sys_repo_transfer, sys_list_orphan, user_deactivate, \ - user_toggle_status, user_set_quota, sys_ldap_user_admin, sys_list_system + user_toggle_status, user_set_quota, sys_ldap_user_admin, sys_list_system, \ + batch_user_make_admin from seahub.views.ajax import * # Uncomment the next two lines to enable the admin: @@ -194,6 +195,9 @@ urlpatterns = patterns('', url(r'^useradmin/(?P[^/]+)/set_quota/$', user_set_quota, name='user_set_quota'), url(r'^useradmin/password/reset/(?P[^/]+)/$', user_reset, name='user_reset'), + + url(r'^useradmin/batchmakeadmin/$', batch_user_make_admin, name='batch_user_make_admin'), + ) if settings.SERVE_STATIC: diff --git a/seahub/views/sysadmin.py b/seahub/views/sysadmin.py index b758955307..fa26f53ee3 100644 --- a/seahub/views/sysadmin.py +++ b/seahub/views/sysadmin.py @@ -23,7 +23,7 @@ from seahub.base.accounts import User from seahub.base.models import UserLastLogin from seahub.base.decorators import sys_staff_required from seahub.auth.decorators import login_required -from seahub.utils import IS_EMAIL_CONFIGURED +from seahub.utils import IS_EMAIL_CONFIGURED, string2list from seahub.views import get_system_default_repo_id from seahub.forms import SetUserQuotaForm, AddUserForm from seahub.profile.models import Profile, DetailedProfile @@ -708,3 +708,27 @@ def sys_traffic_admin(request): 'page_next': page_next, }, context_instance=RequestContext(request)) + +@login_required +@sys_staff_required +def batch_user_make_admin(request): + result = {} + content_type = 'application/json; charset=utf-8' + + set_admin_emails = request.POST.get('set_admin_emails') + set_admin_emails = string2list(set_admin_emails) + + try: + for email in set_admin_emails: + print email + user = User.objects.get(email=email) + user.is_staff = True + user.save() + result['success'] = True + messages.success(request, _(u'Successfully patch set admin')) + return HttpResponse(json.dumps(result), content_type=content_type) + except Exception, e: + result['success'] = False + messages.error(request, _(e)) + return HttpResponse(json.dumps(result), status=500, content_type=content_type) +