feat: add topicOwnerPost #8778

v1.18.x
Barış Soner Uşaklı 4 years ago
parent 6a819944d5
commit c037779fa1

@ -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;

Loading…
Cancel
Save