From fedfce7bcef9dd611df6ef732f36c26355354cc9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Fri, 14 Jun 2024 11:06:30 -0400 Subject: [PATCH] perf: cache isAdmin, isGlobalMod checks --- src/controllers/accounts/helpers.js | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/controllers/accounts/helpers.js b/src/controllers/accounts/helpers.js index d6d4ee54b8..a504adb43e 100644 --- a/src/controllers/accounts/helpers.js +++ b/src/controllers/accounts/helpers.js @@ -139,12 +139,18 @@ function escape(value) { } async function getAllData(uid, callerUID) { + // loading these before caches them, so the big promiseParallel doesn't make extra db calls + const [[isTargetAdmin, isCallerAdmin], isGlobalModerator] = await Promise.all([ + user.isAdministrator([uid, callerUID]), + user.isGlobalModerator(callerUID), + ]); + return await utils.promiseParallel({ userData: user.getUserData(uid), - isTargetAdmin: user.isAdministrator(uid), + isTargetAdmin: isTargetAdmin, userSettings: user.getSettings(uid), - isAdmin: user.isAdministrator(callerUID), - isGlobalModerator: user.isGlobalModerator(callerUID), + isAdmin: isCallerAdmin, + isGlobalModerator: isGlobalModerator, isModerator: user.isModeratorOfAnyCategory(callerUID), isFollowing: user.isFollowing(callerUID, uid), ips: user.getIPs(uid, 4),