From 02c9f69143daabda785609edf88011d4cdeaac04 Mon Sep 17 00:00:00 2001 From: mike12345567 Date: Tue, 13 Apr 2021 14:35:00 +0100 Subject: [PATCH] Updating current app to set up role in middleware. --- packages/server/src/middleware/currentapp.js | 33 +++++++++----------- 1 file changed, 15 insertions(+), 18 deletions(-) diff --git a/packages/server/src/middleware/currentapp.js b/packages/server/src/middleware/currentapp.js index de614f3dce..63470b9e27 100644 --- a/packages/server/src/middleware/currentapp.js +++ b/packages/server/src/middleware/currentapp.js @@ -1,20 +1,8 @@ const { getAppId, setCookie, getCookie, Cookies } = require("@budibase/auth") +const { getRole } = require("../utilities/security/roles") const { getGlobalUsers } = require("../utilities/workerRequests") const { BUILTIN_ROLE_IDS } = require("../utilities/security/roles") -function finish(ctx, next, { appId, roleId, cookie = false }) { - if (appId) { - ctx.appId = appId - } - if (roleId) { - ctx.roleId = roleId - } - if (cookie && appId) { - setCookie(ctx, { appId, roleId }, Cookies.CurrentApp) - } - return next() -} - module.exports = async (ctx, next) => { // try to get the appID from the request const requestAppId = getAppId(ctx) @@ -44,9 +32,18 @@ module.exports = async (ctx, next) => { appId = appCookie.appId roleId = appCookie.roleId || BUILTIN_ROLE_IDS.PUBLIC } - return finish(ctx, next, { - appId: appId, - roleId: roleId, - cookie: updateCookie, - }) + if (appId) { + ctx.appId = appId + if (roleId) { + ctx.roleId = roleId + ctx.user = { + ...ctx.user, + role: await getRole(appId, roleId), + } + } + } + if (updateCookie && appId) { + setCookie(ctx, { appId, roleId }, Cookies.CurrentApp) + } + return next() }