Sha256: bcde1ef7420de03b61e3bf913d7617aae50f140d10f78f28258124bf76af2943
Contents?: true
Size: 1.04 KB
Versions: 26
Compression:
Stored size: 1.04 KB
Contents
export const hostIsNotRegistered = ({ hostDetails }) => { const { subscription_facet_attributes: subscriptionFacetAttributes, } = hostDetails; return !subscriptionFacetAttributes?.uuid; }; export const hostIsRegistered = ({ hostDetails }) => !hostIsNotRegistered({ hostDetails }); export const userPermissionsFromHostDetails = ({ hostDetails }) => { const { permissions: hostPermissions, content_facet_attributes: cfAttributes = {}, } = hostDetails; return { ...hostPermissions, ...cfAttributes?.permissions }; }; // requiredPermissions is an array // userPermissions is an object, e.g. { view_hosts: true } export const hasRequiredPermissions = (requiredPermissions = [], userPermissions = {}) => { const permittedActions = Object.keys(userPermissions).filter(key => userPermissions[key]); return requiredPermissions.every(permission => permittedActions.includes(permission)); }; export const missingRequiredPermissions = (requiredPermissions = [], userPermissions) => !hasRequiredPermissions(requiredPermissions, userPermissions);
Version data entries
26 entries across 26 versions & 1 rubygems