Files
overleaf-cep/services/web/app/src/Features/UserMembership/UserMembershipAuthorization.js
Andrew Rumble 447efbd5b1 Combine implementations of hasAdminCapability
GitOrigin-RevId: a847c9182c018524c96726fe30e501763904b82e
2025-08-13 08:06:58 +00:00

35 lines
858 B
JavaScript

const { hasAdminCapability } = require('../Helpers/AdminAuthorizationHelper')
const UserMembershipAuthorization = {
hasStaffAccess(requiredStaffAccess) {
return req => {
if (!req.user) {
return false
}
return (
requiredStaffAccess &&
req.user.staffAccess &&
req.user.staffAccess[requiredStaffAccess]
)
}
},
hasAdminCapability,
hasEntityAccess() {
return req => {
if (!req.entity) {
return false
}
const fieldAccess = req.entity[req.entityConfig.fields.access]
const fieldAccessArray = Array.isArray(fieldAccess)
? fieldAccess
: [fieldAccess.toString()]
return fieldAccessArray.some(
accessUserId => accessUserId.toString() === req.user._id.toString()
)
}
},
}
module.exports = UserMembershipAuthorization