-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathelements-view.service.ts
More file actions
35 lines (31 loc) · 1.51 KB
/
elements-view.service.ts
File metadata and controls
35 lines (31 loc) · 1.51 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import { LocalStorageService } from "src/app/services/local-storage.service";
import { inject, Injectable } from "@angular/core";
import { DatasetPermissionsFragment } from "../api/kamu.graphql.interface";
import { LoggedUserService } from "../auth/logged-user.service";
import { DatasetPermissionsService } from "../dataset-view/dataset.permissions.service";
@Injectable({
providedIn: "root",
})
export class ElementsViewService {
private loggedUserService = inject(LoggedUserService);
private datasetPermissionsService = inject(DatasetPermissionsService);
private localStorageService = inject(LocalStorageService);
private get isAdminPrivelegesOn(): boolean {
return this.loggedUserService.isAdmin && (this.localStorageService.adminPriveleges ?? false);
}
public executeAction(action: EnumViewActions, datasetPermissions: DatasetPermissionsFragment | null): boolean {
if (action === EnumViewActions.SHOW_FLOWS_TAB_ACTION && datasetPermissions) {
return this.isAdminPrivelegesOn || this.datasetPermissionsService.shouldAllowFlowsTab(datasetPermissions);
}
if (action === EnumViewActions.SHOW_SETTINGS_TAB_ACTION && datasetPermissions) {
return (
this.isAdminPrivelegesOn || this.datasetPermissionsService.shouldAllowSettingsTab(datasetPermissions)
);
}
return false;
}
}
export enum EnumViewActions {
SHOW_FLOWS_TAB_ACTION = "showFlowsTabAction",
SHOW_SETTINGS_TAB_ACTION = "showSettingsTabAction",
}