{ "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 { 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 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 if (Array.isArray(permission)) {\n for (const perm of permission) {\n if (!this.authService.hasPermission(perm)) {\n await this.navigationService.navigateToDefaultPage();\n return false;\n }\n }\n } else if (!this.authService.hasPermission(permission)) {\n await this.navigationService.navigateToDefaultPage();\n return false;\n }\n\n return true;\n }\n\n private getPermissions(module: ModuleType, page: PageType, subPage?: SubPageType): Permission | 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.OrganizationSettings, Permission.Orchestration];\n case SubPageType.PendingSessions:\n return [Permission.OrganizationSettings, Permission.Orchestration];\n case SubPageType.Simulator:\n return [Permission.OrganizationSettings, Permission.Simulator];\n case SubPageType.BillingGroupsSettings:\n return [Permission.OrganizationSettings, Permission.Reporting];\n case SubPageType.BenchmarkingSettings:\n return [Permission.OrganizationSettings, Permission.Benchmarking];\n default:\n return Permission.OrganizationSettings;\n }\n case ModuleType.Admin:\n return Permission.SystemAdmin;\n default:\n return null;\n }\n }\n}\n"], "mappings": "uIAQA,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,IAAMI,EAAS,KAAKN,kBAAkBO,cAChCC,EAAO,KAAKR,kBAAkBS,YAC9BC,EAAU,KAAKV,kBAAkBW,eAEjCC,EAAa,KAAKC,eAAeP,EAAQE,EAAME,CAAO,EAC5D,GAAII,MAAMC,QAAQH,CAAU,GAC1B,QAAWI,KAAQJ,EACjB,GAAI,CAAC,KAAKb,YAAYkB,cAAcD,CAAI,EACtC,aAAM,KAAKhB,kBAAkBkB,sBAAqB,EAC3C,WAGF,CAAC,KAAKnB,YAAYkB,cAAcL,CAAU,EACnD,aAAM,KAAKZ,kBAAkBkB,sBAAqB,EAC3C,GAGT,MAAO,EACT,GAEQL,eAAeP,EAAoBE,EAAgBE,EAAqB,CAC9E,OAAQJ,EAAM,CACZ,KAAKa,EAAWC,WACd,OAAOC,EAAWD,WACpB,KAAKD,EAAWG,cACd,OAAOd,IAASe,EAASC,UAAYH,EAAWG,UAAYH,EAAWC,cACzE,KAAKH,EAAWM,UACd,OAAOjB,IAASe,EAASG,gBAAkBL,EAAWK,gBAAkBL,EAAWI,UACrF,KAAKN,EAAWQ,UACd,OAAQnB,EAAI,CACV,KAAKe,EAASK,iBACZ,OAAOP,EAAWO,iBACpB,KAAKL,EAASM,kBACZ,OAAOR,EAAWM,UACpB,KAAKJ,EAASO,kBACZ,OAAOT,EAAWU,aACpB,QACE,OAAOV,EAAWM,SACtB,CACF,KAAKR,EAAWa,SACd,OAAQtB,EAAO,CACb,KAAKuB,EAAYC,sBACf,MAAO,CAACb,EAAWc,qBAAsBd,EAAWC,aAAa,EACnE,KAAKW,EAAYG,gBACf,MAAO,CAACf,EAAWc,qBAAsBd,EAAWC,aAAa,EACnE,KAAKW,EAAYT,UACf,MAAO,CAACH,EAAWc,qBAAsBd,EAAWG,SAAS,EAC/D,KAAKS,EAAYI,sBACf,MAAO,CAAChB,EAAWc,qBAAsBd,EAAWM,SAAS,EAC/D,KAAKM,EAAYK,qBACf,MAAO,CAACjB,EAAWc,qBAAsBd,EAAWU,YAAY,EAClE,QACE,OAAOV,EAAWc,oBACtB,CACF,KAAKhB,EAAWoB,MACd,OAAOlB,EAAWmB,YACpB,QACE,OAAO,IACX,CACF,yCApEW3C,GAAmB4C,EAAAC,CAAA,EAAAD,EAAAE,CAAA,CAAA,CAAA,wBAAnB9C,EAAmB+C,QAAnB/C,EAAmBgD,UAAAC,WADN,MAAM,CAAA,EAC1B,IAAOjD,EAAPkD,SAAOlD,CAAmB,GAAA", "names": ["PermissionAuthGuard", "constructor", "authService", "navigationService", "canActivate", "route", "state", "__async", "setCurrentRoute", "module", "currentModule", "page", "currentPage", "subPage", "currentSubPage", "permission", "getPermissions", "Array", "isArray", "perm", "hasPermission", "navigateToDefaultPage", "ModuleType", "Monitoring", "Permission", "Orchestration", "PageType", "Simulator", "Analytics", "RuntimeAnalysis", "Reporting", "ProcessReporting", "ExecutiveOverview", "BenchmarkOverview", "Benchmarking", "Settings", "SubPageType", "OrchestrationSettings", "OrganizationSettings", "PendingSessions", "BillingGroupsSettings", "BenchmarkingSettings", "Admin", "SystemAdmin", "\u0275\u0275inject", "AuthService", "NavigationService", "factory", "\u0275fac", "providedIn", "_PermissionAuthGuard"] }