mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-10-26 08:36:12 +01:00
feat: add topicOwnerPost #8778
This commit is contained in:
@@ -263,6 +263,8 @@ get:
|
||||
type: number
|
||||
selfPost:
|
||||
type: boolean
|
||||
topicOwnerPost:
|
||||
type: boolean
|
||||
display_edit_tools:
|
||||
type: boolean
|
||||
display_delete_tools:
|
||||
|
||||
@@ -47,11 +47,16 @@ define('forum/topic/posts', [
|
||||
Posts.modifyPostsByPrivileges = function (posts) {
|
||||
posts.forEach(function (post) {
|
||||
post.selfPost = !!app.user.uid && parseInt(post.uid, 10) === parseInt(app.user.uid, 10);
|
||||
post.topicOwnerPost = parseInt(post.uid, 10) === parseInt(ajaxify.data.uid, 10);
|
||||
|
||||
post.display_edit_tools = (ajaxify.data.privileges['posts:edit'] && post.selfPost) || ajaxify.data.privileges.isAdminOrMod;
|
||||
post.display_delete_tools = (ajaxify.data.privileges['posts:delete'] && post.selfPost) || ajaxify.data.privileges.isAdminOrMod;
|
||||
post.display_moderator_tools = post.display_edit_tools || post.display_delete_tools;
|
||||
post.display_move_tools = ajaxify.data.privileges.isAdminOrMod;
|
||||
post.display_post_menu = ajaxify.data.privileges.isAdminOrMod || (post.selfPost && !ajaxify.data.locked) || ((app.user.uid || ajaxify.data.postSharing.length) && !post.deleted);
|
||||
post.display_post_menu = ajaxify.data.privileges.isAdminOrMod ||
|
||||
(post.selfPost && !ajaxify.data.locked && !post.deleted) ||
|
||||
(post.selfPost && post.deleted && parseInt(post.deleterUid, 10) === parseInt(app.user.uid, 10)) ||
|
||||
((app.user.uid || ajaxify.data.postSharing.length) && !post.deleted);
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
@@ -28,7 +28,7 @@ module.exports = function (Topics) {
|
||||
if (!Array.isArray(postData) || !postData.length) {
|
||||
return [];
|
||||
}
|
||||
var pids = postData.map(post => post && post.pid);
|
||||
const pids = postData.map(post => post && post.pid);
|
||||
|
||||
async function getPostUserData(field, method) {
|
||||
const uids = _.uniq(postData.filter(p => p && parseInt(p[field], 10) >= 0).map(p => p[field]));
|
||||
@@ -80,9 +80,10 @@ module.exports = function (Topics) {
|
||||
};
|
||||
|
||||
Topics.modifyPostsByPrivilege = function (topicData, topicPrivileges) {
|
||||
var loggedIn = parseInt(topicPrivileges.uid, 10) > 0;
|
||||
const loggedIn = parseInt(topicPrivileges.uid, 10) > 0;
|
||||
topicData.posts.forEach(function (post) {
|
||||
if (post) {
|
||||
post.topicOwnerPost = parseInt(topicData.uid, 10) === parseInt(post.uid, 10);
|
||||
post.display_edit_tools = topicPrivileges.isAdminOrMod || (post.selfPost && topicPrivileges['posts:edit']);
|
||||
post.display_delete_tools = topicPrivileges.isAdminOrMod || (post.selfPost && topicPrivileges['posts:delete']);
|
||||
post.display_moderator_tools = post.display_edit_tools || post.display_delete_tools;
|
||||
|
||||
Reference in New Issue
Block a user