@c8y/ngx-components
Version:
Angular modules for Cumulocity IoT applications
40 lines • 5.15 kB
JavaScript
import { Injectable } from '@angular/core';
import { AppStateService, gettext, NavigatorNode, Permissions } from '@c8y/ngx-components';
import { EcosystemService } from '@c8y/ngx-components/ecosystem/shared';
import { COCKPIT_CONFIG_PATH } from './cockpit-config.model';
import * as i0 from "@angular/core";
import * as i1 from "@c8y/ngx-components";
import * as i2 from "@c8y/ngx-components/ecosystem/shared";
export class CockpitConfigGuard {
constructor(permissions, appState, ecosystemService) {
this.permissions = permissions;
this.appState = appState;
this.ecosystemService = ecosystemService;
this.configNode = new NavigatorNode({
path: `/${COCKPIT_CONFIG_PATH}`,
parent: gettext('Configuration'),
label: gettext('Application configuration'),
icon: 'imac-settings',
preventDuplicates: true
});
}
get() {
if (this.canActivate()) {
return this.configNode;
}
return;
}
canActivate() {
return (this.permissions.hasRole(Permissions.ROLE_APPLICATION_MANAGEMENT_ADMIN) &&
this.ecosystemService.isOwner(this.appState.currentApplication.value));
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CockpitConfigGuard, deps: [{ token: i1.Permissions }, { token: i1.AppStateService }, { token: i2.EcosystemService }], target: i0.ɵɵFactoryTarget.Injectable }); }
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CockpitConfigGuard, providedIn: 'root' }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CockpitConfigGuard, decorators: [{
type: Injectable,
args: [{
providedIn: 'root'
}]
}], ctorParameters: () => [{ type: i1.Permissions }, { type: i1.AppStateService }, { type: i2.EcosystemService }] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ja3BpdC1jb25maWcuZ3VhcmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9jb2NrcGl0LWNvbmZpZy9jb2NrcGl0LWNvbmZpZy5ndWFyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFDTCxlQUFlLEVBQ2YsT0FBTyxFQUNQLGFBQWEsRUFFYixXQUFXLEVBQ1osTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN4RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7OztBQUs3RCxNQUFNLE9BQU8sa0JBQWtCO0lBUzdCLFlBQ1UsV0FBd0IsRUFDeEIsUUFBeUIsRUFDekIsZ0JBQWtDO1FBRmxDLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLGFBQVEsR0FBUixRQUFRLENBQWlCO1FBQ3pCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFYekIsZUFBVSxHQUFrQixJQUFJLGFBQWEsQ0FBQztZQUMvRCxJQUFJLEVBQUUsSUFBSSxtQkFBbUIsRUFBRTtZQUMvQixNQUFNLEVBQUUsT0FBTyxDQUFDLGVBQWUsQ0FBQztZQUNoQyxLQUFLLEVBQUUsT0FBTyxDQUFDLDJCQUEyQixDQUFDO1lBQzNDLElBQUksRUFBRSxlQUFlO1lBQ3JCLGlCQUFpQixFQUFFLElBQUk7U0FDeEIsQ0FBQyxDQUFDO0lBTUEsQ0FBQztJQUVKLEdBQUc7UUFDRCxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDO1lBQ3ZCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztRQUN6QixDQUFDO1FBQ0QsT0FBTztJQUNULENBQUM7SUFFRCxXQUFXO1FBQ1QsT0FBTyxDQUNMLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxpQ0FBaUMsQ0FBQztZQUN2RSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQ3RFLENBQUM7SUFDSixDQUFDOytHQTNCVSxrQkFBa0I7bUhBQWxCLGtCQUFrQixjQUZqQixNQUFNOzs0RkFFUCxrQkFBa0I7a0JBSDlCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge1xuICBBcHBTdGF0ZVNlcnZpY2UsXG4gIGdldHRleHQsXG4gIE5hdmlnYXRvck5vZGUsXG4gIE5hdmlnYXRvck5vZGVGYWN0b3J5LFxuICBQZXJtaXNzaW9uc1xufSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB7IEVjb3N5c3RlbVNlcnZpY2UgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzL2Vjb3N5c3RlbS9zaGFyZWQnO1xuaW1wb3J0IHsgQ09DS1BJVF9DT05GSUdfUEFUSCB9IGZyb20gJy4vY29ja3BpdC1jb25maWcubW9kZWwnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBDb2NrcGl0Q29uZmlnR3VhcmQgaW1wbGVtZW50cyBOYXZpZ2F0b3JOb2RlRmFjdG9yeSB7XG4gIHByb3RlY3RlZCByZWFkb25seSBjb25maWdOb2RlOiBOYXZpZ2F0b3JOb2RlID0gbmV3IE5hdmlnYXRvck5vZGUoe1xuICAgIHBhdGg6IGAvJHtDT0NLUElUX0NPTkZJR19QQVRIfWAsXG4gICAgcGFyZW50OiBnZXR0ZXh0KCdDb25maWd1cmF0aW9uJyksXG4gICAgbGFiZWw6IGdldHRleHQoJ0FwcGxpY2F0aW9uIGNvbmZpZ3VyYXRpb24nKSxcbiAgICBpY29uOiAnaW1hYy1zZXR0aW5ncycsXG4gICAgcHJldmVudER1cGxpY2F0ZXM6IHRydWVcbiAgfSk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBwZXJtaXNzaW9uczogUGVybWlzc2lvbnMsXG4gICAgcHJpdmF0ZSBhcHBTdGF0ZTogQXBwU3RhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgZWNvc3lzdGVtU2VydmljZTogRWNvc3lzdGVtU2VydmljZVxuICApIHt9XG5cbiAgZ2V0KCk6IE5hdmlnYXRvck5vZGUge1xuICAgIGlmICh0aGlzLmNhbkFjdGl2YXRlKCkpIHtcbiAgICAgIHJldHVybiB0aGlzLmNvbmZpZ05vZGU7XG4gICAgfVxuICAgIHJldHVybjtcbiAgfVxuXG4gIGNhbkFjdGl2YXRlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLnBlcm1pc3Npb25zLmhhc1JvbGUoUGVybWlzc2lvbnMuUk9MRV9BUFBMSUNBVElPTl9NQU5BR0VNRU5UX0FETUlOKSAmJlxuICAgICAgdGhpcy5lY29zeXN0ZW1TZXJ2aWNlLmlzT3duZXIodGhpcy5hcHBTdGF0ZS5jdXJyZW50QXBwbGljYXRpb24udmFsdWUpXG4gICAgKTtcbiAgfVxufVxuIl19