{ "version": 3, "sources": ["src/app/shared/auth-guards/permission.auth-guard.ts"], "sourcesContent": ["import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';\nimport { FeatureFlags, Permission } from '../enums/generated.enums';\nimport { ModuleType, PageType, SubPageType } from '../enums/page-type.enum';\nimport { AuthService } from '../services/auth.service';\nimport { NavigationService } from '../services/navigation.service';\n\n@Injectable({ providedIn: 'root' })\nexport class PermissionAuthGuard {\n constructor(\n private authService: AuthService,\n private navigationService: NavigationService\n ) {}\n\n async canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Promise {\n this.navigationService.setCurrentRoute(route);\n\n let canActivate = false;\n const module = this.navigationService.currentModule;\n const page = this.navigationService.currentPage;\n const subPage = this.navigationService.currentSubPage;\n\n const permission = this.getPermissions(module, page, subPage);\n const featureFlag = this.getFeatureFlags(subPage);\n for (const perm of permission) {\n if (this.authService.hasPermission(perm)) {\n return true;\n }\n }\n if (featureFlag) {\n canActivate = this.authService.hasFeatureFlag(featureFlag);\n }\n\n if (!canActivate) {\n await this.navigationService.navigateToNotFound(true);\n }\n return canActivate;\n }\n\n private getFeatureFlags(subPageType: SubPageType): FeatureFlags {\n switch (subPageType) {\n case SubPageType.DumpViewer:\n return FeatureFlags.DumpViewer;\n case SubPageType.BusinessProcessesSettings:\n case SubPageType.SavingsSettings:\n case SubPageType.GroupsSettings:\n case SubPageType.BenchmarkingSettings:\n return FeatureFlags.BenchmarkingSettings;\n default:\n return null;\n }\n }\n\n private getPermissions(module: ModuleType, page: PageType, subPage?: SubPageType): Permission[] {\n switch (module) {\n case ModuleType.Monitoring:\n return [Permission.Monitoring];\n case ModuleType.Orchestration:\n return page === PageType.Simulator ? [Permission.Simulator] : [Permission.Orchestration];\n case ModuleType.Analytics:\n return page === PageType.RuntimeAnalysis ? [Permission.RuntimeAnalysis] : [Permission.Analytics];\n case ModuleType.Reporting:\n switch (page) {\n case PageType.ProcessReporting:\n return [Permission.ProcessReporting];\n case PageType.ExecutiveOverview:\n return [Permission.Reporting];\n case PageType.BenchmarkOverview:\n return [Permission.Benchmarking];\n default:\n return [Permission.Reporting];\n }\n case ModuleType.Settings: {\n switch (subPage) {\n case SubPageType.OrchestrationSettings:\n return [Permission.Orchestration];\n case SubPageType.PendingSessions:\n return [Permission.Orchestration];\n case SubPageType.Simulator:\n return [Permission.Simulator];\n case SubPageType.BillingGroupsSettings:\n return [Permission.Reporting];\n case SubPageType.BusinessProcessesSettings:\n case SubPageType.SavingsSettings:\n case SubPageType.GroupsSettings:\n return [Permission.Benchmarking, Permission.Reporting, Permission.Analytics];\n default:\n return [Permission.OrganizationSettings];\n }\n }\n case ModuleType.Admin:\n return [Permission.SystemAdmin];\n default:\n return null;\n }\n }\n}\n"], "mappings": "+IAQA,IAAaA,GAAmB,IAAA,CAA1B,IAAOA,EAAP,MAAOA,CAAmB,CAC9BC,YACUC,EACAC,EAAoC,CADpC,KAAAD,YAAAA,EACA,KAAAC,kBAAAA,CACP,CAEGC,YAAYC,EAA+BC,EAA0B,QAAAC,EAAA,sBACzE,KAAKJ,kBAAkBK,gBAAgBH,CAAK,EAE5C,IAAID,EAAc,GACZK,EAAS,KAAKN,kBAAkBO,cAChCC,EAAO,KAAKR,kBAAkBS,YAC9BC,EAAU,KAAKV,kBAAkBW,eAEjCC,EAAa,KAAKC,eAAeP,EAAQE,EAAME,CAAO,EACtDI,EAAc,KAAKC,gBAAgBL,CAAO,EAChD,QAAWM,KAAQJ,EACjB,GAAI,KAAKb,YAAYkB,cAAcD,CAAI,EACrC,MAAO,GAGX,OAAIF,IACFb,EAAc,KAAKF,YAAYmB,eAAeJ,CAAW,GAGtDb,IACH,MAAM,KAAKD,kBAAkBmB,mBAAmB,EAAI,GAE/ClB,CACT,GAEQc,gBAAgBK,EAAwB,CAC9C,OAAQA,EAAW,CACjB,KAAKC,EAAYC,WACf,OAAOC,EAAaD,WACtB,KAAKD,EAAYG,0BACjB,KAAKH,EAAYI,gBACjB,KAAKJ,EAAYK,eACjB,KAAKL,EAAYM,qBACf,OAAOJ,EAAaI,qBACtB,QACE,OAAO,IACX,CACF,CAEQd,eAAeP,EAAoBE,EAAgBE,EAAqB,CAC9E,OAAQJ,EAAM,CACZ,KAAKsB,EAAWC,WACd,MAAO,CAACC,EAAWD,UAAU,EAC/B,KAAKD,EAAWG,cACd,OAAOvB,IAASwB,EAASC,UAAY,CAACH,EAAWG,SAAS,EAAI,CAACH,EAAWC,aAAa,EACzF,KAAKH,EAAWM,UACd,OAAO1B,IAASwB,EAASG,gBAAkB,CAACL,EAAWK,eAAe,EAAI,CAACL,EAAWI,SAAS,EACjG,KAAKN,EAAWQ,UACd,OAAQ5B,EAAI,CACV,KAAKwB,EAASK,iBACZ,MAAO,CAACP,EAAWO,gBAAgB,EACrC,KAAKL,EAASM,kBACZ,MAAO,CAACR,EAAWM,SAAS,EAC9B,KAAKJ,EAASO,kBACZ,MAAO,CAACT,EAAWU,YAAY,EACjC,QACE,MAAO,CAACV,EAAWM,SAAS,CAChC,CACF,KAAKR,EAAWa,SACd,OAAQ/B,EAAO,CACb,KAAKW,EAAYqB,sBACf,MAAO,CAACZ,EAAWC,aAAa,EAClC,KAAKV,EAAYsB,gBACf,MAAO,CAACb,EAAWC,aAAa,EAClC,KAAKV,EAAYY,UACf,MAAO,CAACH,EAAWG,SAAS,EAC9B,KAAKZ,EAAYuB,sBACf,MAAO,CAACd,EAAWM,SAAS,EAC9B,KAAKf,EAAYG,0BACjB,KAAKH,EAAYI,gBACjB,KAAKJ,EAAYK,eACf,MAAO,CAACI,EAAWU,aAAcV,EAAWM,UAAWN,EAAWI,SAAS,EAC7E,QACE,MAAO,CAACJ,EAAWe,oBAAoB,CAC3C,CAEF,KAAKjB,EAAWkB,MACd,MAAO,CAAChB,EAAWiB,WAAW,EAChC,QACE,OAAO,IACX,CACF,yCAvFWlD,GAAmBmD,EAAAC,CAAA,EAAAD,EAAAE,CAAA,CAAA,CAAA,wBAAnBrD,EAAmBsD,QAAnBtD,EAAmBuD,UAAAC,WADN,MAAM,CAAA,EAC1B,IAAOxD,EAAPyD,SAAOzD,CAAmB,GAAA", "names": ["PermissionAuthGuard", "constructor", "authService", "navigationService", "canActivate", "route", "state", "__async", "setCurrentRoute", "module", "currentModule", "page", "currentPage", "subPage", "currentSubPage", "permission", "getPermissions", "featureFlag", "getFeatureFlags", "perm", "hasPermission", "hasFeatureFlag", "navigateToNotFound", "subPageType", "SubPageType", "DumpViewer", "FeatureFlags", "BusinessProcessesSettings", "SavingsSettings", "GroupsSettings", "BenchmarkingSettings", "ModuleType", "Monitoring", "Permission", "Orchestration", "PageType", "Simulator", "Analytics", "RuntimeAnalysis", "Reporting", "ProcessReporting", "ExecutiveOverview", "BenchmarkOverview", "Benchmarking", "Settings", "OrchestrationSettings", "PendingSessions", "BillingGroupsSettings", "OrganizationSettings", "Admin", "SystemAdmin", "\u0275\u0275inject", "AuthService", "NavigationService", "factory", "\u0275fac", "providedIn", "_PermissionAuthGuard"] }