@wepublish/api
Version:
API core for we.publish.
27 lines • 1.27 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.hasPermission = void 0;
const permissions_1 = require("./permissions");
function hasPermission(neededPermissions, userRoles) {
const perms = Array.isArray(neededPermissions) ? neededPermissions : [neededPermissions];
const hasPerms = perms.map(perm => {
if (perm.deprecated) {
console.warn('Permission is deprecated', perm);
}
const userPermissions = userRoles.reduce((permissions, role) => {
switch (role.id) {
case 'admin':
return [...permissions, ...permissions_1.AllPermissions.map(permission => permission.id)];
case 'editor':
return [...permissions, ...permissions_1.EditorPermissions.map(permission => permission.id)];
case 'peer':
return [...permissions, ...permissions_1.PeerPermissions.map(permission => permission.id)];
}
return [...permissions, ...role.permissionIDs];
}, []);
return userPermissions.some(permission => permission === perm.id);
});
return hasPerms.every(Boolean);
}
exports.hasPermission = hasPermission;
//# sourceMappingURL=has-permission.js.map