portal-route-guard
Version:
Wistron I4.0 Portal Route Guard
1 lines • 11.3 kB
Source Map (JSON)
{"version":3,"file":"portal-route-guard.mjs","sources":["../../../projects/portal-route-guard/src/lib/models/index.ts","../../../projects/portal-route-guard/src/lib/service/portal-guard-option.token.ts","../../../projects/portal-route-guard/src/lib/service/portal-accessment.service.ts","../../../projects/portal-route-guard/src/lib/service/index.ts","../../../projects/portal-route-guard/src/lib/portal.guard.ts","../../../projects/portal-route-guard/src/lib/portal-route-guard.module.ts","../../../projects/portal-route-guard/src/lib/index.ts","../../../projects/portal-route-guard/src/public-api.ts","../../../projects/portal-route-guard/src/portal-route-guard.ts"],"sourcesContent":["/**\r\n * 專案名稱: portal-route-guard\r\n * 部門代號: MLD500\r\n * 檔案說明: 資料模型匯出點\r\n * @CREATE Monday, 14th March 2022 8:52:20 am\r\n * @author Steve CY Lin\r\n * @contact Steve_CY_Lin@wistron.com #1342\r\n * -----------------------------------------------------------------------------\r\n * @NOTE\r\n */\r\n\r\nexport * from './portal-guard.option';\r\n","/**\r\n * 專案名稱: portal-route-guard\r\n * 部門代號: MLD500\r\n * 檔案說明: Portal 路由守衛配置注入 Token\r\n * @CREATE Monday, 14th March 2022 8:55:49 am\r\n * @author Steve CY Lin\r\n * @contact Steve_CY_Lin@wistron.com #1342\r\n * -----------------------------------------------------------------------------\r\n * @NOTE\r\n */\r\n\r\nimport { InjectionToken } from '@angular/core';\r\nimport { PortalGuardOption } from '../models';\r\n\r\n/**\r\n * Portal 路由守衛配置注入 Token\r\n */\r\nexport const PORTAL_GUARD_OPTION = new InjectionToken<PortalGuardOption>(\r\n 'portal-guard-option'\r\n);\r\n","/**\n * 專案名稱: portal-route-guard\n * 部門代號: MLD500\n * 檔案說明: Portal 訪問服務\n * @CREATE Monday, 14th March 2022 9:36:03 am\n * @author Steve CY Lin\n * @contact Steve_CY_Lin@wistron.com #1342\n * -----------------------------------------------------------------------------\n * @NOTE\n */\n\nimport { Inject, Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate } from '@angular/router';\nimport { PortalGuardOption } from '../models';\nimport { PORTAL_GUARD_OPTION } from './portal-guard-option.token';\n\n/**\n * Portal 訪問服務\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class PortalAccessmentService implements CanActivate {\n /**\n * Portal 存取必填欄位\n */\n private essentialKeys = ['userID', 'token', 'sysId', 'site', 'plant'];\n\n /**\n * @param options Portal 路由守衛配置\n */\n constructor(\n @Inject(PORTAL_GUARD_OPTION) private readonly options: PortalGuardOption\n ) {\n this.essentialKeys = this.options?.essentialKeys || this.essentialKeys;\n }\n\n /**\n * 是否允許訪忘該頁面\n *\n * @method public\n * @param route 路由快照\n * @return 回傳是否允許訪忘該頁面\n */\n public canActivate(route: ActivatedRouteSnapshot): boolean {\n // 檢視是否允許訪問頁面\n return this.essentialKeys\n .map((key) => route.queryParamMap.keys.includes(key))\n .every((result) => result === true);\n }\n}\n","/**\r\n * 專案名稱: portal-route-guard\r\n * 部門代號: MLD500\r\n * 檔案說明: 服務匯出點\r\n * @CREATE Monday, 14th March 2022 8:55:26 am\r\n * @author Steve CY Lin\r\n * @contact Steve_CY_Lin@wistron.com #1342\r\n * -----------------------------------------------------------------------------\r\n * @NOTE\r\n */\r\n\r\nexport * from './portal-accessment.service';\r\nexport * from './portal-guard-option.token';\r\n","/**\n * 專案名稱: portal-route-guard\n * 部門代號: MLD500\n * 檔案說明: Portal 路由守衛\n * @CREATE Monday, 14th March 2022 9:10:37 am\n * @author Steve CY Lin\n * @contact Steve_CY_Lin@wistron.com #1342\n * -----------------------------------------------------------------------------\n * @NOTE\n */\n\nimport { Inject, Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate, Router } from '@angular/router';\nimport { PortalGuardOption } from './models';\nimport { PortalAccessmentService, PORTAL_GUARD_OPTION } from './service';\n\n/**\n * Portal 路由守衛\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class PortalGuard implements CanActivate {\n /**\n * @param options Portal 路由守衛配置\n * @param router 路由功能\n * @param accessmentService Portal 訪問服務\n */\n constructor(\n @Inject(PORTAL_GUARD_OPTION) private readonly options: PortalGuardOption,\n private readonly router: Router,\n private readonly accessmentService: PortalAccessmentService\n ) {}\n\n /**\n * 是否允許訪忘該頁面\n *\n * @method public\n * @param route 路由快照\n * @return 回傳是否允許訪忘該頁面\n */\n public canActivate(route: ActivatedRouteSnapshot): boolean {\n // 檢視是否允許訪問頁面\n const accessed = this.accessmentService.canActivate(route);\n\n // 不允許訪問且帶有拒絕存取的頁面,則路由至該頁面\n if (!accessed && this.options && this.options.rejectPath) {\n this.router.navigate([this.options.rejectPath]);\n }\n\n return accessed;\n }\n}\n","/**\n * 專案名稱: portal-route-guard\n * 部門代號: MLD500\n * 檔案說明: Portal 路由守衛模組\n * @CREATE Monday, 14th March 2022 8:25:40 am\n * @author Steve CY Lin\n * @contact Steve_CY_Lin@wistron.com #1342\n * -----------------------------------------------------------------------------\n * @NOTE\n */\n\nimport { CommonModule } from '@angular/common';\nimport { ModuleWithProviders, NgModule } from '@angular/core';\nimport { PortalGuardOption } from './models';\nimport { PortalGuard } from './portal.guard';\nimport { PortalAccessmentService, PORTAL_GUARD_OPTION } from './service';\n\n/**\n * Portal 路由守衛模組\n */\n@NgModule({\n imports: [CommonModule],\n declarations: [],\n providers: [\n {\n provide: PORTAL_GUARD_OPTION,\n useValue: null,\n },\n PortalGuard,\n PortalAccessmentService,\n ],\n})\nexport class PortalGuardModule {\n /**\n * Portal 路由守衛模組配置\n *\n * @method public\n * @param options Portal 路由守衛配置\n * @return 回傳 Portal 路由守衛模組\n */\n public static forRoot(\n options: PortalGuardOption\n ): ModuleWithProviders<PortalGuardModule> {\n return {\n ngModule: PortalGuardModule,\n providers: [\n {\n provide: PORTAL_GUARD_OPTION,\n useValue: options,\n },\n PortalGuard,\n PortalAccessmentService,\n ],\n };\n }\n}\n","/**\r\n * 專案名稱: portal-route-guard\r\n * 部門代號: MLD500\r\n * 檔案說明: Portal 路由守衛模組匯出點\r\n * @CREATE Monday, 14th March 2022 8:36:16 am\r\n * @author Steve CY Lin\r\n * @contact Steve_CY_Lin@wistron.com #1342\r\n * -----------------------------------------------------------------------------\r\n * @NOTE\r\n */\r\n\r\nexport * from './models';\r\nexport * from './portal-route-guard.module';\r\nexport * from './portal.guard';\r\nexport * from './service/portal-accessment.service';\r\n","/**\n * 專案名稱: portal-route-guard\n * 部門代號: MLD500\n * 檔案說明: 套件匯出點\n * @CREATE Monday, 14th March 2022 8:25:40 am\n * @author Steve CY Lin\n * @contact Steve_CY_Lin@wistron.com #1342\n * -----------------------------------------------------------------------------\n * @NOTE\n */\n\nexport * from './lib/index';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.PortalAccessmentService"],"mappings":"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"}