UNPKG

vix-ui

Version:

A set of essential UI modules for your Angular application in ViSenze

104 lines (103 loc) 7.38 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes} 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 */ var VixAuthGuard = /** @class */ (function () { /** * @param auth * @param authConfig * @param router */ function VixAuthGuard(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 * @returns */ /** * 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 {?} */ VixAuthGuard.prototype.canActivate = /** * 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 {?} */ function (route, state) { return tslib_1.__awaiter(this, void 0, void 0, function () { var currentUserGroups, requireGroups; return tslib_1.__generator(this, function (_a) { switch (_a.label) { case 0: console.log('in authguard'); if (!this.auth.isLogin()) { alert('Please login first.'); this.auth.navigateToLoginPage(); return [2 /*return*/, false]; } return [4 /*yield*/, this.auth.getLoginUserGroups()]; case 1: currentUserGroups = _a.sent(); requireGroups = /** @type {?} */ (route.data['groups']); if (VixAuthService.hasPermission(currentUserGroups, requireGroups)) { return [2 /*return*/, true]; } alert('Insufficient permissions. Please contact renjie@visenze.com'); // this.auth.navigateToLoginPage(); this.auth.navigateToRedirectPage(); return [2 /*return*/, false]; } }); }); }; VixAuthGuard.decorators = [ { type: Injectable }, ]; /** @nocollapse */ VixAuthGuard.ctorParameters = function () { return [ { type: VixAuthService, }, { type: AuthConfigService, }, { type: Router, }, ]; }; return VixAuthGuard; }()); export { VixAuthGuard }; function VixAuthGuard_tsickle_Closure_declarations() { /** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */ VixAuthGuard.decorators; /** * @nocollapse * @type {function(): !Array<(null|{type: ?, decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>)})>} */ VixAuthGuard.ctorParameters; /** @type {?} */ VixAuthGuard.prototype.auth; /** @type {?} */ VixAuthGuard.prototype.authConfig; /** @type {?} */ VixAuthGuard.prototype.router; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC1ndWFyZC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vdml4LXVpLyIsInNvdXJjZXMiOlsidml4LXNlcnZpY2VzL2F1dGgvc2VydmljZXMvYXV0aC1ndWFyZC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQXVDLE1BQU0sRUFBdUIsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7OztJQVV4RDs7OztPQUlHO0lBQ0gsc0JBQW9CLElBQW9CLEVBQ3BCLFlBQ0E7UUFGQSxTQUFJLEdBQUosSUFBSSxDQUFnQjtRQUNwQixlQUFVLEdBQVYsVUFBVTtRQUNWLFdBQU0sR0FBTixNQUFNO0tBQ3pCO0lBRUQ7Ozs7Ozs7T0FPRzs7Ozs7Ozs7O0lBQ0csa0NBQVc7Ozs7Ozs7O0lBQWpCLFVBQWtCLEtBQTZCLEVBQzdCLEtBQTBCOzs7Ozs7d0JBQzFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUM7d0JBQzVCLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUM7NEJBQ3pCLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDOzRCQUM3QixJQUFJLENBQUMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7NEJBQ2hDLE1BQU0sZ0JBQUMsS0FBSyxFQUFDO3lCQUNkO3dCQUN5QixxQkFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLEVBQUE7O3dCQUF4RCxpQkFBaUIsR0FBRyxTQUFvQzt3QkFDeEQsYUFBYSxxQkFBRyxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBYSxFQUFDO3dCQUN2RCxFQUFFLENBQUMsQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLGlCQUFpQixFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQzs0QkFDbkUsTUFBTSxnQkFBQyxJQUFJLEVBQUM7eUJBQ2I7d0JBQ0QsS0FBSyxDQUFDLDZEQUE2RCxDQUFDLENBQUM7O3dCQUVyRSxJQUFJLENBQUMsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7d0JBQ25DLHNCQUFPLEtBQUssRUFBQzs7OztLQUNkOztnQkF0Q0YsVUFBVTs7OztnQkFSRixjQUFjO2dCQUNkLGlCQUFpQjtnQkFGb0IsTUFBTTs7dUJBRHBEOztTQVdhLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBDYW5BY3RpdmF0ZSwgUm91dGVyLCBSb3V0ZXJTdGF0ZVNuYXBzaG90IH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFZpeEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi9hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHsgQXV0aENvbmZpZ1NlcnZpY2UgfSBmcm9tICcuL2F1dGgtY29uZmlnLnNlcnZpY2UnO1xuXG5cbi8qKlxuICogQXV0aCBndWFyZCB3aWxsIGNoZWNrIHVzZXIgZ3JvdXBzIGFuZCBhcHAgcmVxdWlyZWQgZ3JvdXBzIGFuZFxuICoganVkZ2UgdXNlciBjYW4gdmlldyB0aGUgcm91dGUgb3Igbm90XG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBWaXhBdXRoR3VhcmQgaW1wbGVtZW50cyBDYW5BY3RpdmF0ZSB7XG5cbiAgLyoqXG4gICAqIEBwYXJhbSBhdXRoXG4gICAqIEBwYXJhbSBhdXRoQ29uZmlnXG4gICAqIEBwYXJhbSByb3V0ZXJcbiAgICovXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYXV0aDogVml4QXV0aFNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgYXV0aENvbmZpZzogQXV0aENvbmZpZ1NlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIpIHtcbiAgfVxuXG4gIC8qKlxuICAgKiBjb21wYXJlIHVzZXIgZ3JvdXBzIGFuZCBhcHAgcmVxdWlyZWQgZ3JvdXBzIGJ5IFVzZXJHcm91cHMuaGFzUGVybWlzc2lvbigpXG4gICAqIGNhbkFjdGl2ZSB3aWxsIGNhY2hlIHRoZSB1c2VyIGdyb3VwcyBpbmZvcm1hdGlvbiBieSAxIGhvdXIuXG4gICAqXG4gICAqIEBwYXJhbSByb3V0ZVxuICAgKiBAcGFyYW0gc3RhdGVcbiAgICogQHJldHVybnNcbiAgICovXG4gIGFzeW5jIGNhbkFjdGl2YXRlKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LFxuICAgICAgICAgICAgICAgICAgICBzdGF0ZTogUm91dGVyU3RhdGVTbmFwc2hvdCkge1xuICAgIGNvbnNvbGUubG9nKCdpbiBhdXRoZ3VhcmQnKTtcbiAgICBpZiAoIXRoaXMuYXV0aC5pc0xvZ2luKCkpIHtcbiAgICAgIGFsZXJ0KCdQbGVhc2UgbG9naW4gZmlyc3QuJyk7XG4gICAgICB0aGlzLmF1dGgubmF2aWdhdGVUb0xvZ2luUGFnZSgpO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBjb25zdCBjdXJyZW50VXNlckdyb3VwcyA9IGF3YWl0IHRoaXMuYXV0aC5nZXRMb2dpblVzZXJHcm91cHMoKTtcbiAgICBjb25zdCByZXF1aXJlR3JvdXBzID0gcm91dGUuZGF0YVsnZ3JvdXBzJ10gYXMgc3RyaW5nW107XG4gICAgaWYgKFZpeEF1dGhTZXJ2aWNlLmhhc1Blcm1pc3Npb24oY3VycmVudFVzZXJHcm91cHMsIHJlcXVpcmVHcm91cHMpKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgYWxlcnQoJ0luc3VmZmljaWVudCBwZXJtaXNzaW9ucy4gUGxlYXNlIGNvbnRhY3QgcmVuamllQHZpc2VuemUuY29tJyk7XG4gICAgLy8gdGhpcy5hdXRoLm5hdmlnYXRlVG9Mb2dpblBhZ2UoKTtcbiAgICB0aGlzLmF1dGgubmF2aWdhdGVUb1JlZGlyZWN0UGFnZSgpO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuIl19