UNPKG

integreat

Version:
30 lines 1.3 kB
import { ensureArray } from '../utils/array.js'; const allowedOrNone = (method) => method === undefined || ['all', 'auth'].includes(method) ? method : 'none'; const massageAccessObject = ({ actions, allow, role, ident, ...accessObject }) => ({ ...accessObject, ...(allow ? { allow: allowedOrNone(allow) } : {}), ...(ident ? { ident: ensureArray(ident) } : {}), ...(role ? { role: ensureArray(role) } : {}), }); function getActionPrefix(action) { const index = action.indexOf('_'); return index >= 0 ? action.slice(0, index) : action; } function ensureAccessObject(access) { if (typeof access === 'string') { return massageAccessObject({ allow: access }); } if (typeof access === 'object' && access !== null) { return Object.keys(access).length > 0 ? massageAccessObject(access) : {}; } return access === undefined ? {} : { allow: 'none' }; } const getActionAccess = (access, actionType) => typeof access?.actions === 'object' && access?.actions != null && typeof actionType === 'string' ? access.actions[getActionPrefix(actionType)] || access : access; export default function accessForAction(access, actionType) { return ensureAccessObject(getActionAccess(access, actionType)); } //# sourceMappingURL=accessForAction.js.map