UNPKG

@isaiahiroko/ng-guards

Version:

Angular routes guards to detect authenticated or unauthenticated users

116 lines (109 loc) 7.56 kB
import { Injectable } from '@angular/core'; import { Router } from '@angular/router'; import { of } from 'rxjs'; import { tap, catchError, map } from 'rxjs/operators'; import { AuthService } from '@isaiahiroko/ng-utils'; /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc */ class AuthGuard { /** * @param {?} router * @param {?} auth */ constructor(router, auth) { this.router = router; this.auth = auth; } /** * @param {?} route * @param {?} state * @return {?} */ canActivate(route, state) { return this.auth.check().pipe(tap((status) => { if (!status) { this.router.navigate([this.auth.signInUrl]); } }), catchError((e) => { return of(false); })); } /** * @param {?} route * @param {?} state * @return {?} */ canActivateChild(route, state) { return this.canActivate(route, state); } } AuthGuard.decorators = [ { type: Injectable }, ]; /** @nocollapse */ AuthGuard.ctorParameters = () => [ { type: Router }, { type: AuthService } ]; /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc */ class UnauthGuard { /** * @param {?} router * @param {?} auth */ constructor(router, auth) { this.router = router; this.auth = auth; } /** * @param {?} route * @param {?} state * @return {?} */ canActivate(route, state) { return this.auth.check().pipe(tap((status) => { if (status) { this.router.navigate([this.auth.intendedUrl]); } }), map((status) => { return !status; }), catchError((e) => { return of(true); })); } /** * @param {?} route * @param {?} state * @return {?} */ canActivateChild(route, state) { return this.canActivate(route, state); } } UnauthGuard.decorators = [ { type: Injectable }, ]; /** @nocollapse */ UnauthGuard.ctorParameters = () => [ { type: Router }, { type: AuthService } ]; /** * @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 */ export { AuthGuard, UnauthGuard }; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXNhaWFoaXJva28tbmctZ3VhcmRzLmpzLm1hcCIsInNvdXJjZXMiOlsibmc6Ly9AaXNhaWFoaXJva28vbmctZ3VhcmRzL2xpYi9hdXRoLmd1YXJkLnRzIiwibmc6Ly9AaXNhaWFoaXJva28vbmctZ3VhcmRzL2xpYi91bmF1dGguZ3VhcmQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXHJcbmltcG9ydCB7XHJcbiAgQ2FuQWN0aXZhdGUsXHJcbiAgQ2FuQWN0aXZhdGVDaGlsZCxcclxuICBSb3V0ZXIsXHJcbiAgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCxcclxuICBSb3V0ZXJTdGF0ZVNuYXBzaG90LFxyXG59IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcidcclxuXHJcbmltcG9ydCB7IE9ic2VydmFibGUgLCAgb2YgfSBmcm9tICdyeGpzJ1xyXG5pbXBvcnQgeyB0YXAgLCAgY2F0Y2hFcnJvciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xyXG5cclxuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICdAaXNhaWFoaXJva28vbmctdXRpbHMnXHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBBdXRoR3VhcmQgaW1wbGVtZW50cyBDYW5BY3RpdmF0ZSwgQ2FuQWN0aXZhdGVDaGlsZCB7XHJcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIHJvdXRlcjogUm91dGVyLCBwcm90ZWN0ZWQgYXV0aDogQXV0aFNlcnZpY2UpIHt9XHJcblxyXG4gIGNhbkFjdGl2YXRlKFxyXG4gICAgcm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsXHJcbiAgICBzdGF0ZTogUm91dGVyU3RhdGVTbmFwc2hvdCxcclxuICApOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcclxuICAgIHJldHVybiB0aGlzLmF1dGguY2hlY2soKS5waXBlKFxyXG4gICAgICB0YXAoKHN0YXR1cykgPT4ge1xyXG4gICAgICAgIGlmICghc3RhdHVzKSB7XHJcbiAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbdGhpcy5hdXRoLnNpZ25JblVybF0pXHJcbiAgICAgICAgfVxyXG4gICAgICB9KSxcclxuICAgICAgY2F0Y2hFcnJvcigoZSkgPT4ge1xyXG4gICAgICAgIHJldHVybiBvZihmYWxzZSlcclxuICAgICAgfSksXHJcbiAgICApXHJcbiAgfVxyXG5cclxuICBjYW5BY3RpdmF0ZUNoaWxkKFxyXG4gICAgcm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsXHJcbiAgICBzdGF0ZTogUm91dGVyU3RhdGVTbmFwc2hvdCxcclxuICApOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcclxuICAgIHJldHVybiB0aGlzLmNhbkFjdGl2YXRlKHJvdXRlLCBzdGF0ZSlcclxuICB9XHJcbn1cclxuIiwiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXHJcbmltcG9ydCB7XHJcbiAgQ2FuQWN0aXZhdGUsXHJcbiAgQ2FuQWN0aXZhdGVDaGlsZCxcclxuICBSb3V0ZXIsXHJcbiAgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCxcclxuICBSb3V0ZXJTdGF0ZVNuYXBzaG90IH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJ1xyXG4gIFxyXG5pbXBvcnQgeyBPYnNlcnZhYmxlICwgIG9mIH0gZnJvbSAncnhqcydcclxuaW1wb3J0IHsgbWFwICwgIHRhcCAsICBjYXRjaEVycm9yIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXHJcblxyXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJ0Bpc2FpYWhpcm9rby9uZy11dGlscydcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIFVuYXV0aEd1YXJkIGltcGxlbWVudHMgQ2FuQWN0aXZhdGUge1xyXG4gIGNvbnN0cnVjdG9yIChwcm90ZWN0ZWQgcm91dGVyOiBSb3V0ZXIsIHByb3RlY3RlZCBhdXRoOiBBdXRoU2VydmljZSkge31cclxuXHJcbiAgY2FuQWN0aXZhdGUgKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBzdGF0ZTogUm91dGVyU3RhdGVTbmFwc2hvdCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuYXV0aC5jaGVjaygpLnBpcGUoXHJcbiAgICAgIHRhcCgoc3RhdHVzKSA9PiB7XHJcbiAgICAgICAgaWYoc3RhdHVzKXtcclxuICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFt0aGlzLmF1dGguaW50ZW5kZWRVcmxdKVxyXG4gICAgICAgIH1cclxuICAgICAgfSksXHJcbiAgICAgIG1hcCgoc3RhdHVzKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuICFzdGF0dXNcclxuICAgICAgfSksXHJcbiAgICAgIGNhdGNoRXJyb3IoKGUpID0+IHtcclxuICAgICAgICByZXR1cm4gb2YodHJ1ZSlcclxuICAgICAgfSlcclxuICAgIClcclxuICB9XHJcblxyXG4gIGNhbkFjdGl2YXRlQ2hpbGQgKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBzdGF0ZTogUm91dGVyU3RhdGVTbmFwc2hvdCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuY2FuQWN0aXZhdGUocm91dGUsIHN0YXRlKVxyXG4gIH1cclxufVxyXG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBOzs7OztJQWdCRSxZQUFzQixNQUFjLEVBQVksSUFBaUI7UUFBM0MsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUFZLFNBQUksR0FBSixJQUFJLENBQWE7S0FBSTs7Ozs7O0lBRXJFLFdBQVcsQ0FDVCxLQUE2QixFQUM3QixLQUEwQjtRQUUxQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsSUFBSSxDQUMzQixHQUFHLENBQUMsQ0FBQyxNQUFNO1lBQ1QsSUFBSSxDQUFDLE1BQU0sRUFBRTtnQkFDWCxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQTthQUM1QztTQUNGLENBQUMsRUFDRixVQUFVLENBQUMsQ0FBQyxDQUFDO1lBQ1gsT0FBTyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUE7U0FDakIsQ0FBQyxDQUNILENBQUE7S0FDRjs7Ozs7O0lBRUQsZ0JBQWdCLENBQ2QsS0FBNkIsRUFDN0IsS0FBMEI7UUFFMUIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQTtLQUN0Qzs7O1lBekJGLFVBQVU7Ozs7WUFWVCxNQUFNO1lBUUMsV0FBVzs7Ozs7OztBQ1pwQjs7Ozs7SUFlRSxZQUF1QixNQUFjLEVBQVksSUFBaUI7UUFBM0MsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUFZLFNBQUksR0FBSixJQUFJLENBQWE7S0FBSTs7Ozs7O0lBRXRFLFdBQVcsQ0FBRSxLQUE2QixFQUFFLEtBQTBCO1FBQ3BFLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQzNCLEdBQUcsQ0FBQyxDQUFDLE1BQU07WUFDVCxJQUFHLE1BQU0sRUFBQztnQkFDUixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQTthQUM5QztTQUNGLENBQUMsRUFDRixHQUFHLENBQUMsQ0FBQyxNQUFNO1lBQ1QsT0FBTyxDQUFDLE1BQU0sQ0FBQTtTQUNmLENBQUMsRUFDRixVQUFVLENBQUMsQ0FBQyxDQUFDO1lBQ1gsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUE7U0FDaEIsQ0FBQyxDQUNILENBQUE7S0FDRjs7Ozs7O0lBRUQsZ0JBQWdCLENBQUUsS0FBNkIsRUFBRSxLQUEwQjtRQUN6RSxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFBO0tBQ3RDOzs7WUF0QkYsVUFBVTs7OztZQVRULE1BQU07WUFPQyxXQUFXOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsifQ==