Merge pull request #17830 from overleaf/rh-reduce-staff-access-session

[web] Reduce size of staffAccess field in session

GitOrigin-RevId: 7745dc595e8096caef04fd140b47532f0775f165
This commit is contained in:
roo hutton
2024-04-12 08:06:35 +00:00
committed by Copybot
parent f5ac5b0ed3
commit 754609f379
2 changed files with 100 additions and 2 deletions
@@ -50,6 +50,20 @@ function checkCredentials(userDetailsMap, user, password) {
return isValid
}
function reduceStaffAccess(staffAccess) {
const reducedStaffAccess = {}
for (const field in staffAccess) {
if (staffAccess[field]) {
reducedStaffAccess[field] = true
}
}
return reducedStaffAccess
}
function userHasStaffAccess(user) {
return user.staffAccess && Object.values(user.staffAccess).includes(true)
}
const AuthenticationController = {
serializeUser(user, callback) {
if (!user._id || !user.email) {
@@ -61,8 +75,6 @@ const AuthenticationController = {
_id: user._id,
first_name: user.first_name,
last_name: user.last_name,
isAdmin: user.isAdmin,
staffAccess: user.staffAccess,
email: user.email,
referal_id: user.referal_id,
session_created: new Date().toISOString(),
@@ -73,6 +85,13 @@ const AuthenticationController = {
alphaProgram: user.alphaProgram || undefined, // only store if set
betaProgram: user.betaProgram || undefined, // only store if set
}
if (user.isAdmin) {
lightUser.isAdmin = true
}
if (userHasStaffAccess(user)) {
lightUser.staffAccess = reduceStaffAccess(user.staffAccess)
}
callback(null, lightUser)
},