mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-11-02 20:16:04 +01:00
priv fix
This commit is contained in:
@@ -361,18 +361,21 @@ define('forum/topic', dependencies, function(pagination, infinitescroll, threadT
|
|||||||
}
|
}
|
||||||
|
|
||||||
function onNewPostsLoaded(html, posts) {
|
function onNewPostsLoaded(html, posts) {
|
||||||
function getPostPrivileges(pid) {
|
|
||||||
socket.emit('posts.getPrivileges', pid, function(err, privileges) {
|
var pids = [];
|
||||||
|
for(var i=0; i<posts.length; ++i) {
|
||||||
|
pids.push(posts[i].pid);
|
||||||
|
}
|
||||||
|
|
||||||
|
socket.emit('posts.getPrivileges', pids, function(err, privileges) {
|
||||||
if(err) {
|
if(err) {
|
||||||
return app.alertError(err.message);
|
return app.alertError(err.message);
|
||||||
}
|
}
|
||||||
toggleModTools(html, privileges);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
for (var x = 0, numPosts = posts.length; x < numPosts; x++) {
|
for(i=0; i<pids.length; ++i) {
|
||||||
getPostPrivileges(posts[x].pid);
|
toggleModTools(pids[i], privileges[i]);
|
||||||
}
|
}
|
||||||
|
});
|
||||||
|
|
||||||
processPage(html);
|
processPage(html);
|
||||||
}
|
}
|
||||||
@@ -393,12 +396,14 @@ define('forum/topic', dependencies, function(pagination, infinitescroll, threadT
|
|||||||
showBottomPostBar();
|
showBottomPostBar();
|
||||||
}
|
}
|
||||||
|
|
||||||
function toggleModTools(postHtml, privileges) {
|
function toggleModTools(pid, privileges) {
|
||||||
postHtml.find('.edit, .delete').toggleClass('none', !privileges.editable);
|
var postEl = $('.post-row[data-pid="' + pid + '"]');
|
||||||
postHtml.find('.move').toggleClass('none', !privileges.move);
|
|
||||||
postHtml.find('.reply, .quote').toggleClass('none', !$('.post_reply').length);
|
postEl.find('.edit, .delete').toggleClass('none', !privileges.editable);
|
||||||
var isSelfPost = parseInt(postHtml.attr('data-uid'), 10) === parseInt(app.uid, 10);
|
postEl.find('.move').toggleClass('none', !privileges.move);
|
||||||
postHtml.find('.chat, .flag').toggleClass('none', isSelfPost || !app.uid);
|
postEl.find('.reply, .quote').toggleClass('none', !$('.post_reply').length);
|
||||||
|
var isSelfPost = parseInt(postEl.attr('data-uid'), 10) === parseInt(app.uid, 10);
|
||||||
|
postEl.find('.chat, .flag').toggleClass('none', isSelfPost || !app.uid);
|
||||||
}
|
}
|
||||||
|
|
||||||
function loadMorePosts(direction) {
|
function loadMorePosts(direction) {
|
||||||
|
|||||||
@@ -32,11 +32,6 @@ SocketPosts.reply = function(socket, data, callback) {
|
|||||||
return callback(err);
|
return callback(err);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (postData) {
|
|
||||||
postData.display_moderator_tools = false;
|
|
||||||
postData.display_move_tools = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
var result = {
|
var result = {
|
||||||
posts: [postData],
|
posts: [postData],
|
||||||
privileges: {
|
privileges: {
|
||||||
@@ -248,8 +243,8 @@ SocketPosts.purge = function(socket, data, callback) {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
SocketPosts.getPrivileges = function(socket, pid, callback) {
|
SocketPosts.getPrivileges = function(socket, pids, callback) {
|
||||||
privileges.posts.get([pid], socket.uid, function(err, privileges) {
|
privileges.posts.get(pids, socket.uid, function(err, privileges) {
|
||||||
if (err) {
|
if (err) {
|
||||||
return callback(err);
|
return callback(err);
|
||||||
}
|
}
|
||||||
@@ -257,8 +252,7 @@ SocketPosts.getPrivileges = function(socket, pid, callback) {
|
|||||||
return callback(new Error('[[error:invalid-data]]'));
|
return callback(new Error('[[error:invalid-data]]'));
|
||||||
}
|
}
|
||||||
|
|
||||||
privileges[0].pid = parseInt(pid, 10);
|
callback(null, privileges);
|
||||||
callback(null, privileges[0]);
|
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user