mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-10-30 18:46:01 +01:00
ability to set moderation note on users
This commit is contained in:
@@ -61,8 +61,8 @@
|
|||||||
"nodebb-plugin-spam-be-gone": "0.4.10",
|
"nodebb-plugin-spam-be-gone": "0.4.10",
|
||||||
"nodebb-rewards-essentials": "0.0.9",
|
"nodebb-rewards-essentials": "0.0.9",
|
||||||
"nodebb-theme-lavender": "3.0.14",
|
"nodebb-theme-lavender": "3.0.14",
|
||||||
"nodebb-theme-persona": "4.1.47",
|
"nodebb-theme-persona": "4.1.48",
|
||||||
"nodebb-theme-vanilla": "5.1.31",
|
"nodebb-theme-vanilla": "5.1.32",
|
||||||
"nodebb-widget-essentials": "2.0.11",
|
"nodebb-widget-essentials": "2.0.11",
|
||||||
"nodemailer": "2.0.0",
|
"nodemailer": "2.0.0",
|
||||||
"nodemailer-sendmail-transport": "1.0.0",
|
"nodemailer-sendmail-transport": "1.0.0",
|
||||||
|
|||||||
@@ -23,6 +23,7 @@
|
|||||||
"you_have_successfully_logged_in": "You have successfully logged in",
|
"you_have_successfully_logged_in": "You have successfully logged in",
|
||||||
|
|
||||||
"save_changes": "Save Changes",
|
"save_changes": "Save Changes",
|
||||||
|
"save": "Save",
|
||||||
"close": "Close",
|
"close": "Close",
|
||||||
|
|
||||||
"pagination": "Pagination",
|
"pagination": "Pagination",
|
||||||
|
|||||||
@@ -142,5 +142,7 @@
|
|||||||
"info.banned-reason-label": "Reason",
|
"info.banned-reason-label": "Reason",
|
||||||
"info.banned-no-reason": "No reason given.",
|
"info.banned-no-reason": "No reason given.",
|
||||||
"info.username-history": "Username History",
|
"info.username-history": "Username History",
|
||||||
"info.email-history": "Email History"
|
"info.email-history": "Email History",
|
||||||
|
"info.moderation-note": "Moderation Note",
|
||||||
|
"info.moderation-note.success": "Moderation note saved"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,13 +1,26 @@
|
|||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
/* globals define */
|
/* globals define, socket, ajaxify, app */
|
||||||
|
|
||||||
define('forum/account/info', ['forum/account/header'], function(header) {
|
define('forum/account/info', ['forum/account/header'], function(header) {
|
||||||
var Info = {};
|
var Info = {};
|
||||||
|
|
||||||
Info.init = function() {
|
Info.init = function() {
|
||||||
header.init();
|
header.init();
|
||||||
|
handleModerationNote();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
function handleModerationNote() {
|
||||||
|
$('[component="account/save-moderation-note"]').on('click', function() {
|
||||||
|
var note = $('[component="account/moderation-note"]').val();
|
||||||
|
socket.emit('user.setModerationNote', {uid: ajaxify.data.uid, note: note}, function(err) {
|
||||||
|
if (err) {
|
||||||
|
return app.alertError(err.message);
|
||||||
|
}
|
||||||
|
app.alertSuccess('[[user:info.moderation-note.success]]');
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
return Info;
|
return Info;
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -92,6 +92,7 @@ helpers.getUserDataByUserSlug = function(userslug, callerUID, callback) {
|
|||||||
userData.theirid = userData.uid;
|
userData.theirid = userData.uid;
|
||||||
userData.isAdmin = isAdmin;
|
userData.isAdmin = isAdmin;
|
||||||
userData.isGlobalModerator = isGlobalModerator;
|
userData.isGlobalModerator = isGlobalModerator;
|
||||||
|
userData.isAdminOrGlobalModerator = isAdmin || isGlobalModerator;
|
||||||
userData.canBan = isAdmin || isGlobalModerator;
|
userData.canBan = isAdmin || isGlobalModerator;
|
||||||
userData.canChangePassword = isAdmin || (isSelf && parseInt(meta.config['password:disableEdit'], 10) !== 1);
|
userData.canChangePassword = isAdmin || (isSelf && parseInt(meta.config['password:disableEdit'], 10) !== 1);
|
||||||
userData.isSelf = isSelf;
|
userData.isSelf = isSelf;
|
||||||
|
|||||||
@@ -319,5 +319,26 @@ SocketUser.getUserByEmail = function(socket, email, callback) {
|
|||||||
apiController.getUserDataByField(socket.uid, 'email', email, callback);
|
apiController.getUserDataByField(socket.uid, 'email', email, callback);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
SocketUser.setModerationNote = function(socket, data, callback) {
|
||||||
|
if (!socket.uid || !data || !data.uid) {
|
||||||
|
return callback(new Error('[[error:invalid-data]]'));
|
||||||
|
}
|
||||||
|
|
||||||
|
async.waterfall([
|
||||||
|
function(next) {
|
||||||
|
user.isAdminOrGlobalMod(socket.uid, next);
|
||||||
|
},
|
||||||
|
function(isAdminOrGlobalMod, next) {
|
||||||
|
if (!isAdminOrGlobalMod) {
|
||||||
|
return next(new Error('[[error:no-privileges]]'));
|
||||||
|
}
|
||||||
|
if (data.note) {
|
||||||
|
user.setUserField(data.uid, 'moderationNote', data.note, next);
|
||||||
|
} else {
|
||||||
|
db.deleteObjectField('user:' + data.uid, 'moderationNote', next);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
], callback);
|
||||||
|
};
|
||||||
|
|
||||||
module.exports = SocketUser;
|
module.exports = SocketUser;
|
||||||
|
|||||||
Reference in New Issue
Block a user