2023-09-22 15:53:23 +02:00
|
|
|
import { Component, OnInit } from '@angular/core';
|
feat: console flat navigation, settings (#3581)
* instance routing
* instance naming
* org list
* rm isonsystem
* breadcrumb type
* routing
* instance members
* fragment refresh org
* settings pages
* settings list, sidenav grouping, i18n
* org-settings, policy changes
* lint
* grid
* rename grid
* fallback to general
* cleanup
* general settings, remove cards
* sidenav for settings, label policy
* i18n
* header, nav backbuild
* general, project nav rehaul
* login text background adapt
* org nav anim
* org, instance settings, fix policy layout, roles
* i18n, active route for project
* lint
2022-05-09 15:01:36 +02:00
|
|
|
import { ActivatedRoute, Params } from '@angular/router';
|
2023-09-22 15:53:23 +02:00
|
|
|
import { forkJoin, of, take } from 'rxjs';
|
feat: console flat navigation, settings (#3581)
* instance routing
* instance naming
* org list
* rm isonsystem
* breadcrumb type
* routing
* instance members
* fragment refresh org
* settings pages
* settings list, sidenav grouping, i18n
* org-settings, policy changes
* lint
* grid
* rename grid
* fallback to general
* cleanup
* general settings, remove cards
* sidenav for settings, label policy
* i18n
* header, nav backbuild
* general, project nav rehaul
* login text background adapt
* org nav anim
* org, instance settings, fix policy layout, roles
* i18n, active route for project
* lint
2022-05-09 15:01:36 +02:00
|
|
|
import { PolicyComponentServiceType } from 'src/app/modules/policies/policy-component-types.enum';
|
|
|
|
import { SidenavSetting } from 'src/app/modules/sidenav/sidenav.component';
|
|
|
|
import { Breadcrumb, BreadcrumbService, BreadcrumbType } from 'src/app/services/breadcrumb.service';
|
|
|
|
|
2023-09-22 15:53:23 +02:00
|
|
|
import { GrpcAuthService } from 'src/app/services/grpc-auth.service';
|
feat: console flat navigation, settings (#3581)
* instance routing
* instance naming
* org list
* rm isonsystem
* breadcrumb type
* routing
* instance members
* fragment refresh org
* settings pages
* settings list, sidenav grouping, i18n
* org-settings, policy changes
* lint
* grid
* rename grid
* fallback to general
* cleanup
* general settings, remove cards
* sidenav for settings, label policy
* i18n
* header, nav backbuild
* general, project nav rehaul
* login text background adapt
* org nav anim
* org, instance settings, fix policy layout, roles
* i18n, active route for project
* lint
2022-05-09 15:01:36 +02:00
|
|
|
import {
|
2022-09-19 13:35:52 +02:00
|
|
|
BRANDING,
|
|
|
|
COMPLEXITY,
|
|
|
|
DOMAIN,
|
|
|
|
IDP,
|
|
|
|
LOCKOUT,
|
|
|
|
LOGIN,
|
|
|
|
LOGINTEXTS,
|
|
|
|
MESSAGETEXTS,
|
2023-02-24 16:44:44 +01:00
|
|
|
NOTIFICATION_POLICY,
|
2022-09-19 13:35:52 +02:00
|
|
|
PRIVACYPOLICY,
|
feat: console flat navigation, settings (#3581)
* instance routing
* instance naming
* org list
* rm isonsystem
* breadcrumb type
* routing
* instance members
* fragment refresh org
* settings pages
* settings list, sidenav grouping, i18n
* org-settings, policy changes
* lint
* grid
* rename grid
* fallback to general
* cleanup
* general settings, remove cards
* sidenav for settings, label policy
* i18n
* header, nav backbuild
* general, project nav rehaul
* login text background adapt
* org nav anim
* org, instance settings, fix policy layout, roles
* i18n, active route for project
* lint
2022-05-09 15:01:36 +02:00
|
|
|
} from '../../modules/settings-list/settings';
|
|
|
|
|
|
|
|
@Component({
|
|
|
|
selector: 'cnsl-org-settings',
|
|
|
|
templateUrl: './org-settings.component.html',
|
|
|
|
styleUrls: ['./org-settings.component.scss'],
|
|
|
|
})
|
2023-09-22 15:53:23 +02:00
|
|
|
export class OrgSettingsComponent implements OnInit {
|
feat: console flat navigation, settings (#3581)
* instance routing
* instance naming
* org list
* rm isonsystem
* breadcrumb type
* routing
* instance members
* fragment refresh org
* settings pages
* settings list, sidenav grouping, i18n
* org-settings, policy changes
* lint
* grid
* rename grid
* fallback to general
* cleanup
* general settings, remove cards
* sidenav for settings, label policy
* i18n
* header, nav backbuild
* general, project nav rehaul
* login text background adapt
* org nav anim
* org, instance settings, fix policy layout, roles
* i18n, active route for project
* lint
2022-05-09 15:01:36 +02:00
|
|
|
public id: string = '';
|
|
|
|
public PolicyComponentServiceType: any = PolicyComponentServiceType;
|
2023-09-22 15:53:23 +02:00
|
|
|
|
|
|
|
private defaultSettingsList: SidenavSetting[] = [
|
feat: console flat navigation, settings (#3581)
* instance routing
* instance naming
* org list
* rm isonsystem
* breadcrumb type
* routing
* instance members
* fragment refresh org
* settings pages
* settings list, sidenav grouping, i18n
* org-settings, policy changes
* lint
* grid
* rename grid
* fallback to general
* cleanup
* general settings, remove cards
* sidenav for settings, label policy
* i18n
* header, nav backbuild
* general, project nav rehaul
* login text background adapt
* org nav anim
* org, instance settings, fix policy layout, roles
* i18n, active route for project
* lint
2022-05-09 15:01:36 +02:00
|
|
|
LOGIN,
|
2022-05-31 09:08:47 +02:00
|
|
|
IDP,
|
feat: console flat navigation, settings (#3581)
* instance routing
* instance naming
* org list
* rm isonsystem
* breadcrumb type
* routing
* instance members
* fragment refresh org
* settings pages
* settings list, sidenav grouping, i18n
* org-settings, policy changes
* lint
* grid
* rename grid
* fallback to general
* cleanup
* general settings, remove cards
* sidenav for settings, label policy
* i18n
* header, nav backbuild
* general, project nav rehaul
* login text background adapt
* org nav anim
* org, instance settings, fix policy layout, roles
* i18n, active route for project
* lint
2022-05-09 15:01:36 +02:00
|
|
|
COMPLEXITY,
|
|
|
|
LOCKOUT,
|
2023-01-25 09:49:41 +01:00
|
|
|
NOTIFICATION_POLICY,
|
2022-05-17 16:18:37 +02:00
|
|
|
DOMAIN,
|
feat: console flat navigation, settings (#3581)
* instance routing
* instance naming
* org list
* rm isonsystem
* breadcrumb type
* routing
* instance members
* fragment refresh org
* settings pages
* settings list, sidenav grouping, i18n
* org-settings, policy changes
* lint
* grid
* rename grid
* fallback to general
* cleanup
* general settings, remove cards
* sidenav for settings, label policy
* i18n
* header, nav backbuild
* general, project nav rehaul
* login text background adapt
* org nav anim
* org, instance settings, fix policy layout, roles
* i18n, active route for project
* lint
2022-05-09 15:01:36 +02:00
|
|
|
BRANDING,
|
|
|
|
MESSAGETEXTS,
|
|
|
|
LOGINTEXTS,
|
|
|
|
PRIVACYPOLICY,
|
|
|
|
];
|
|
|
|
|
2023-09-22 15:53:23 +02:00
|
|
|
public settingsList: SidenavSetting[] = [];
|
|
|
|
|
2023-09-28 14:59:58 +02:00
|
|
|
constructor(
|
|
|
|
breadcrumbService: BreadcrumbService,
|
|
|
|
activatedRoute: ActivatedRoute,
|
|
|
|
public authService: GrpcAuthService,
|
|
|
|
) {
|
feat: console flat navigation, settings (#3581)
* instance routing
* instance naming
* org list
* rm isonsystem
* breadcrumb type
* routing
* instance members
* fragment refresh org
* settings pages
* settings list, sidenav grouping, i18n
* org-settings, policy changes
* lint
* grid
* rename grid
* fallback to general
* cleanup
* general settings, remove cards
* sidenav for settings, label policy
* i18n
* header, nav backbuild
* general, project nav rehaul
* login text background adapt
* org nav anim
* org, instance settings, fix policy layout, roles
* i18n, active route for project
* lint
2022-05-09 15:01:36 +02:00
|
|
|
const breadcrumbs = [
|
|
|
|
new Breadcrumb({
|
|
|
|
type: BreadcrumbType.ORG,
|
|
|
|
routerLink: ['/org'],
|
|
|
|
}),
|
|
|
|
];
|
|
|
|
breadcrumbService.setBreadcrumb(breadcrumbs);
|
|
|
|
|
|
|
|
activatedRoute.queryParams.pipe(take(1)).subscribe((params: Params) => {
|
|
|
|
const { id } = params;
|
|
|
|
if (id) {
|
|
|
|
this.id = id;
|
|
|
|
}
|
|
|
|
});
|
|
|
|
}
|
2023-09-22 15:53:23 +02:00
|
|
|
|
|
|
|
ngOnInit(): void {
|
|
|
|
checkSettingsPermissions(this.defaultSettingsList, PolicyComponentServiceType.MGMT, this.authService).subscribe(
|
|
|
|
(allowed) => {
|
|
|
|
this.settingsList = this.defaultSettingsList.filter((setting, index) => {
|
|
|
|
return allowed[index];
|
|
|
|
});
|
|
|
|
},
|
|
|
|
);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
// Return a Observables<boolean>[] that will wait till all service calls are finished to then check if user is allowed to see a setting
|
|
|
|
export function checkSettingsPermissions(settings: SidenavSetting[], serviceType: string, authService: GrpcAuthService) {
|
|
|
|
return forkJoin(
|
|
|
|
settings
|
|
|
|
.filter((setting) => {
|
|
|
|
if (serviceType === PolicyComponentServiceType.ADMIN) {
|
|
|
|
return setting.requiredRoles && setting.requiredRoles.admin;
|
|
|
|
} else {
|
|
|
|
return setting.requiredRoles && setting.requiredRoles.mgmt;
|
|
|
|
}
|
|
|
|
})
|
|
|
|
.map((setting) => {
|
|
|
|
if (!setting.requiredRoles) {
|
|
|
|
return of(true);
|
|
|
|
}
|
|
|
|
|
|
|
|
if (!setting.requiredRoles.mgmt) {
|
|
|
|
return of(true);
|
|
|
|
}
|
|
|
|
|
|
|
|
if (setting.requiredRoles.mgmt) {
|
|
|
|
return authService.isAllowed(setting.requiredRoles.mgmt).pipe(take(1));
|
|
|
|
}
|
|
|
|
return of(false);
|
|
|
|
}),
|
|
|
|
);
|
feat: console flat navigation, settings (#3581)
* instance routing
* instance naming
* org list
* rm isonsystem
* breadcrumb type
* routing
* instance members
* fragment refresh org
* settings pages
* settings list, sidenav grouping, i18n
* org-settings, policy changes
* lint
* grid
* rename grid
* fallback to general
* cleanup
* general settings, remove cards
* sidenav for settings, label policy
* i18n
* header, nav backbuild
* general, project nav rehaul
* login text background adapt
* org nav anim
* org, instance settings, fix policy layout, roles
* i18n, active route for project
* lint
2022-05-09 15:01:36 +02:00
|
|
|
}
|