UserMembershipAuthorization.mjs 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. import AdminAuthorizationHelper from '../Helpers/AdminAuthorizationHelper.mjs'
  2. import SessionManager from '../Authentication/SessionManager.mjs'
  3. const UserMembershipAuthorization = {
  4. hasAdminCapability: AdminAuthorizationHelper.hasAdminCapability,
  5. hasAdminAccess(req) {
  6. return AdminAuthorizationHelper.hasAdminAccess(
  7. SessionManager.getSessionUser(req.session)
  8. )
  9. },
  10. hasModifyGroupMemberCapability(req, res) {
  11. return AdminAuthorizationHelper.hasAdminCapability(
  12. req.entity.managedUsersEnabled
  13. ? 'modify-managed-group-member'
  14. : 'modify-group-member',
  15. true
  16. )(req, res)
  17. },
  18. hasEntityAccess() {
  19. return req => {
  20. if (!req.entity) {
  21. return false
  22. }
  23. const fieldAccess = req.entity[req.entityConfig.fields.access]
  24. const fieldAccessArray = Array.isArray(fieldAccess)
  25. ? fieldAccess
  26. : [fieldAccess.toString()]
  27. return fieldAccessArray.some(
  28. accessUserId => accessUserId.toString() === req.user._id.toString()
  29. )
  30. }
  31. },
  32. }
  33. export default UserMembershipAuthorization