UNPKG

vix-ui

Version:

76 lines 6.46 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc */ import * as tslib_1 from "tslib"; import { Injectable } from '@angular/core'; import { Router } from '@angular/router'; import { VixAuthService } from './auth.service'; import { AuthConfigService } from './auth-config.service'; /** * Auth guard will check user groups and app required groups and * judge user can view the route or not */ export class VixAuthGuard { /** * @param {?} auth * @param {?} authConfig * @param {?} router */ constructor(auth, authConfig, router) { this.auth = auth; this.authConfig = authConfig; this.router = router; } /** * compare user groups and app required groups by UserGroups.hasPermission() * canActive will cache the user groups information by 1 hour. * @param {?} route * @param {?} state * @return {?} */ canActivate(route, state) { return tslib_1.__awaiter(this, void 0, void 0, function* () { console.log('in authguard'); if (!this.auth.isLogin()) { alert('Please login first.'); this.auth.navigateToLoginPage(); return false; } if (!this.auth.getSessionToken()) { // Renew the session token // Renew the session token /** @type {?} */ const session = yield this.auth.getSession(); this.auth.setSessionToken(session.id); } /** @type {?} */ const currentUserGroups = yield this.auth.getLoginUserGroups(); /** @type {?} */ const requireGroups = (/** @type {?} */ (route.data['groups'])); if (VixAuthService.hasPermission(currentUserGroups, requireGroups)) { return true; } alert('Insufficient permissions. Please contact renjie@visenze.com'); // this.auth.navigateToLoginPage(); this.auth.navigateToRedirectPage(); return false; }); } } VixAuthGuard.decorators = [ { type: Injectable } ]; VixAuthGuard.ctorParameters = () => [ { type: VixAuthService }, { type: AuthConfigService }, { type: Router } ]; if (false) { /** @type {?} */ VixAuthGuard.prototype.auth; /** @type {?} */ VixAuthGuard.prototype.authConfig; /** @type {?} */ VixAuthGuard.prototype.router; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC1ndWFyZC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vdml4LXVpLyIsInNvdXJjZXMiOlsidml4LWF1dGgvYXV0aC1ndWFyZC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQXVDLE1BQU0sRUFBdUIsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7O0FBUTFELE1BQU07Ozs7OztJQUVKLFlBQW9CLElBQW9CLEVBQ3BCLFVBQTZCLEVBQzdCLE1BQWM7UUFGZCxTQUFJLEdBQUosSUFBSSxDQUFnQjtRQUNwQixlQUFVLEdBQVYsVUFBVSxDQUFtQjtRQUM3QixXQUFNLEdBQU4sTUFBTSxDQUFRO0lBQ2xDLENBQUM7Ozs7Ozs7O0lBTUssV0FBVyxDQUFDLEtBQTZCLEVBQzdCLEtBQTBCOztZQUMxQyxPQUFPLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQzVCLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFO2dCQUN4QixLQUFLLENBQUMscUJBQXFCLENBQUMsQ0FBQztnQkFDN0IsSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO2dCQUNoQyxPQUFPLEtBQUssQ0FBQzthQUNkO1lBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLEVBQUUsRUFBRSwwQkFBMEI7OztzQkFDdEQsT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUU7Z0JBQzVDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQzthQUN2Qzs7a0JBQ0ssaUJBQWlCLEdBQUcsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFOztrQkFDeEQsYUFBYSxHQUFHLG1CQUFBLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQVk7WUFDdEQsSUFBSSxjQUFjLENBQUMsYUFBYSxDQUFDLGlCQUFpQixFQUFFLGFBQWEsQ0FBQyxFQUFFO2dCQUNsRSxPQUFPLElBQUksQ0FBQzthQUNiO1lBQ0QsS0FBSyxDQUFDLDZEQUE2RCxDQUFDLENBQUM7WUFDckUsbUNBQW1DO1lBQ25DLElBQUksQ0FBQyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztZQUNuQyxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7S0FBQTs7O1lBakNGLFVBQVU7OztZQVJGLGNBQWM7WUFDZCxpQkFBaUI7WUFGb0IsTUFBTTs7OztJQVl0Qyw0QkFBNEI7O0lBQzVCLGtDQUFxQzs7SUFDckMsOEJBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgQ2FuQWN0aXZhdGUsIFJvdXRlciwgUm91dGVyU3RhdGVTbmFwc2hvdCB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBWaXhBdXRoU2VydmljZSB9IGZyb20gJy4vYXV0aC5zZXJ2aWNlJztcbmltcG9ydCB7IEF1dGhDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi9hdXRoLWNvbmZpZy5zZXJ2aWNlJztcblxuXG4vKipcbiAqIEF1dGggZ3VhcmQgd2lsbCBjaGVjayB1c2VyIGdyb3VwcyBhbmQgYXBwIHJlcXVpcmVkIGdyb3VwcyBhbmRcbiAqIGp1ZGdlIHVzZXIgY2FuIHZpZXcgdGhlIHJvdXRlIG9yIG5vdFxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgVml4QXV0aEd1YXJkIGltcGxlbWVudHMgQ2FuQWN0aXZhdGUge1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYXV0aDogVml4QXV0aFNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgYXV0aENvbmZpZzogQXV0aENvbmZpZ1NlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIpIHtcbiAgfVxuXG4gIC8qKlxuICAgKiBjb21wYXJlIHVzZXIgZ3JvdXBzIGFuZCBhcHAgcmVxdWlyZWQgZ3JvdXBzIGJ5IFVzZXJHcm91cHMuaGFzUGVybWlzc2lvbigpXG4gICAqIGNhbkFjdGl2ZSB3aWxsIGNhY2hlIHRoZSB1c2VyIGdyb3VwcyBpbmZvcm1hdGlvbiBieSAxIGhvdXIuXG4gICAqL1xuICBhc3luYyBjYW5BY3RpdmF0ZShyb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCxcbiAgICAgICAgICAgICAgICAgICAgc3RhdGU6IFJvdXRlclN0YXRlU25hcHNob3QpIHtcbiAgICBjb25zb2xlLmxvZygnaW4gYXV0aGd1YXJkJyk7XG4gICAgaWYgKCF0aGlzLmF1dGguaXNMb2dpbigpKSB7XG4gICAgICBhbGVydCgnUGxlYXNlIGxvZ2luIGZpcnN0LicpO1xuICAgICAgdGhpcy5hdXRoLm5hdmlnYXRlVG9Mb2dpblBhZ2UoKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgaWYgKCF0aGlzLmF1dGguZ2V0U2Vzc2lvblRva2VuKCkpIHsgLy8gUmVuZXcgdGhlIHNlc3Npb24gdG9rZW5cbiAgICAgIGNvbnN0IHNlc3Npb24gPSBhd2FpdCB0aGlzLmF1dGguZ2V0U2Vzc2lvbigpO1xuICAgICAgdGhpcy5hdXRoLnNldFNlc3Npb25Ub2tlbihzZXNzaW9uLmlkKTtcbiAgICB9XG4gICAgY29uc3QgY3VycmVudFVzZXJHcm91cHMgPSBhd2FpdCB0aGlzLmF1dGguZ2V0TG9naW5Vc2VyR3JvdXBzKCk7XG4gICAgY29uc3QgcmVxdWlyZUdyb3VwcyA9IHJvdXRlLmRhdGFbJ2dyb3VwcyddIGFzIHN0cmluZ1tdO1xuICAgIGlmIChWaXhBdXRoU2VydmljZS5oYXNQZXJtaXNzaW9uKGN1cnJlbnRVc2VyR3JvdXBzLCByZXF1aXJlR3JvdXBzKSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGFsZXJ0KCdJbnN1ZmZpY2llbnQgcGVybWlzc2lvbnMuIFBsZWFzZSBjb250YWN0IHJlbmppZUB2aXNlbnplLmNvbScpO1xuICAgIC8vIHRoaXMuYXV0aC5uYXZpZ2F0ZVRvTG9naW5QYWdlKCk7XG4gICAgdGhpcy5hdXRoLm5hdmlnYXRlVG9SZWRpcmVjdFBhZ2UoKTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cbiJdfQ==