backport of commit 6acd2921c5d78382b0a554674cd4f7c81a9a126a (#21622)
Co-authored-by: Jordan Reimer <zofskeez@gmail.com>
This commit is contained in:
parent
7e8c0a1cae
commit
a3334cb526
|
@ -97,13 +97,15 @@ export default Service.extend({
|
|||
|
||||
hasNavPermission(navItem, routeParams, requireAll) {
|
||||
if (routeParams) {
|
||||
// viewing the entity and groups pages require the list capability, while the others require the default, which is anything other than deny
|
||||
const capability = routeParams === 'entities' || routeParams === 'groups' ? ['list'] : [null];
|
||||
// check that the user has permission to access all (requireAll = true) or any of the routes when array is passed
|
||||
// useful for hiding nav headings when user does not have access to any of the links
|
||||
const params = Array.isArray(routeParams) ? routeParams : [routeParams];
|
||||
const evalMethod = !Array.isArray(routeParams) || requireAll ? 'every' : 'some';
|
||||
return params[evalMethod]((param) => this.hasPermission(API_PATHS[navItem][param], capability));
|
||||
return params[evalMethod]((param) => {
|
||||
// viewing the entity and groups pages require the list capability, while the others require the default, which is anything other than deny
|
||||
const capability = param === 'entities' || param === 'groups' ? ['list'] : [null];
|
||||
return this.hasPermission(API_PATHS[navItem][param], capability);
|
||||
});
|
||||
}
|
||||
return Object.values(API_PATHS[navItem]).some((path) => this.hasPermission(path));
|
||||
},
|
||||
|
|
Loading…
Reference in New Issue