UNPKG

ghost

Version:

The professional publishing platform

38 lines (34 loc) 1.57 kB
// check if the user has an assigned role // so that we can stop writing this everywhere: //_.some(loadedPermissions.user.roles, {name: 'Administrator'}) function checkUserPermissionsForRole(loadedPermissions, roleName) { if (!loadedPermissions?.user?.roles) { return false; } return loadedPermissions.user.roles.some(role => role.name === roleName); } function setIsRoles(loadedPermissions) { // utility function to parse the permissions object and set up all the "is" variables. let resultsObject = { isOwner: false, isAdmin: false, isEditor: false, isAuthor: false, isContributor: false, isSuperEditor: false, isEitherEditor: false }; if (!loadedPermissions?.user?.roles) { return resultsObject; } resultsObject.isOwner = checkUserPermissionsForRole(loadedPermissions, 'Owner'); resultsObject.isAdmin = checkUserPermissionsForRole(loadedPermissions, 'Administrator'); resultsObject.isEditor = checkUserPermissionsForRole(loadedPermissions, 'Editor'); resultsObject.isAuthor = checkUserPermissionsForRole(loadedPermissions, 'Author'); resultsObject.isContributor = checkUserPermissionsForRole(loadedPermissions, 'Contributor'); resultsObject.isSuperEditor = checkUserPermissionsForRole(loadedPermissions, 'Super Editor'); resultsObject.isEitherEditor = resultsObject.isEditor || resultsObject.isSuperEditor; return resultsObject; } exports.setIsRoles = setIsRoles; exports.checkUserPermissionsForRole = checkUserPermissionsForRole;