UNPKG

@isaiahiroko/ng-guards

Version:

Angular routes guards to detect authenticated or unauthenticated users

141 lines (132 loc) 9.82 kB
(function (global, factory) { typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/router'), require('rxjs'), require('rxjs/operators'), require('@isaiahiroko/ng-utils')) : typeof define === 'function' && define.amd ? define('@isaiahiroko/ng-guards', ['exports', '@angular/core', '@angular/router', 'rxjs', 'rxjs/operators', '@isaiahiroko/ng-utils'], factory) : (factory((global.isaiahiroko = global.isaiahiroko || {}, global.isaiahiroko['ng-guards'] = {}),global.ng.core,global.ng.router,global.rxjs,global.rxjs.operators,null)); }(this, (function (exports,core,router,rxjs,operators,ngUtils) { 'use strict'; /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc */ var AuthGuard = (function () { function AuthGuard(router$$1, auth) { this.router = router$$1; this.auth = auth; } /** * @param {?} route * @param {?} state * @return {?} */ AuthGuard.prototype.canActivate = /** * @param {?} route * @param {?} state * @return {?} */ function (route, state) { var _this = this; return this.auth.check().pipe(operators.tap(function (status) { if (!status) { _this.router.navigate([_this.auth.signInUrl]); } }), operators.catchError(function (e) { return rxjs.of(false); })); }; /** * @param {?} route * @param {?} state * @return {?} */ AuthGuard.prototype.canActivateChild = /** * @param {?} route * @param {?} state * @return {?} */ function (route, state) { return this.canActivate(route, state); }; AuthGuard.decorators = [ { type: core.Injectable }, ]; /** @nocollapse */ AuthGuard.ctorParameters = function () { return [ { type: router.Router }, { type: ngUtils.AuthService } ]; }; return AuthGuard; }()); /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc */ var UnauthGuard = (function () { function UnauthGuard(router$$1, auth) { this.router = router$$1; this.auth = auth; } /** * @param {?} route * @param {?} state * @return {?} */ UnauthGuard.prototype.canActivate = /** * @param {?} route * @param {?} state * @return {?} */ function (route, state) { var _this = this; return this.auth.check().pipe(operators.tap(function (status) { if (status) { _this.router.navigate([_this.auth.intendedUrl]); } }), operators.map(function (status) { return !status; }), operators.catchError(function (e) { return rxjs.of(true); })); }; /** * @param {?} route * @param {?} state * @return {?} */ UnauthGuard.prototype.canActivateChild = /** * @param {?} route * @param {?} state * @return {?} */ function (route, state) { return this.canActivate(route, state); }; UnauthGuard.decorators = [ { type: core.Injectable }, ]; /** @nocollapse */ UnauthGuard.ctorParameters = function () { return [ { type: router.Router }, { type: ngUtils.AuthService } ]; }; return UnauthGuard; }()); /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc */ /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc */ /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc */ exports.AuthGuard = AuthGuard; exports.UnauthGuard = UnauthGuard; Object.defineProperty(exports, '__esModule', { value: true }); }))); //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXNhaWFoaXJva28tbmctZ3VhcmRzLnVtZC5qcy5tYXAiLCJzb3VyY2VzIjpbIm5nOi8vQGlzYWlhaGlyb2tvL25nLWd1YXJkcy9saWIvYXV0aC5ndWFyZC50cyIsIm5nOi8vQGlzYWlhaGlyb2tvL25nLWd1YXJkcy9saWIvdW5hdXRoLmd1YXJkLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xyXG5pbXBvcnQge1xyXG4gIENhbkFjdGl2YXRlLFxyXG4gIENhbkFjdGl2YXRlQ2hpbGQsXHJcbiAgUm91dGVyLFxyXG4gIEFjdGl2YXRlZFJvdXRlU25hcHNob3QsXHJcbiAgUm91dGVyU3RhdGVTbmFwc2hvdCxcclxufSBmcm9tICdAYW5ndWxhci9yb3V0ZXInXHJcblxyXG5pbXBvcnQgeyBPYnNlcnZhYmxlICwgIG9mIH0gZnJvbSAncnhqcydcclxuaW1wb3J0IHsgdGFwICwgIGNhdGNoRXJyb3IgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcclxuXHJcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnQGlzYWlhaGlyb2tvL25nLXV0aWxzJ1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgQXV0aEd1YXJkIGltcGxlbWVudHMgQ2FuQWN0aXZhdGUsIENhbkFjdGl2YXRlQ2hpbGQge1xyXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCByb3V0ZXI6IFJvdXRlciwgcHJvdGVjdGVkIGF1dGg6IEF1dGhTZXJ2aWNlKSB7fVxyXG5cclxuICBjYW5BY3RpdmF0ZShcclxuICAgIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LFxyXG4gICAgc3RhdGU6IFJvdXRlclN0YXRlU25hcHNob3QsXHJcbiAgKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XHJcbiAgICByZXR1cm4gdGhpcy5hdXRoLmNoZWNrKCkucGlwZShcclxuICAgICAgdGFwKChzdGF0dXMpID0+IHtcclxuICAgICAgICBpZiAoIXN0YXR1cykge1xyXG4gICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3RoaXMuYXV0aC5zaWduSW5VcmxdKVxyXG4gICAgICAgIH1cclxuICAgICAgfSksXHJcbiAgICAgIGNhdGNoRXJyb3IoKGUpID0+IHtcclxuICAgICAgICByZXR1cm4gb2YoZmFsc2UpXHJcbiAgICAgIH0pLFxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgY2FuQWN0aXZhdGVDaGlsZChcclxuICAgIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LFxyXG4gICAgc3RhdGU6IFJvdXRlclN0YXRlU25hcHNob3QsXHJcbiAgKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XHJcbiAgICByZXR1cm4gdGhpcy5jYW5BY3RpdmF0ZShyb3V0ZSwgc3RhdGUpXHJcbiAgfVxyXG59XHJcbiIsImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xyXG5pbXBvcnQge1xyXG4gIENhbkFjdGl2YXRlLFxyXG4gIENhbkFjdGl2YXRlQ2hpbGQsXHJcbiAgUm91dGVyLFxyXG4gIEFjdGl2YXRlZFJvdXRlU25hcHNob3QsXHJcbiAgUm91dGVyU3RhdGVTbmFwc2hvdCB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcidcclxuICBcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSAsICBvZiB9IGZyb20gJ3J4anMnXHJcbmltcG9ydCB7IG1hcCAsICB0YXAgLCAgY2F0Y2hFcnJvciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xyXG5cclxuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICdAaXNhaWFoaXJva28vbmctdXRpbHMnXHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBVbmF1dGhHdWFyZCBpbXBsZW1lbnRzIENhbkFjdGl2YXRlIHtcclxuICBjb25zdHJ1Y3RvciAocHJvdGVjdGVkIHJvdXRlcjogUm91dGVyLCBwcm90ZWN0ZWQgYXV0aDogQXV0aFNlcnZpY2UpIHt9XHJcblxyXG4gIGNhbkFjdGl2YXRlIChyb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgc3RhdGU6IFJvdXRlclN0YXRlU25hcHNob3QpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcclxuICAgIHJldHVybiB0aGlzLmF1dGguY2hlY2soKS5waXBlKFxyXG4gICAgICB0YXAoKHN0YXR1cykgPT4ge1xyXG4gICAgICAgIGlmKHN0YXR1cyl7XHJcbiAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbdGhpcy5hdXRoLmludGVuZGVkVXJsXSlcclxuICAgICAgICB9XHJcbiAgICAgIH0pLFxyXG4gICAgICBtYXAoKHN0YXR1cykgPT4ge1xyXG4gICAgICAgIHJldHVybiAhc3RhdHVzXHJcbiAgICAgIH0pLFxyXG4gICAgICBjYXRjaEVycm9yKChlKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIG9mKHRydWUpXHJcbiAgICAgIH0pXHJcbiAgICApXHJcbiAgfVxyXG5cclxuICBjYW5BY3RpdmF0ZUNoaWxkIChyb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgc3RhdGU6IFJvdXRlclN0YXRlU25hcHNob3QpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcclxuICAgIHJldHVybiB0aGlzLmNhbkFjdGl2YXRlKHJvdXRlLCBzdGF0ZSlcclxuICB9XHJcbn1cclxuIl0sIm5hbWVzIjpbInJvdXRlciIsInRhcCIsImNhdGNoRXJyb3IiLCJvZiIsIkluamVjdGFibGUiLCJSb3V0ZXIiLCJBdXRoU2VydmljZSIsIm1hcCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBO1FBZ0JFLG1CQUFzQkEsU0FBYyxFQUFZLElBQWlCO1lBQTNDLFdBQU0sR0FBTkEsU0FBTSxDQUFRO1lBQVksU0FBSSxHQUFKLElBQUksQ0FBYTtTQUFJOzs7Ozs7UUFFckUsK0JBQVc7Ozs7O1lBQVgsVUFDRSxLQUE2QixFQUM3QixLQUEwQjtnQkFGNUIsaUJBY0M7Z0JBVkMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLElBQUksQ0FDM0JDLGFBQUcsQ0FBQyxVQUFDLE1BQU07b0JBQ1QsSUFBSSxDQUFDLE1BQU0sRUFBRTt3QkFDWCxLQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEtBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQTtxQkFDNUM7aUJBQ0YsQ0FBQyxFQUNGQyxvQkFBVSxDQUFDLFVBQUMsQ0FBQztvQkFDWCxPQUFPQyxPQUFFLENBQUMsS0FBSyxDQUFDLENBQUE7aUJBQ2pCLENBQUMsQ0FDSCxDQUFBO2FBQ0Y7Ozs7OztRQUVELG9DQUFnQjs7Ozs7WUFBaEIsVUFDRSxLQUE2QixFQUM3QixLQUEwQjtnQkFFMUIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQTthQUN0Qzs7b0JBekJGQyxlQUFVOzs7Ozt3QkFWVEMsYUFBTTt3QkFRQ0MsbUJBQVc7Ozt3QkFacEI7Ozs7Ozs7QUNBQTtRQWVFLHFCQUF1Qk4sU0FBYyxFQUFZLElBQWlCO1lBQTNDLFdBQU0sR0FBTkEsU0FBTSxDQUFRO1lBQVksU0FBSSxHQUFKLElBQUksQ0FBYTtTQUFJOzs7Ozs7UUFFdEUsaUNBQVc7Ozs7O1lBQVgsVUFBYSxLQUE2QixFQUFFLEtBQTBCO2dCQUF0RSxpQkFjQztnQkFiQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsSUFBSSxDQUMzQkMsYUFBRyxDQUFDLFVBQUMsTUFBTTtvQkFDVCxJQUFHLE1BQU0sRUFBQzt3QkFDUixLQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEtBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQTtxQkFDOUM7aUJBQ0YsQ0FBQyxFQUNGTSxhQUFHLENBQUMsVUFBQyxNQUFNO29CQUNULE9BQU8sQ0FBQyxNQUFNLENBQUE7aUJBQ2YsQ0FBQyxFQUNGTCxvQkFBVSxDQUFDLFVBQUMsQ0FBQztvQkFDWCxPQUFPQyxPQUFFLENBQUMsSUFBSSxDQUFDLENBQUE7aUJBQ2hCLENBQUMsQ0FDSCxDQUFBO2FBQ0Y7Ozs7OztRQUVELHNDQUFnQjs7Ozs7WUFBaEIsVUFBa0IsS0FBNkIsRUFBRSxLQUEwQjtnQkFDekUsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQTthQUN0Qzs7b0JBdEJGQyxlQUFVOzs7Ozt3QkFUVEMsYUFBTTt3QkFPQ0MsbUJBQVc7OzswQkFYcEI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OyJ9