mirror of
https://github.com/haiwen/seahub.git
synced 2025-09-20 19:08:21 +00:00
admin v2
This commit is contained in:
@@ -24,20 +24,35 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<form id="add-user-form" action="" method="post" class="hide">{% csrf_token %}
|
<form id="add-user-form" action="" method="post" class="hide">{% csrf_token %}
|
||||||
<h3>{% trans "Add user" %}</h3>
|
<h3>{% trans "Add user" %}</h3>
|
||||||
<label for="id_email">{% trans "Email" %}</label><br />
|
<label for="id_email">{% trans "Email" %}</label><br />
|
||||||
<input type="text" name="email" id="id_email" class="input" /><br />
|
<input type="text" name="email" id="id_email" class="input" /><br />
|
||||||
<label for="id_password1">{% trans "Password" %}</label><br />
|
<label for="id_password1">{% trans "Password" %}</label><br />
|
||||||
<input type="password" name="password1" id="id_password1" class="input" /><br />
|
<input type="password" name="password1" id="id_password1" class="input" /><br />
|
||||||
<label for="id_password2">{% trans "Confirm Password" %}</label><br />
|
<label for="id_password2">{% trans "Confirm Password" %}</label><br />
|
||||||
<input type="password" name="password2" id="id_password2" class="input" /><br />
|
<input type="password" name="password2" id="id_password2" class="input" /><br />
|
||||||
|
<p class="error hide"></p>
|
||||||
|
<input type="submit" value="{% trans "Submit" %}" class="submit" />
|
||||||
|
</form>
|
||||||
|
<form id="add-admin-form" method="post" name="add-admin-form" class="tab-popup hide">{% csrf_token %}
|
||||||
|
<h3 class="hd">{% trans "Add admins"%}</h3>
|
||||||
|
<div id="add-admin-tabs" class="tab-popup-tabs">
|
||||||
|
<ul class="tab-popup-tabs-nav">
|
||||||
|
<li class="tab"><a href="#enter" class="a">{% trans 'Enter' %}</a></li>
|
||||||
|
</ul>
|
||||||
|
<div id="enter">
|
||||||
|
<textarea id="added-member-name" name="user_email" placeholder="{% trans "emails, separated by ','" %}"></textarea><br />
|
||||||
|
<p class="tip">{% trans "Tip: the emails should be the users already added."%}</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="bot">
|
||||||
<p class="error hide"></p>
|
<p class="error hide"></p>
|
||||||
<input type="submit" value="{% trans "Submit" %}" class="submit" />
|
<input type="submit" value="{% trans "Submit"%}" />
|
||||||
</form>
|
</div>
|
||||||
|
</form>
|
||||||
|
|
||||||
{% include "sysadmin/useradmin_table.html"%}
|
{% include "sysadmin/useradmin_table.html"%}
|
||||||
{% include "sysadmin/useradmin_add_form.html" %}
|
|
||||||
|
|
||||||
<div id="activate-msg" class="hide">
|
<div id="activate-msg" class="hide">
|
||||||
<p>{% trans "Activating..., please wait" %}</p>
|
<p>{% trans "Activating..., please wait" %}</p>
|
||||||
@@ -45,7 +60,7 @@
|
|||||||
</div>
|
</div>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block extra_script %}{{block.super}}
|
{% block extra_script %}
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
|
|
||||||
var cur_tab = $('.ui-tabs-selected .a');
|
var cur_tab = $('.ui-tabs-selected .a');
|
||||||
@@ -122,7 +137,63 @@ $('#add-user-form').submit(function() {
|
|||||||
return false;
|
return false;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
var user_list = [], user_email;
|
||||||
|
{% for user in users %}
|
||||||
|
{% if not user.is_self %}
|
||||||
|
{% if not user.is_staff %}
|
||||||
|
user_email = '{{ user.email }}';
|
||||||
|
user_list.push({value:user_email, label:user_email});
|
||||||
|
{% endif %}
|
||||||
|
{% endif %}
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
|
$('#add-admin-btn').click(function() {
|
||||||
|
var form = $("#add-admin-form");
|
||||||
|
form.modal({appendTo: "#main", focus:false});
|
||||||
|
$('#simplemodal-container').css({'height':'auto', 'padding':0});
|
||||||
|
$('#add-admin-tabs').tabs();
|
||||||
|
|
||||||
|
addAutocomplete('#added-member-name', '#enter', user_list);
|
||||||
|
});
|
||||||
|
|
||||||
|
$('#add-admin-form').submit(function() {
|
||||||
|
var form = $(this),
|
||||||
|
cur_tab_id = $('.ui-tabs-selected a', form).attr('href'),
|
||||||
|
post_data = '',
|
||||||
|
input = $('[name="user_email"]', form);
|
||||||
|
post_data = input.val();
|
||||||
|
|
||||||
|
if (!post_data) {
|
||||||
|
apply_form_error(form.attr('id'), '{% trans "Please enter emails, or select some." %}');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
var submit_btn = $('[type="submit"]', form);
|
||||||
|
disable(submit_btn);
|
||||||
|
$.ajax({
|
||||||
|
url: '{% url 'batch_user_make_admin' %}',
|
||||||
|
type: 'POST',
|
||||||
|
dataType: 'json',
|
||||||
|
cache: false,
|
||||||
|
beforeSend: prepareCSRFToken,
|
||||||
|
data: {
|
||||||
|
'set_admin_emails': post_data
|
||||||
|
},
|
||||||
|
success: function(data) {
|
||||||
|
location.reload('true');
|
||||||
|
},
|
||||||
|
error: function(data, textStatus, jqXHR) {
|
||||||
|
var errors = $.parseJSON(data.responseText);
|
||||||
|
$.each(errors, function(index, value) {
|
||||||
|
apply_form_error(form.attr('id'), value);
|
||||||
|
});
|
||||||
|
enable(submit_btn);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
|
||||||
{% include "sysadmin/useradmin_js.html" %}
|
{% include "sysadmin/useradmin_js.html" %}
|
||||||
{% include "sysadmin/useradmin_add_js.html" %}
|
|
||||||
</script>
|
</script>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
@@ -1,43 +0,0 @@
|
|||||||
{% load i18n avatar_tags %}
|
|
||||||
<form id="add-admin-form" method="post" name="add-admin-form" class="tab-popup hide">{% csrf_token %}
|
|
||||||
<h3 class="hd">{% trans "Add admins"%}</h3>
|
|
||||||
<div id="add-admin-tabs" class="tab-popup-tabs">
|
|
||||||
<ul class="tab-popup-tabs-nav">
|
|
||||||
<li class="tab"><a href="#enter" class="a">{% trans 'Enter' %}</a></li>
|
|
||||||
{%comment%}
|
|
||||||
<li class="tab"><a href="#user-options" class="a">{% trans 'Users' %}</a></li>
|
|
||||||
{%endcomment%}
|
|
||||||
</ul>
|
|
||||||
<div id="enter">
|
|
||||||
<textarea id="added-member-name" name="user_email" placeholder="{% trans "emails, separated by ','" %}"></textarea><br />
|
|
||||||
{% if cloud_mode and not org %}
|
|
||||||
<p class="tip">{% trans "Tip: an invitation will be sent if the email is not registered."%}</p>
|
|
||||||
{% else %}
|
|
||||||
<p class="tip">{% trans "Tip: the emails should be the users already added."%}</p>
|
|
||||||
{% endif %}
|
|
||||||
</div>
|
|
||||||
{%comment%}
|
|
||||||
<div id="user-options" class="hide">
|
|
||||||
<ul class="option-list">
|
|
||||||
{% for user in users %}
|
|
||||||
{% if not user.is_self %}
|
|
||||||
{% if not user.is_staff %}
|
|
||||||
<li>
|
|
||||||
<label class="checkbox-label">
|
|
||||||
<span class="checkbox"><input type="checkbox" name="user" value="{{ user.email }}" class="checkbox-orig" /></span>
|
|
||||||
{% avatar user.email 20 %} <span class="checkbox-option">{{ user.email }}</span>
|
|
||||||
</label>
|
|
||||||
</li>
|
|
||||||
{% endif %}
|
|
||||||
{% endif %}
|
|
||||||
{% endfor %}
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
{%endcomment%}
|
|
||||||
</div>
|
|
||||||
<div class="bot">
|
|
||||||
<p class="error hide"></p>
|
|
||||||
<input type="submit" value="{% trans "Submit"%}" />
|
|
||||||
</div>
|
|
||||||
</form>
|
|
||||||
|
|
@@ -1,66 +0,0 @@
|
|||||||
{% load i18n %}
|
|
||||||
|
|
||||||
var user_list = [], user_email;
|
|
||||||
{% for user in users %}
|
|
||||||
{% if not user.is_self %}
|
|
||||||
{% if not user.is_staff %}
|
|
||||||
user_email = '{{ user.email }}';
|
|
||||||
user_list.push({value:user_email, label:user_email});
|
|
||||||
{% endif %}
|
|
||||||
{% endif %}
|
|
||||||
{% endfor %}
|
|
||||||
|
|
||||||
$('#add-admin-btn').click(function() {
|
|
||||||
var form = $("#add-admin-form");
|
|
||||||
form.modal({appendTo: "#main", focus:false});
|
|
||||||
$('#simplemodal-container').css({'height':'auto', 'padding':0});
|
|
||||||
$('#add-admin-tabs').tabs();
|
|
||||||
|
|
||||||
addAutocomplete('#added-member-name', '#enter', user_list);
|
|
||||||
});
|
|
||||||
|
|
||||||
$('#add-admin-form').submit(function() {
|
|
||||||
var form = $(this),
|
|
||||||
cur_tab_id = $('.ui-tabs-selected a', form).attr('href'),
|
|
||||||
post_data = '',
|
|
||||||
input = $('[name="user_email"]', form);
|
|
||||||
switch(cur_tab_id) {
|
|
||||||
case '#enter':
|
|
||||||
post_data = input.val();
|
|
||||||
break;
|
|
||||||
case '#user-options':
|
|
||||||
$(cur_tab_id + ' .checkbox-checked .checkbox-orig').each(function() {
|
|
||||||
post_data += $(this).val() + ',';
|
|
||||||
});
|
|
||||||
input.val(post_data);
|
|
||||||
}
|
|
||||||
if (!post_data) {
|
|
||||||
apply_form_error(form.attr('id'), '{% trans "Please enter emails, or select some." %}');
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
var submit_btn = $('[type="submit"]', form);
|
|
||||||
disable(submit_btn);
|
|
||||||
$.ajax({
|
|
||||||
url: '{% url 'batch_user_make_admin' %}',
|
|
||||||
type: 'POST',
|
|
||||||
dataType: 'json',
|
|
||||||
cache: false,
|
|
||||||
beforeSend: prepareCSRFToken,
|
|
||||||
data: {
|
|
||||||
'set_admin_emails': post_data
|
|
||||||
},
|
|
||||||
success: function(data) {
|
|
||||||
location.reload('true');
|
|
||||||
},
|
|
||||||
error: function(data, textStatus, jqXHR) {
|
|
||||||
var errors = $.parseJSON(data.responseText);
|
|
||||||
$.each(errors, function(index, value) {
|
|
||||||
apply_form_error(form.attr('id'), value);
|
|
||||||
});
|
|
||||||
enable(submit_btn);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
return false;
|
|
||||||
});
|
|
@@ -718,17 +718,23 @@ def batch_user_make_admin(request):
|
|||||||
set_admin_emails = request.POST.get('set_admin_emails')
|
set_admin_emails = request.POST.get('set_admin_emails')
|
||||||
set_admin_emails = string2list(set_admin_emails)
|
set_admin_emails = string2list(set_admin_emails)
|
||||||
|
|
||||||
try:
|
success = []
|
||||||
for email in set_admin_emails:
|
failed = []
|
||||||
print email
|
|
||||||
|
for email in set_admin_emails:
|
||||||
|
try:
|
||||||
user = User.objects.get(email=email)
|
user = User.objects.get(email=email)
|
||||||
user.is_staff = True
|
user.is_staff = True
|
||||||
user.save()
|
user.save()
|
||||||
result['success'] = True
|
success.append(email)
|
||||||
messages.success(request, _(u'Successfully patch set admin'))
|
except User.DoesNotExist:
|
||||||
return HttpResponse(json.dumps(result), content_type=content_type)
|
failed.append(email)
|
||||||
except Exception, e:
|
|
||||||
result['success'] = False
|
for item in success:
|
||||||
messages.error(request, _(e))
|
messages.success(request, _(u'Successfully set %s as admin') % item)
|
||||||
return HttpResponse(json.dumps(result), status=500, content_type=content_type)
|
for item in failed:
|
||||||
|
messages.error(request, _(u'Failed set %s as admin') % item)
|
||||||
|
|
||||||
|
result['success'] = True
|
||||||
|
return HttpResponse(json.dumps(result), content_type=content_type)
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user