mirror of
https://github.com/discourse/discourse.git
synced 2025-03-21 13:55:35 +08:00
Deleting a user from admin user page has the option to also block signups from the same email address
This commit is contained in:
parent
8cee3a9fcd
commit
5f3e9131ed
@ -215,25 +215,49 @@ Discourse.AdminUser = Discourse.User.extend({
|
|||||||
|
|
||||||
destroy: function() {
|
destroy: function() {
|
||||||
var user = this;
|
var user = this;
|
||||||
bootbox.confirm(I18n.t("admin.user.delete_confirm"), I18n.t("no_value"), I18n.t("yes_value"), function(result) {
|
|
||||||
if(result) {
|
var performDestroy = function(block) {
|
||||||
Discourse.ajax("/admin/users/" + user.get('id') + '.json', { type: 'DELETE' }).then(function(data) {
|
Discourse.ajax("/admin/users/" + user.get('id') + '.json', {
|
||||||
if (data.deleted) {
|
type: 'DELETE',
|
||||||
bootbox.alert(I18n.t("admin.user.deleted"), function() {
|
data: block ? {block_email: true} : {}
|
||||||
document.location = "/admin/users/list/active";
|
}).then(function(data) {
|
||||||
});
|
if (data.deleted) {
|
||||||
} else {
|
bootbox.alert(I18n.t("admin.user.deleted"), function() {
|
||||||
bootbox.alert(I18n.t("admin.user.delete_failed"));
|
document.location = "/admin/users/list/active";
|
||||||
if (data.user) {
|
});
|
||||||
user.mergeAttributes(data.user);
|
} else {
|
||||||
}
|
|
||||||
}
|
|
||||||
}, function(jqXHR, status, error) {
|
|
||||||
Discourse.AdminUser.find( user.get('username') ).then(function(u){ user.mergeAttributes(u); });
|
|
||||||
bootbox.alert(I18n.t("admin.user.delete_failed"));
|
bootbox.alert(I18n.t("admin.user.delete_failed"));
|
||||||
});
|
if (data.user) {
|
||||||
|
user.mergeAttributes(data.user);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}, function(jqXHR, status, error) {
|
||||||
|
Discourse.AdminUser.find( user.get('username') ).then(function(u){ user.mergeAttributes(u); });
|
||||||
|
bootbox.alert(I18n.t("admin.user.delete_failed"));
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
var message = I18n.t("admin.user.delete_confirm");
|
||||||
|
|
||||||
|
var buttons = [{
|
||||||
|
"label": I18n.t("composer.cancel"),
|
||||||
|
"class": "cancel",
|
||||||
|
"link": true
|
||||||
|
}, {
|
||||||
|
"label": I18n.t('admin.user.delete_dont_block'),
|
||||||
|
"class": "btn",
|
||||||
|
"callback": function(){
|
||||||
|
performDestroy(false);
|
||||||
}
|
}
|
||||||
});
|
}, {
|
||||||
|
"label": I18n.t('admin.user.delete_and_block'),
|
||||||
|
"class": "btn",
|
||||||
|
"callback": function(){
|
||||||
|
performDestroy(true);
|
||||||
|
}
|
||||||
|
}];
|
||||||
|
|
||||||
|
bootbox.dialog(message, buttons, {"classes": "delete-user-modal"});
|
||||||
},
|
},
|
||||||
|
|
||||||
loadDetails: function() {
|
loadDetails: function() {
|
||||||
|
@ -297,6 +297,25 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.delete-user-modal {
|
||||||
|
.modal-footer {
|
||||||
|
.btn {
|
||||||
|
font-weight: normal;
|
||||||
|
text-align: left;
|
||||||
|
font-size: 14px;
|
||||||
|
line-height: 20px;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
display: inline-block;
|
||||||
|
margin-left: 0;
|
||||||
|
}
|
||||||
|
.cancel {
|
||||||
|
text-decoration: underline;
|
||||||
|
display: block;
|
||||||
|
margin-right: 5px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.permission-list{
|
.permission-list{
|
||||||
list-style:none;
|
list-style:none;
|
||||||
margin: 0 0 30px;
|
margin: 0 0 30px;
|
||||||
|
@ -118,7 +118,7 @@ class Admin::UsersController < Admin::AdminController
|
|||||||
user = User.where(id: params[:id]).first
|
user = User.where(id: params[:id]).first
|
||||||
guardian.ensure_can_delete_user!(user)
|
guardian.ensure_can_delete_user!(user)
|
||||||
begin
|
begin
|
||||||
if UserDestroyer.new(current_user).destroy(user, params.slice(:delete_posts))
|
if UserDestroyer.new(current_user).destroy(user, params.slice(:delete_posts, :block_email))
|
||||||
render json: {deleted: true}
|
render json: {deleted: true}
|
||||||
else
|
else
|
||||||
render json: {deleted: false, user: AdminDetailedUserSerializer.new(user, root: false).as_json}
|
render json: {deleted: false, user: AdminDetailedUserSerializer.new(user, root: false).as_json}
|
||||||
|
@ -1234,6 +1234,8 @@ en:
|
|||||||
delete: "Delete User"
|
delete: "Delete User"
|
||||||
delete_forbidden: "This user can't be deleted because there are posts. Delete all this user's posts first."
|
delete_forbidden: "This user can't be deleted because there are posts. Delete all this user's posts first."
|
||||||
delete_confirm: "Are you SURE you want to permanently delete this user from the site? This action is permanent!"
|
delete_confirm: "Are you SURE you want to permanently delete this user from the site? This action is permanent!"
|
||||||
|
delete_and_block: "<strong>Yes</strong>, and <strong>block</strong> signups with the same email address"
|
||||||
|
delete_dont_block: "<strong>Yes</strong>, and <strong>allow</strong> signups with the same email address"
|
||||||
deleted: "The user was deleted."
|
deleted: "The user was deleted."
|
||||||
delete_failed: "There was an error deleting that user. Make sure all posts are deleted before trying to delete the user."
|
delete_failed: "There was an error deleting that user. Make sure all posts are deleted before trying to delete the user."
|
||||||
send_activation_email: "Send Activation Email"
|
send_activation_email: "Send Activation Email"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user