@isaiahiroko/ng-guards
Version:
Angular routes guards to detect authenticated or unauthenticated users
132 lines (125 loc) • 8.33 kB
JavaScript
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
*/
var AuthGuard = /** @class */ (function () {
function AuthGuard(router, auth) {
this.router = router;
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(tap(function (status) {
if (!status) {
_this.router.navigate([_this.auth.signInUrl]);
}
}), catchError(function (e) {
return 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: Injectable },
];
/** @nocollapse */
AuthGuard.ctorParameters = function () { return [
{ type: Router },
{ type: AuthService }
]; };
return AuthGuard;
}());
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
*/
var UnauthGuard = /** @class */ (function () {
function UnauthGuard(router, auth) {
this.router = router;
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(tap(function (status) {
if (status) {
_this.router.navigate([_this.auth.intendedUrl]);
}
}), map(function (status) {
return !status;
}), catchError(function (e) {
return 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: Injectable },
];
/** @nocollapse */
UnauthGuard.ctorParameters = function () { return [
{ type: Router },
{ type: 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
*/
export { AuthGuard, UnauthGuard };
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXNhaWFoaXJva28tbmctZ3VhcmRzLmpzLm1hcCIsInNvdXJjZXMiOlsibmc6Ly9AaXNhaWFoaXJva28vbmctZ3VhcmRzL2xpYi9hdXRoLmd1YXJkLnRzIiwibmc6Ly9AaXNhaWFoaXJva28vbmctZ3VhcmRzL2xpYi91bmF1dGguZ3VhcmQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXHJcbmltcG9ydCB7XHJcbiAgQ2FuQWN0aXZhdGUsXHJcbiAgQ2FuQWN0aXZhdGVDaGlsZCxcclxuICBSb3V0ZXIsXHJcbiAgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCxcclxuICBSb3V0ZXJTdGF0ZVNuYXBzaG90LFxyXG59IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcidcclxuXHJcbmltcG9ydCB7IE9ic2VydmFibGUgLCAgb2YgfSBmcm9tICdyeGpzJ1xyXG5pbXBvcnQgeyB0YXAgLCAgY2F0Y2hFcnJvciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xyXG5cclxuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICdAaXNhaWFoaXJva28vbmctdXRpbHMnXHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBBdXRoR3VhcmQgaW1wbGVtZW50cyBDYW5BY3RpdmF0ZSwgQ2FuQWN0aXZhdGVDaGlsZCB7XHJcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIHJvdXRlcjogUm91dGVyLCBwcm90ZWN0ZWQgYXV0aDogQXV0aFNlcnZpY2UpIHt9XHJcblxyXG4gIGNhbkFjdGl2YXRlKFxyXG4gICAgcm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsXHJcbiAgICBzdGF0ZTogUm91dGVyU3RhdGVTbmFwc2hvdCxcclxuICApOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcclxuICAgIHJldHVybiB0aGlzLmF1dGguY2hlY2soKS5waXBlKFxyXG4gICAgICB0YXAoKHN0YXR1cykgPT4ge1xyXG4gICAgICAgIGlmICghc3RhdHVzKSB7XHJcbiAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbdGhpcy5hdXRoLnNpZ25JblVybF0pXHJcbiAgICAgICAgfVxyXG4gICAgICB9KSxcclxuICAgICAgY2F0Y2hFcnJvcigoZSkgPT4ge1xyXG4gICAgICAgIHJldHVybiBvZihmYWxzZSlcclxuICAgICAgfSksXHJcbiAgICApXHJcbiAgfVxyXG5cclxuICBjYW5BY3RpdmF0ZUNoaWxkKFxyXG4gICAgcm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsXHJcbiAgICBzdGF0ZTogUm91dGVyU3RhdGVTbmFwc2hvdCxcclxuICApOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcclxuICAgIHJldHVybiB0aGlzLmNhbkFjdGl2YXRlKHJvdXRlLCBzdGF0ZSlcclxuICB9XHJcbn1cclxuIiwiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXHJcbmltcG9ydCB7XHJcbiAgQ2FuQWN0aXZhdGUsXHJcbiAgQ2FuQWN0aXZhdGVDaGlsZCxcclxuICBSb3V0ZXIsXHJcbiAgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCxcclxuICBSb3V0ZXJTdGF0ZVNuYXBzaG90IH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJ1xyXG4gIFxyXG5pbXBvcnQgeyBPYnNlcnZhYmxlICwgIG9mIH0gZnJvbSAncnhqcydcclxuaW1wb3J0IHsgbWFwICwgIHRhcCAsICBjYXRjaEVycm9yIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXHJcblxyXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJ0Bpc2FpYWhpcm9rby9uZy11dGlscydcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIFVuYXV0aEd1YXJkIGltcGxlbWVudHMgQ2FuQWN0aXZhdGUge1xyXG4gIGNvbnN0cnVjdG9yIChwcm90ZWN0ZWQgcm91dGVyOiBSb3V0ZXIsIHByb3RlY3RlZCBhdXRoOiBBdXRoU2VydmljZSkge31cclxuXHJcbiAgY2FuQWN0aXZhdGUgKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBzdGF0ZTogUm91dGVyU3RhdGVTbmFwc2hvdCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuYXV0aC5jaGVjaygpLnBpcGUoXHJcbiAgICAgIHRhcCgoc3RhdHVzKSA9PiB7XHJcbiAgICAgICAgaWYoc3RhdHVzKXtcclxuICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFt0aGlzLmF1dGguaW50ZW5kZWRVcmxdKVxyXG4gICAgICAgIH1cclxuICAgICAgfSksXHJcbiAgICAgIG1hcCgoc3RhdHVzKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuICFzdGF0dXNcclxuICAgICAgfSksXHJcbiAgICAgIGNhdGNoRXJyb3IoKGUpID0+IHtcclxuICAgICAgICByZXR1cm4gb2YodHJ1ZSlcclxuICAgICAgfSlcclxuICAgIClcclxuICB9XHJcblxyXG4gIGNhbkFjdGl2YXRlQ2hpbGQgKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBzdGF0ZTogUm91dGVyU3RhdGVTbmFwc2hvdCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuY2FuQWN0aXZhdGUocm91dGUsIHN0YXRlKVxyXG4gIH1cclxufVxyXG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBO0lBZ0JFLG1CQUFzQixNQUFjLEVBQVksSUFBaUI7UUFBM0MsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUFZLFNBQUksR0FBSixJQUFJLENBQWE7S0FBSTs7Ozs7O0lBRXJFLCtCQUFXOzs7OztJQUFYLFVBQ0UsS0FBNkIsRUFDN0IsS0FBMEI7UUFGNUIsaUJBY0M7UUFWQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsSUFBSSxDQUMzQixHQUFHLENBQUMsVUFBQyxNQUFNO1lBQ1QsSUFBSSxDQUFDLE1BQU0sRUFBRTtnQkFDWCxLQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEtBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQTthQUM1QztTQUNGLENBQUMsRUFDRixVQUFVLENBQUMsVUFBQyxDQUFDO1lBQ1gsT0FBTyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUE7U0FDakIsQ0FBQyxDQUNILENBQUE7S0FDRjs7Ozs7O0lBRUQsb0NBQWdCOzs7OztJQUFoQixVQUNFLEtBQTZCLEVBQzdCLEtBQTBCO1FBRTFCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUE7S0FDdEM7O2dCQXpCRixVQUFVOzs7O2dCQVZULE1BQU07Z0JBUUMsV0FBVzs7b0JBWnBCOzs7Ozs7O0FDQUE7SUFlRSxxQkFBdUIsTUFBYyxFQUFZLElBQWlCO1FBQTNDLFdBQU0sR0FBTixNQUFNLENBQVE7UUFBWSxTQUFJLEdBQUosSUFBSSxDQUFhO0tBQUk7Ozs7OztJQUV0RSxpQ0FBVzs7Ozs7SUFBWCxVQUFhLEtBQTZCLEVBQUUsS0FBMEI7UUFBdEUsaUJBY0M7UUFiQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsSUFBSSxDQUMzQixHQUFHLENBQUMsVUFBQyxNQUFNO1lBQ1QsSUFBRyxNQUFNLEVBQUM7Z0JBQ1IsS0FBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxLQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUE7YUFDOUM7U0FDRixDQUFDLEVBQ0YsR0FBRyxDQUFDLFVBQUMsTUFBTTtZQUNULE9BQU8sQ0FBQyxNQUFNLENBQUE7U0FDZixDQUFDLEVBQ0YsVUFBVSxDQUFDLFVBQUMsQ0FBQztZQUNYLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFBO1NBQ2hCLENBQUMsQ0FDSCxDQUFBO0tBQ0Y7Ozs7OztJQUVELHNDQUFnQjs7Ozs7SUFBaEIsVUFBa0IsS0FBNkIsRUFBRSxLQUEwQjtRQUN6RSxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFBO0tBQ3RDOztnQkF0QkYsVUFBVTs7OztnQkFUVCxNQUFNO2dCQU9DLFdBQVc7O3NCQVhwQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7In0=