From de0176ef8a4fdb68c0f52272cdf938516a4685be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Mon, 15 Apr 2024 12:10:36 -0400 Subject: [PATCH] fix: uniqCids --- src/socket.io/posts/votes.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/socket.io/posts/votes.js b/src/socket.io/posts/votes.js index 3e1be2b5e3..968da304c3 100644 --- a/src/socket.io/posts/votes.js +++ b/src/socket.io/posts/votes.js @@ -81,16 +81,17 @@ module.exports = function (SocketPosts) { if (!isArray) { cids = [cids]; } + const uniqCids = _.uniq(cids); const [canRead, isAdmin, isMod] = await Promise.all([ privileges.categories.isUserAllowedTo( - 'topics:read', _.uniq(cids), uid + 'topics:read', uniqCids, uid ), privileges.users.isAdministrator(uid), privileges.users.isModerator(uid, cids), ]); - + const cidToAllowed = _.zip(uniqCids, canRead); const checks = cids.map( - (cid, index) => isAdmin || isMod[index] || (canRead[index] && !!meta.config.votesArePublic) + (cid, index) => isAdmin || isMod[index] || (cidToAllowed[index] && !!meta.config.votesArePublic) ); return isArray ? checks : checks[0]; }