geminis-ng
Version:
This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 8.2.14.
44 lines • 5.19 kB
JavaScript
import { Injectable } from '@angular/core';
import { Router } from '@angular/router';
import { GnLoginUser } from './LoginUser';
import { GnMessageService } from '../message-service/message-service';
import { GnSiteInfo } from './SiteInfo';
export class GnRouteGuard {
constructor(user, siteInfo, router, messageService) {
this.user = user;
this.siteInfo = siteInfo;
this.router = router;
this.messageService = messageService;
}
canActivate(route, state) {
var _a;
if (!this.user.isLogin) {
sessionStorage.setItem('blockUrl', state.url);
this.messageService.warn('请登录');
this.router.navigateByUrl(this.siteInfo.loginUrl);
return false;
}
else {
const authority = (_a = this.siteInfo.siteAuthorities) === null || _a === void 0 ? void 0 : _a.find((item) => item.url === state.url);
if (!authority || this.user.authorities.includes(authority.authority)) {
return true;
}
else {
sessionStorage.setItem('blockUrl', state.url);
this.messageService.warn('您的权限不足');
this.router.navigateByUrl(this.siteInfo.loginUrl);
return false;
}
}
}
}
GnRouteGuard.decorators = [
{ type: Injectable }
];
GnRouteGuard.ctorParameters = () => [
{ type: GnLoginUser },
{ type: GnSiteInfo },
{ type: Router },
{ type: GnMessageService }
];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUm91dGVHdWFyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2dlbWluaXMtbmcvc3JjL2FwcC1jb25maWcvUm91dGVHdWFyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBc0MsTUFBTSxFQUFzQixNQUFNLGlCQUFpQixDQUFDO0FBQ2pHLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxhQUFhLENBQUM7QUFDeEMsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFDcEUsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLFlBQVksQ0FBQztBQUd0QyxNQUFNLE9BQU8sWUFBWTtJQUV2QixZQUFvQixJQUFpQixFQUNqQixRQUFvQixFQUNwQixNQUFjLEVBQ2QsY0FBZ0M7UUFIaEMsU0FBSSxHQUFKLElBQUksQ0FBYTtRQUNqQixhQUFRLEdBQVIsUUFBUSxDQUFZO1FBQ3BCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxtQkFBYyxHQUFkLGNBQWMsQ0FBa0I7SUFDcEQsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUE2QixFQUFFLEtBQTBCOztRQUNuRSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDdEIsY0FBYyxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzlDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2hDLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDbEQsT0FBTyxLQUFLLENBQUM7U0FDZDthQUFNO1lBQ0wsTUFBTSxTQUFTLFNBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxlQUFlLDBDQUFFLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDeEYsSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxFQUFFO2dCQUNyRSxPQUFPLElBQUksQ0FBQzthQUNiO2lCQUFNO2dCQUNMLGNBQWMsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDOUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQ25DLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQ2xELE9BQU8sS0FBSyxDQUFDO2FBQ2Q7U0FDRjtJQUNILENBQUM7OztZQTFCRixVQUFVOzs7WUFKSCxXQUFXO1lBRVgsVUFBVTtZQUgyQixNQUFNO1lBRTNDLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlU25hcHNob3QsIENhbkFjdGl2YXRlLCBSb3V0ZXIsIFJvdXRlclN0YXRlU25hcHNob3R9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge0duTG9naW5Vc2VyfSBmcm9tICcuL0xvZ2luVXNlcic7XG5pbXBvcnQge0duTWVzc2FnZVNlcnZpY2V9IGZyb20gJy4uL21lc3NhZ2Utc2VydmljZS9tZXNzYWdlLXNlcnZpY2UnO1xuaW1wb3J0IHtHblNpdGVJbmZvfSBmcm9tICcuL1NpdGVJbmZvJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEduUm91dGVHdWFyZCBpbXBsZW1lbnRzIENhbkFjdGl2YXRlIHtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHVzZXI6IEduTG9naW5Vc2VyLFxuICAgICAgICAgICAgICBwcml2YXRlIHNpdGVJbmZvOiBHblNpdGVJbmZvLFxuICAgICAgICAgICAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgICAgICAgICAgICBwcml2YXRlIG1lc3NhZ2VTZXJ2aWNlOiBHbk1lc3NhZ2VTZXJ2aWNlKSB7XG4gIH1cblxuICBjYW5BY3RpdmF0ZShyb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgc3RhdGU6IFJvdXRlclN0YXRlU25hcHNob3QpOiBib29sZWFuIHtcbiAgICBpZiAoIXRoaXMudXNlci5pc0xvZ2luKSB7XG4gICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKCdibG9ja1VybCcsIHN0YXRlLnVybCk7XG4gICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLndhcm4oJ+ivt+eZu+W9lScpO1xuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCh0aGlzLnNpdGVJbmZvLmxvZ2luVXJsKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgYXV0aG9yaXR5ID0gdGhpcy5zaXRlSW5mby5zaXRlQXV0aG9yaXRpZXM/LmZpbmQoKGl0ZW0pID0+IGl0ZW0udXJsID09PSBzdGF0ZS51cmwpO1xuICAgICAgaWYgKCFhdXRob3JpdHkgfHwgdGhpcy51c2VyLmF1dGhvcml0aWVzLmluY2x1ZGVzKGF1dGhvcml0eS5hdXRob3JpdHkpKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgnYmxvY2tVcmwnLCBzdGF0ZS51cmwpO1xuICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLndhcm4oJ+aCqOeahOadg+mZkOS4jei2sycpO1xuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKHRoaXMuc2l0ZUluZm8ubG9naW5VcmwpO1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0=