mirror of
https://github.com/haiwen/seahub.git
synced 2025-09-21 11:27:18 +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="text" name="new_name" class="input" value="{{ org.org_name }}"/></br>
|
||||||
<input type="submit" value="{% trans "Submit" %}" class="submit" />
|
<input type="submit" value="{% trans "Submit" %}" class="submit" />
|
||||||
</form>
|
</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>
|
</div>
|
||||||
|
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
@@ -26,5 +33,41 @@
|
|||||||
{% block extra_script %}
|
{% block extra_script %}
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
{% include 'sysadmin/sys_org_set_quota_js.html' %}
|
{% 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>
|
</script>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
@@ -189,6 +189,7 @@ urlpatterns = patterns('',
|
|||||||
url(r'^sys/orgadmin/$', sys_org_admin, name='sys_org_admin'),
|
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+)/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+)/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+)/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+)/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'),
|
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
|
ENABLE_GUEST
|
||||||
from seahub.utils import send_html_email, get_user_traffic_list, get_server_id
|
from seahub.utils import send_html_email, get_user_traffic_list, get_server_id
|
||||||
from seahub.utils.sysinfo import get_platform_name
|
from seahub.utils.sysinfo import get_platform_name
|
||||||
|
from seahub_extra.organizations.models import OrgMemberQuota
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
@login_required
|
@login_required
|
||||||
@@ -875,6 +875,29 @@ def sys_org_rename(request, org_id):
|
|||||||
|
|
||||||
return HttpResponseRedirect(next)
|
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):
|
def sys_get_org_base_info(org_id):
|
||||||
|
|
||||||
org = ccnet_threaded_rpc.get_org_by_id(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_id = int(org_id)
|
||||||
org_basic_info = sys_get_org_base_info(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',
|
return render_to_response('sysadmin/sys_org_info_setting.html',
|
||||||
org_basic_info, context_instance=RequestContext(request))
|
org_basic_info, context_instance=RequestContext(request))
|
||||||
|
Reference in New Issue
Block a user