mirror of
https://github.com/NodeBB/NodeBB.git
synced 2026-05-07 14:16:25 +02:00
fixes #6726
This commit is contained in:
@@ -16,7 +16,7 @@ module.exports = function (privileges) {
|
||||
|
||||
privileges.topics.get = function (tid, uid, callback) {
|
||||
var topic;
|
||||
var privs = ['topics:reply', 'topics:read', 'topics:tag', 'topics:delete', 'posts:edit', 'posts:history', 'posts:delete', 'posts:view_deleted', 'read'];
|
||||
var privs = ['topics:reply', 'topics:read', 'topics:tag', 'topics:delete', 'posts:edit', 'posts:history', 'posts:delete', 'posts:view_deleted', 'read', 'purge'];
|
||||
async.waterfall([
|
||||
async.apply(topics.getTopicFields, tid, ['cid', 'uid', 'locked', 'deleted']),
|
||||
function (_topic, next) {
|
||||
@@ -37,6 +37,7 @@ module.exports = function (privileges) {
|
||||
var isAdminOrMod = results.isAdministrator || results.isModerator;
|
||||
var editable = isAdminOrMod;
|
||||
var deletable = isAdminOrMod || (isOwner && privData['topics:delete']);
|
||||
var purge = results.isAdministrator || privData.purge;
|
||||
|
||||
plugins.fireHook('filter:privileges.topics.get', {
|
||||
'topics:reply': (privData['topics:reply'] && !locked && !deleted) || isAdminOrMod,
|
||||
@@ -51,6 +52,7 @@ module.exports = function (privileges) {
|
||||
view_thread_tools: editable || deletable,
|
||||
editable: editable,
|
||||
deletable: deletable,
|
||||
purge: purge,
|
||||
view_deleted: isAdminOrMod || isOwner,
|
||||
isAdminOrMod: isAdminOrMod,
|
||||
disabled: disabled,
|
||||
|
||||
@@ -39,6 +39,9 @@ module.exports = function (SocketPosts) {
|
||||
canDelete: function (next) {
|
||||
privileges.posts.canDelete(data.pid, socket.uid, next);
|
||||
},
|
||||
canPurge: function (next) {
|
||||
privileges.posts.canPurge(data.pid, socket.uid, next);
|
||||
},
|
||||
canFlag: function (next) {
|
||||
privileges.posts.canFlag(data.pid, socket.uid, next);
|
||||
},
|
||||
@@ -62,6 +65,7 @@ module.exports = function (SocketPosts) {
|
||||
posts.selfPost = socket.uid && socket.uid === parseInt(posts.uid, 10);
|
||||
posts.display_edit_tools = results.canEdit.flag;
|
||||
posts.display_delete_tools = results.canDelete.flag;
|
||||
posts.display_purge_tools = results.canPurge;
|
||||
posts.display_flag_tools = socket.uid && !posts.selfPost && results.canFlag.flag;
|
||||
posts.display_moderator_tools = posts.display_edit_tools || posts.display_delete_tools;
|
||||
posts.display_move_tools = results.isAdmin || results.isModerator;
|
||||
|
||||
Reference in New Issue
Block a user