{ "version": 3, "sources": ["apps/frontend/src/app/guards/guards-employee.service.ts"], "sourcesContent": ["import { Inject, Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate } from '@angular/router';\nimport { isDefined } from '@proman/utils';\nimport { PromanStateService } from '@frontend/shared/services/proman-state.service';\nimport { UserResolver } from '../app-resolvers';\nimport { ToastService } from '@proman/services/toast.service';\nimport { Store } from '@ngrx/store';\nimport { getCurrUser } from '@proman/store/curr-user';\nimport { Router } from '@angular/router';\nimport { CurrUser } from '@proman/interfaces/object-interfaces';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class GuardsEmployeeService implements CanActivate {\n currUser: CurrUser;\n constructor(\n private PromanState: PromanStateService,\n private Toast: ToastService,\n private Router: Router,\n private store: Store,\n @Inject(UserResolver) private userResolver: UserResolver,\n ) {\n }\n\n async canActivate(\n route: ActivatedRouteSnapshot,\n ): Promise {\n\n const data = route.data;\n\n await this.userResolver.resolve();\n\n this.store.select(getCurrUser).subscribe((value) => {\n this.currUser = value;\n })\n\n const isAllowed = isDefined(data.employeeOnly) ? this.currUser.isEmployee: true;\n const isAdmin = isDefined(data.adminOnly) ? this.currUser.person.isAdmin : true;\n if (!isAllowed) {\n const errorMsg = `Employees only`;\n console.warn(errorMsg);\n this.Toast.pop('error', errorMsg);\n if (data.redirect) this.PromanState.to(data.redirect);\n if (this.Router.url.match('/')) {\n this.PromanState.go();\n }\n\n }\n\n if (!isAdmin) {\n const errorMsg = `Administrators only`;\n console.warn(errorMsg);\n this.Toast.pop('error', errorMsg);\n if (data.redirect) this.PromanState.to(data.redirect);\n if (this.Router.url.match('/')) {\n this.PromanState.go();\n }\n }\n\n return isAllowed;\n\n }\n}\n"], "mappings": "+KAcA,IAAaA,GAAqB,IAAA,CAA5B,MAAOA,CAAqB,CAE9BC,YACYC,EACAC,EACAC,EACAC,EACsBC,EAA0B,CAJhD,KAAAJ,YAAAA,EACA,KAAAC,MAAAA,EACA,KAAAC,OAAAA,EACA,KAAAC,MAAAA,EACsB,KAAAC,aAAAA,CAElC,CAEMC,YACFC,EAA6B,QAAAC,EAAA,sBAG7B,IAAMC,EAAOF,EAAME,KAEnB,MAAM,KAAKJ,aAAaK,QAAO,EAE/B,KAAKN,MAAMO,OAAOC,CAAW,EAAEC,UAAWC,GAAS,CAC/C,KAAKC,SAAWD,CACpB,CAAC,EAED,IAAME,EAAYC,EAAUR,EAAKS,YAAY,EAAI,KAAKH,SAASI,WAAY,GACrEC,EAAUH,EAAUR,EAAKY,SAAS,EAAI,KAAKN,SAASO,OAAOF,QAAU,GAC3E,GAAI,CAACJ,EAAW,CACZ,IAAMO,EAAW,iBACjBC,QAAQC,KAAKF,CAAQ,EACrB,KAAKrB,MAAMwB,IAAI,QAASH,CAAQ,EAC5Bd,EAAKkB,UAAU,KAAK1B,YAAY2B,GAAGnB,EAAKkB,QAAQ,EAChD,KAAKxB,OAAO0B,IAAIC,MAAM,GAAG,GACzB,KAAK7B,YAAY8B,GAAE,EAK3B,GAAI,CAACX,EAAS,CACV,IAAMG,EAAW,sBACjBC,QAAQC,KAAKF,CAAQ,EACrB,KAAKrB,MAAMwB,IAAI,QAASH,CAAQ,EAC5Bd,EAAKkB,UAAU,KAAK1B,YAAY2B,GAAGnB,EAAKkB,QAAQ,EAChD,KAAKxB,OAAO0B,IAAIC,MAAM,GAAG,GACzB,KAAK7B,YAAY8B,GAAE,EAI3B,OAAOf,CAEX,mDAhDSjB,GAAqBiC,EAAAC,CAAA,EAAAD,EAAAE,CAAA,EAAAF,EAAA7B,CAAA,EAAA6B,EAAAG,CAAA,EAAAH,EAOlBI,CAAY,CAAA,CAAA,CAAA,iCAPfrC,EAAqBsC,QAArBtC,EAAqBuC,UAAAC,WAFlB,MAAM,CAAA,CAAA,SAETxC,CAAqB,GAAA", "names": ["GuardsEmployeeService", "constructor", "PromanState", "Toast", "Router", "store", "userResolver", "canActivate", "route", "__async", "data", "resolve", "select", "getCurrUser", "subscribe", "value", "currUser", "isAllowed", "isDefined", "employeeOnly", "isEmployee", "isAdmin", "adminOnly", "person", "errorMsg", "console", "warn", "pop", "redirect", "to", "url", "match", "go", "\u0275\u0275inject", "PromanStateService", "ToastService", "Store", "UserResolver", "factory", "\u0275fac", "providedIn"] }