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:
@@ -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 %}
|
||||
|
@@ -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'),
|
||||
|
@@ -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))
|
||||
|
Reference in New Issue
Block a user