1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-08-19 15:38:38 +00:00

[sysadmin] Update some user operations

This commit is contained in:
zhengxie 2015-08-27 17:01:23 +08:00
parent ab6014748b
commit 73e2d97f26
3 changed files with 49 additions and 17 deletions

View File

@ -249,6 +249,29 @@ function addConfirmTo(op_ele, popup) {
}); });
} }
// Similar to ``addConfirmto``, instead using form post when user confirms.
function addConfirmTo_POST(op_ele, popup) {
op_ele.click(function() {
var con = '';
if ($(this).data('target') && popup['con'].indexOf('%s') != -1) {
con = popup['con'].replace('%s', '<span class="op-target">' + HTMLescape($(this).data('target')) + '</span>');
} else {
con = popup['con'];
}
$('#confirm-con').html('<h3>' + popup['title'] + '</h3><p>' + con + '</p>');
$('#confirm-popup').modal({appendTo:'#main'});
$('#simplemodal-container').css({'height':'auto'});
$('#confirm-yes').data('url', $(this).data('url')).click(function() {
$('<form>', {
"method": 'POST',
"action": $(this).data('url'),
"html": '<input name="csrfmiddlewaretoken" value="' + getCookie('csrftoken') + '" type="hidden">'
}).appendTo(document.body).submit();
});
return false;//in case op_ele is '<a>'
});
}
/* /*
* func: add autocomplete to some input ele * func: add autocomplete to some input ele
* @param ele_id: autocomplete is added to this ele(ment), e.g-'#xxx' * @param ele_id: autocomplete is added to this ele(ment), e.g-'#xxx'
@ -477,7 +500,6 @@ function e(str) {
return encodeURIComponent(str); return encodeURIComponent(str);
} }
function prepareCSRFToken(xhr, settings) {
function getCookie(name) { function getCookie(name) {
var cookieValue = null; var cookieValue = null;
if (document.cookie && document.cookie != '') { if (document.cookie && document.cookie != '') {
@ -493,6 +515,8 @@ function prepareCSRFToken(xhr, settings) {
} }
return cookieValue; return cookieValue;
} }
function prepareCSRFToken(xhr, settings) {
if (!(/^http:.*/.test(settings.url) || /^https:.*/.test(settings.url))) { if (!(/^http:.*/.test(settings.url) || /^https:.*/.test(settings.url))) {
// Only send the token to relative URLs i.e. locally. // Only send the token to relative URLs i.e. locally.
xhr.setRequestHeader("X-CSRFToken", getCookie('csrftoken')); xhr.setRequestHeader("X-CSRFToken", getCookie('csrftoken'));

View File

@ -1,13 +1,13 @@
{% load i18n%} {% load i18n%}
addConfirmTo($('.remove-user-btn'), { addConfirmTo_POST($('.remove-user-btn'), {
'title':"{% trans "Delete User" %}", 'title':"{% trans "Delete User" %}",
'con':"{% trans "Are you sure you want to delete %s ?" %}" 'con':"{% trans "Are you sure you want to delete %s ?" %}"
}); });
addConfirmTo($('.reset-user-btn'), { addConfirmTo_POST($('.reset-user-btn'), {
'title':"{% trans "Password Reset" %}", 'title':"{% trans "Password Reset" %}",
'con':"{% trans "Are you sure you want to reset the password of %s ?" %}" 'con':"{% trans "Are you sure you want to reset the password of %s ?" %}"
}); });
addConfirmTo($('.revoke-admin-btn'), { addConfirmTo_POST($('.revoke-admin-btn'), {
'title':"{% trans "Revoke Admin" %}", 'title':"{% trans "Revoke Admin" %}",
'con':"{% trans "Are you sure you want to revoke the admin permission of %s ?" %}" 'con':"{% trans "Are you sure you want to revoke the admin permission of %s ?" %}"
}); });

View File

@ -28,7 +28,6 @@ from seahub.auth.decorators import login_required, login_required_ajax
from seahub.constants import GUEST_USER, DEFAULT_USER from seahub.constants import GUEST_USER, DEFAULT_USER
from seahub.utils import IS_EMAIL_CONFIGURED, string2list, is_valid_username, \ from seahub.utils import IS_EMAIL_CONFIGURED, string2list, is_valid_username, \
is_pro_version is_pro_version
from seahub.utils.rpc import mute_seafile_api
from seahub.utils.licenseparse import parse_license from seahub.utils.licenseparse import parse_license
from seahub.views import get_system_default_repo_id from seahub.views import get_system_default_repo_id
from seahub.forms import SetUserQuotaForm, AddUserForm, BatchAddUserForm from seahub.forms import SetUserQuotaForm, AddUserForm, BatchAddUserForm
@ -730,6 +729,9 @@ def sys_org_set_quota(request, org_id):
@sys_staff_required @sys_staff_required
def user_remove(request, email): def user_remove(request, email):
"""Remove user""" """Remove user"""
if request.method != 'POST':
raise Http404
referer = request.META.get('HTTP_REFERER', None) referer = request.META.get('HTTP_REFERER', None)
next = reverse('sys_useradmin') if referer is None else referer next = reverse('sys_useradmin') if referer is None else referer
@ -793,6 +795,9 @@ def remove_trial(request, user_or_org):
@sys_staff_required @sys_staff_required
def user_remove_admin(request, email): def user_remove_admin(request, email):
"""Unset user admin.""" """Unset user admin."""
if request.method != 'POST':
raise Http404
try: try:
user = User.objects.get(email=email) user = User.objects.get(email=email)
user.is_staff = False user.is_staff = False
@ -931,6 +936,9 @@ def send_user_reset_email(request, email, password):
@sys_staff_required @sys_staff_required
def user_reset(request, email): def user_reset(request, email):
"""Reset password for user.""" """Reset password for user."""
if request.method != 'POST':
raise Http404
try: try:
user = User.objects.get(email=email) user = User.objects.get(email=email)
if isinstance(INIT_PASSWD, FunctionType): if isinstance(INIT_PASSWD, FunctionType):