UNPKG

@lcsf/acl

Version:

权限控制模块

40 lines 4.36 kB
import { Injectable } from '@angular/core'; import { Router, } from '@angular/router'; import { LcAClService } from './lc-acl.service'; import * as i0 from "@angular/core"; import * as i1 from "./lc-acl.service"; import * as i2 from "@angular/router"; /** * 目前用不到,startup.service.js 启动的时候已经判断当前的url是否是合法的 */ export class LcAclGuard { constructor(srv, router) { this.srv = srv; this.router = router; } process(route, state) { if (this.srv.canAuthUrl(state.url)) { return true; } let guard_url = route.data.guard_url || '/auth/403'; this.router.navigateByUrl(guard_url); } canActivate(route, state) { return this.process(route, state); } // all children route canActivateChild(childRoute, state) { return this.process(childRoute, state); } } LcAclGuard.ɵprov = i0.ɵɵdefineInjectable({ factory: function LcAclGuard_Factory() { return new LcAclGuard(i0.ɵɵinject(i1.LcAClService), i0.ɵɵinject(i2.Router)); }, token: LcAclGuard, providedIn: "root" }); LcAclGuard.decorators = [ { type: Injectable, args: [{ providedIn: 'root', },] } ]; LcAclGuard.ctorParameters = () => [ { type: LcAClService }, { type: Router } ]; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGMtYWNsLmd1YXJkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vYWNsL3NyYy9sYy1hY2wuZ3VhcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBS0wsTUFBTSxHQUVQLE1BQU0saUJBQWlCLENBQUM7QUFHekIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDOzs7O0FBRWhEOztHQUVHO0FBSUgsTUFBTSxPQUFPLFVBQVU7SUFDckIsWUFBc0IsR0FBaUIsRUFBVSxNQUFjO1FBQXpDLFFBQUcsR0FBSCxHQUFHLENBQWM7UUFBVSxXQUFNLEdBQU4sTUFBTSxDQUFRO0lBQUcsQ0FBQztJQUVuRSxPQUFPLENBQUMsS0FBNkIsRUFBRSxLQUEwQjtRQUMvRCxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNsQyxPQUFPLElBQUksQ0FBQztTQUNiO1FBQ0QsSUFBSSxTQUFTLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLElBQUksV0FBVyxDQUFDO1FBQ3BELElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFDRCxXQUFXLENBQ1QsS0FBNkIsRUFDN0IsS0FBMEI7UUFFMUIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQscUJBQXFCO0lBQ3JCLGdCQUFnQixDQUNkLFVBQWtDLEVBQ2xDLEtBQTBCO1FBRTFCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDekMsQ0FBQzs7OztZQTFCRixVQUFVLFNBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkI7OztZQVBRLFlBQVk7WUFMbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEFjdGl2YXRlZFJvdXRlU25hcHNob3QsXG4gIENhbkFjdGl2YXRlLFxuICBSb3V0ZXJTdGF0ZVNuYXBzaG90LFxuICBVcmxUcmVlLFxuICBSb3V0ZXIsXG4gIENhbkFjdGl2YXRlQ2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IExjQUNsU2VydmljZSB9IGZyb20gJy4vbGMtYWNsLnNlcnZpY2UnO1xuXG4vKipcbiAqIOebruWJjeeUqOS4jeWIsO+8jHN0YXJ0dXAuc2VydmljZS5qcyDlkK/liqjnmoTml7blgJnlt7Lnu4/liKTmlq3lvZPliY3nmoR1cmzmmK/lkKbmmK/lkIjms5XnmoRcbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIExjQWNsR3VhcmQgaW1wbGVtZW50cyBDYW5BY3RpdmF0ZSwgQ2FuQWN0aXZhdGVDaGlsZCB7XG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBzcnY6IExjQUNsU2VydmljZSwgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcikge31cblxuICBwcm9jZXNzKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBzdGF0ZTogUm91dGVyU3RhdGVTbmFwc2hvdCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLnNydi5jYW5BdXRoVXJsKHN0YXRlLnVybCkpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBsZXQgZ3VhcmRfdXJsID0gcm91dGUuZGF0YS5ndWFyZF91cmwgfHwgJy9hdXRoLzQwMyc7XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybChndWFyZF91cmwpO1xuICB9XG4gIGNhbkFjdGl2YXRlKFxuICAgIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LFxuICAgIHN0YXRlOiBSb3V0ZXJTdGF0ZVNuYXBzaG90LFxuICApOiBPYnNlcnZhYmxlPGJvb2xlYW4gfCBVcmxUcmVlPiB8IFByb21pc2U8Ym9vbGVhbiB8IFVybFRyZWU+IHwgYm9vbGVhbiB8IFVybFRyZWUge1xuICAgIHJldHVybiB0aGlzLnByb2Nlc3Mocm91dGUsIHN0YXRlKTtcbiAgfVxuXG4gIC8vIGFsbCBjaGlsZHJlbiByb3V0ZVxuICBjYW5BY3RpdmF0ZUNoaWxkKFxuICAgIGNoaWxkUm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsXG4gICAgc3RhdGU6IFJvdXRlclN0YXRlU25hcHNob3QsXG4gICk6IE9ic2VydmFibGU8Ym9vbGVhbiB8IFVybFRyZWU+IHwgUHJvbWlzZTxib29sZWFuIHwgVXJsVHJlZT4gfCBib29sZWFuIHwgVXJsVHJlZSB7XG4gICAgcmV0dXJuIHRoaXMucHJvY2VzcyhjaGlsZFJvdXRlLCBzdGF0ZSk7XG4gIH1cbn1cbiJdfQ==