mirror of
https://github.com/NodeBB/NodeBB.git
synced 2026-01-02 22:00:34 +01:00
ban controls on frontend, closes #4807
This commit is contained in:
@@ -45,18 +45,4 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.page-manage-users {
|
||||
.ban-modal {
|
||||
input[type="number"] {
|
||||
width: 5rem;
|
||||
text-align: center;
|
||||
margin-left: 1rem;
|
||||
}
|
||||
|
||||
.form-inline, .form-group {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -103,4 +103,16 @@
|
||||
&.avatar-rounded {
|
||||
border-radius: 50%;
|
||||
}
|
||||
}
|
||||
|
||||
.ban-modal {
|
||||
input[type="number"] {
|
||||
width: 7rem;
|
||||
text-align: center;
|
||||
margin-left: 1rem;
|
||||
}
|
||||
|
||||
.form-inline, .form-group {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
@@ -103,18 +103,34 @@ define('forum/account/header', [
|
||||
}
|
||||
|
||||
function banAccount() {
|
||||
translator.translate('[[user:ban_account_confirm]]', function(translated) {
|
||||
bootbox.confirm(translated, function(confirm) {
|
||||
if (!confirm) {
|
||||
return;
|
||||
}
|
||||
socket.emit('user.banUsers', [ajaxify.data.theirid], function(err) {
|
||||
if (err) {
|
||||
return app.alertError(err.message);
|
||||
templates.parse('admin/partials/temporary-ban', {}, function(html) {
|
||||
bootbox.dialog({
|
||||
className: 'ban-modal',
|
||||
title: '[[user:ban_account]]',
|
||||
message: html,
|
||||
show: true,
|
||||
buttons: {
|
||||
close: {
|
||||
label: '[[global:close]]',
|
||||
className: 'btn-link'
|
||||
},
|
||||
submit: {
|
||||
label: '[[user:ban_account]]',
|
||||
callback: function() {
|
||||
var formData = $('.ban-modal form').serializeArray().reduce(function(data, cur) {
|
||||
data[cur.name] = cur.value;
|
||||
return data;
|
||||
}, {});
|
||||
var until = Date.now() + formData.length * 1000*60*60 * (parseInt(formData.unit, 10) ? 24 : 1);
|
||||
socket.emit('user.banUsers', { uids: [ajaxify.data.theirid], until: until }, function(err) {
|
||||
if (err) {
|
||||
return app.alertError(err.message);
|
||||
}
|
||||
ajaxify.refresh();
|
||||
});
|
||||
}
|
||||
}
|
||||
components.get('account/ban').parent().addClass('hide');
|
||||
components.get('account/unban').parent().removeClass('hide');
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
@@ -124,9 +140,7 @@ define('forum/account/header', [
|
||||
if (err) {
|
||||
return app.alertError(err.message);
|
||||
}
|
||||
|
||||
components.get('account/ban').parent().removeClass('hide');
|
||||
components.get('account/unban').parent().addClass('hide');
|
||||
ajaxify.refresh();
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -60,7 +60,7 @@ module.exports = function(User) {
|
||||
db.sortedSetScores('users:banned:expire', uids, function(err, scores) {
|
||||
users = users.map(function(userObj, idx) {
|
||||
userObj.banned_until = scores[idx] || 0;
|
||||
userObj.banned_until_readable = scores[idx] ? new Date(scores[idx]).toISOString() : 'Not Banned';
|
||||
userObj.banned_until_readable = scores[idx] ? new Date(scores[idx]).toString() : 'Not Banned';
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user