|
|
@ -1,20 +1,8 @@ |
|
|
const { getAppId, setCookie, getCookie, Cookies } = require("@budibase/auth") |
|
|
const { getAppId, setCookie, getCookie, Cookies } = require("@budibase/auth") |
|
|
|
|
|
const { getRole } = require("../utilities/security/roles") |
|
|
const { getGlobalUsers } = require("../utilities/workerRequests") |
|
|
const { getGlobalUsers } = require("../utilities/workerRequests") |
|
|
const { BUILTIN_ROLE_IDS } = require("../utilities/security/roles") |
|
|
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) => { |
|
|
module.exports = async (ctx, next) => { |
|
|
// try to get the appID from the request
|
|
|
// try to get the appID from the request
|
|
|
const requestAppId = getAppId(ctx) |
|
|
const requestAppId = getAppId(ctx) |
|
|
@ -44,9 +32,18 @@ module.exports = async (ctx, next) => { |
|
|
appId = appCookie.appId |
|
|
appId = appCookie.appId |
|
|
roleId = appCookie.roleId || BUILTIN_ROLE_IDS.PUBLIC |
|
|
roleId = appCookie.roleId || BUILTIN_ROLE_IDS.PUBLIC |
|
|
} |
|
|
} |
|
|
return finish(ctx, next, { |
|
|
if (appId) { |
|
|
appId: appId, |
|
|
ctx.appId = appId |
|
|
roleId: roleId, |
|
|
if (roleId) { |
|
|
cookie: updateCookie, |
|
|
ctx.roleId = roleId |
|
|
}) |
|
|
ctx.user = { |
|
|
|
|
|
...ctx.user, |
|
|
|
|
|
role: await getRole(appId, roleId), |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
if (updateCookie && appId) { |
|
|
|
|
|
setCookie(ctx, { appId, roleId }, Cookies.CurrentApp) |
|
|
|
|
|
} |
|
|
|
|
|
return next() |
|
|
} |
|
|
} |
|
|
|