1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-09-20 02:48:51 +00:00

[org] Limit org max user num at org-setting page

This commit is contained in:
lian
2014-12-03 18:39:02 +08:00
parent 07a400e6a1
commit 36310f1dbc
3 changed files with 69 additions and 1 deletions

View File

@@ -19,6 +19,13 @@
<input type="text" name="new_name" class="input" value="{{ org.org_name }}"/></br>
<input type="submit" value="{% trans "Submit" %}" class="submit" />
</form>
<h3>{% trans "Limit Organization User Number" %}</h3>
<form id="org_member_quota" action="" method="post" class="form">{% csrf_token %}
<label>{% trans "Max User Number" %}</label></br>
<input type="text" name="member_quota" class="input" value="{{ org_member_quota }}"/></br>
<p class="error hide"></p>
<input type="submit" value="{% trans "Submit" %}" class="submit" />
</form>
</div>
{% endblock %}
@@ -26,5 +33,41 @@
{% block extra_script %}
<script type="text/javascript">
{% include 'sysadmin/sys_org_set_quota_js.html' %}
$('#org_member_quota').submit(function() {
var form = $(this),
form_id = form.attr('id'),
member_quota = $('[name="member_quota"]', form).val(),
submit_btn = $('input[type="submit"]', form);
if (!$.trim(member_quota)) {
return false;
}
if (isNaN(member_quota)) {
apply_form_error(form_id, "{% trans "Input should be a number" %}");
return false;
} else if (member_quota <= 0) {
apply_form_error(form_id, "{% trans "Input number should be greater than 1" %}");
return false;
}
disable(submit_btn);
$.ajax({
url: '{% url 'sys_org_set_member_quota' org.org_id %}',
type: 'POST',
dataType: 'json',
beforeSend: prepareCSRFToken,
data: {
'member_quota': member_quota
},
success: function(data) {
if (data['success']) {
location.href = '{% url 'sys_org_info_setting' org.org_id %}';
}
},
error: ajaxErrorHandler
});
return false;
});
</script>
{% endblock %}

View File

@@ -189,6 +189,7 @@ urlpatterns = patterns('',
url(r'^sys/orgadmin/$', sys_org_admin, name='sys_org_admin'),
url(r'^sys/orgadmin/(?P<org_id>\d+)/set_quota/$', sys_org_set_quota, name='sys_org_set_quota'),
url(r'^sys/orgadmin/(?P<org_id>\d+)/rename/$', sys_org_rename, name='sys_org_rename'),
url(r'^sys/orgadmin/(?P<org_id>\d+)/set_member_quota/$', sys_org_set_member_quota, name='sys_org_set_member_quota'),
url(r'^sys/orgadmin/(?P<org_id>\d+)/user/$', sys_org_info_user, name='sys_org_info_user'),
url(r'^sys/orgadmin/(?P<org_id>\d+)/group/$', sys_org_info_group, name='sys_org_info_group'),
url(r'^sys/orgadmin/(?P<org_id>\d+)/library/$', sys_org_info_library, name='sys_org_info_library'),

View File

@@ -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))