@@ -34,11 +39,16 @@
{% if orgs %}
+
{% include "sysadmin/org_admin_table.html" %}
-{% include "snippets/admin_paginator.html" %}
+
+ {% if not hide_paginator %}
+ {% include "snippets/admin_paginator.html" %}
+ {% endif %}
{% else %}
{% endif %}
+
{% endblock %}
{% block extra_script %}
diff --git a/seahub/templates/sysadmin/sys_useradmin.html b/seahub/templates/sysadmin/sys_useradmin.html
index f869c6fdaa..06cb985347 100644
--- a/seahub/templates/sysadmin/sys_useradmin.html
+++ b/seahub/templates/sysadmin/sys_useradmin.html
@@ -17,6 +17,9 @@
diff --git a/seahub/templates/sysadmin/sys_useradmin_paid.html b/seahub/templates/sysadmin/sys_useradmin_paid.html
new file mode 100644
index 0000000000..1b8e4b95c8
--- /dev/null
+++ b/seahub/templates/sysadmin/sys_useradmin_paid.html
@@ -0,0 +1,39 @@
+{% extends "sysadmin/base.html" %}
+{% load seahub_tags i18n %}
+{% block cur_users %}tab-cur{% endblock %}
+
+{% block left_panel %}{{block.super}}
+
+{% endblock %}
+
+{% block right_panel %}
+
+
+{% with is_admin_page=False%}
+{% include "sysadmin/useradmin_table.html" %}
+{% endwith %}
+
+
+
{% trans "Activating..., please wait" %}
+
+{% endblock %}
+
+{% block extra_script %}
+
+{% endblock %}
diff --git a/seahub/templates/sysadmin/useradmin_table.html b/seahub/templates/sysadmin/useradmin_table.html
index 626fa83b90..e7e8744ea5 100644
--- a/seahub/templates/sysadmin/useradmin_table.html
+++ b/seahub/templates/sysadmin/useradmin_table.html
@@ -79,12 +79,12 @@
{% if not user.is_self %}
- {% trans "Delete" %}
+ {% trans "Delete" %}
{% if user.source == "DB" %}
- {% trans "ResetPwd" %}
+ {% trans "ResetPwd" %}
{% endif %}
{% if is_admin_page %}
- {% trans "Revoke Admin" %}
+ {% trans "Revoke Admin" %}
{% endif %}
{% endif %}
|
diff --git a/seahub/views/sysadmin.py b/seahub/views/sysadmin.py
index cc44a5e604..bccd5be0a4 100644
--- a/seahub/views/sysadmin.py
+++ b/seahub/views/sysadmin.py
@@ -362,6 +362,33 @@ def _populate_user_quota_usage(user):
def sys_user_admin(request):
"""List all users from database.
"""
+ try:
+ from seahub_extra.plan.models import UserPlan
+ enable_user_plan = True
+ except ImportError:
+ enable_user_plan = False
+
+ if enable_user_plan and request.GET.get('filter', '') == 'paid':
+ # show paid users
+ users = []
+ ups = UserPlan.objects.all()
+ for up in ups:
+ u = User.objects.get(up.username)
+ _populate_user_quota_usage(u)
+ users.append(u)
+
+ last_logins = UserLastLogin.objects.filter(username__in=[x.username for x in users])
+ for u in users:
+ for e in last_logins:
+ if e.username == u.username:
+ u.last_login = e.last_login
+
+ return render_to_response('sysadmin/sys_useradmin_paid.html', {
+ 'users': users,
+ 'enable_user_plan': enable_user_plan,
+ }, context_instance=RequestContext(request))
+
+ ### List all users
# Make sure page request is an int. If not, deliver first page.
try:
current_page = int(request.GET.get('page', '1'))
@@ -426,6 +453,7 @@ def sys_user_admin(request):
'guest_user': GUEST_USER,
'is_pro': is_pro_version(),
'pro_server': pro_server,
+ 'enable_user_plan': enable_user_plan,
}, context_instance=RequestContext(request))
@login_required
@@ -1148,14 +1176,44 @@ def sys_org_admin(request):
current_page = 1
per_page = 25
+ try:
+ from seahub_extra.plan.models import OrgPlan
+ enable_org_plan = True
+ except ImportError:
+ enable_org_plan = False
+
+ if enable_org_plan and request.GET.get('filter', '') == 'paid':
+ orgs = []
+ ops = OrgPlan.objects.all()
+ for e in ops:
+ o = ccnet_threaded_rpc.get_org_by_id(e.org_id)
+ o.quota_usage = seafserv_threaded_rpc.get_org_quota_usage(o.org_id)
+ o.total_quota = seafserv_threaded_rpc.get_org_quota(o.org_id)
+ o.expiration = e.expire_date
+ o.is_expired = True if e.expire_date < timezone.now() else False
+ orgs.append(o)
+
+ return render_to_response('sysadmin/sys_org_admin.html', {
+ 'orgs': orgs,
+ 'enable_org_plan': enable_org_plan,
+ 'hide_paginator': True,
+ 'paid_page': True,
+ }, context_instance=RequestContext(request))
+
orgs_plus_one = ccnet_threaded_rpc.get_all_orgs(per_page * (current_page - 1),
per_page + 1)
+ if len(orgs_plus_one) == per_page + 1:
+ page_next = True
+ else:
+ page_next = False
+
orgs = orgs_plus_one[:per_page]
if ENABLE_TRIAL_ACCOUNT:
trial_orgs = TrialAccount.objects.filter(user_or_org__in=[x.org_id for x in orgs])
else:
trial_orgs = []
+
for org in orgs:
org.quota_usage = seafserv_threaded_rpc.get_org_quota_usage(org.org_id)
org.total_quota = seafserv_threaded_rpc.get_org_quota(org.org_id)
@@ -1177,11 +1235,6 @@ def sys_org_admin(request):
else:
org.is_expired = False
- if len(orgs_plus_one) == per_page + 1:
- page_next = True
- else:
- page_next = False
-
return render_to_response('sysadmin/sys_org_admin.html', {
'orgs': orgs,
'current_page': current_page,
@@ -1189,6 +1242,8 @@ def sys_org_admin(request):
'next_page': current_page+1,
'per_page': per_page,
'page_next': page_next,
+ 'enable_org_plan': enable_org_plan,
+ 'all_page': True,
}, context_instance=RequestContext(request))
@login_required