diff --git a/seahub/templates/sysadmin/sys_org_info_setting.html b/seahub/templates/sysadmin/sys_org_info_setting.html index f87f5e07a9..8bb24dd36f 100644 --- a/seahub/templates/sysadmin/sys_org_info_setting.html +++ b/seahub/templates/sysadmin/sys_org_info_setting.html @@ -19,6 +19,13 @@
+

{% trans "Limit Organization User Number" %}

+
{% csrf_token %} +
+
+

+ +
{% endblock %} @@ -26,5 +33,41 @@ {% block extra_script %} {% endblock %} diff --git a/seahub/urls.py b/seahub/urls.py index f958d5c28a..d89c45491d 100644 --- a/seahub/urls.py +++ b/seahub/urls.py @@ -189,6 +189,7 @@ urlpatterns = patterns('', url(r'^sys/orgadmin/$', sys_org_admin, name='sys_org_admin'), url(r'^sys/orgadmin/(?P\d+)/set_quota/$', sys_org_set_quota, name='sys_org_set_quota'), url(r'^sys/orgadmin/(?P\d+)/rename/$', sys_org_rename, name='sys_org_rename'), + url(r'^sys/orgadmin/(?P\d+)/set_member_quota/$', sys_org_set_member_quota, name='sys_org_set_member_quota'), url(r'^sys/orgadmin/(?P\d+)/user/$', sys_org_info_user, name='sys_org_info_user'), url(r'^sys/orgadmin/(?P\d+)/group/$', sys_org_info_group, name='sys_org_info_group'), url(r'^sys/orgadmin/(?P\d+)/library/$', sys_org_info_library, name='sys_org_info_library'), diff --git a/seahub/views/sysadmin.py b/seahub/views/sysadmin.py index aede0412ec..1c0f3dbe14 100644 --- a/seahub/views/sysadmin.py +++ b/seahub/views/sysadmin.py @@ -36,7 +36,7 @@ from seahub.settings import INIT_PASSWD, SITE_NAME, \ ENABLE_GUEST from seahub.utils import send_html_email, get_user_traffic_list, get_server_id from seahub.utils.sysinfo import get_platform_name - +from seahub_extra.organizations.models import OrgMemberQuota logger = logging.getLogger(__name__) @login_required @@ -875,6 +875,29 @@ def sys_org_rename(request, org_id): return HttpResponseRedirect(next) +@login_required_ajax +@sys_staff_required +def sys_org_set_member_quota(request, org_id): + + if request.method != 'POST': + raise Http404 + + content_type = 'application/json; charset=utf-8' + + try: + member_quota = int(request.POST.get('member_quota', '0')) + if member_quota > 0: + OrgMemberQuota.objects.set_quota(org_id, member_quota) + messages.success(request, _(u'Success')) + return HttpResponse(json.dumps({'success': True}), status=200, + content_type=content_type) + else: + return HttpResponse(json.dumps({ 'error': _('Input number should be greater than 1')}), + status=400, content_type=content_type) + except ValueError: + return HttpResponse(json.dumps({ 'error': _('Input should be a number')}), + status=400, content_type=content_type) + def sys_get_org_base_info(org_id): org = ccnet_threaded_rpc.get_org_by_id(org_id) @@ -971,6 +994,7 @@ def sys_org_info_setting(request, org_id): org_id = int(org_id) org_basic_info = sys_get_org_base_info(org_id) + org_basic_info['org_member_quota'] = OrgMemberQuota.objects.get_quota(org_id) return render_to_response('sysadmin/sys_org_info_setting.html', org_basic_info, context_instance=RequestContext(request))