UNPKG

ngx-firebase-cms

Version:

Angular Content Management System using Google Firebase (Authentication, Storage & Firestore)

109 lines 7.18 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { Injectable, Inject } from '@angular/core'; import { Router, ActivatedRoute } from '@angular/router'; import { AuthService } from '../service/auth.service'; import { take, map, tap } from 'rxjs/operators'; import * as i0 from "@angular/core"; import * as i1 from "../service/auth.service"; import * as i2 from "@angular/router"; export class AuthGuard { /** * @param {?} auth * @param {?} config * @param {?} route * @param {?} router */ constructor(auth, config, route, router) { this.auth = auth; this.config = config; this.route = route; this.router = router; } /** * @param {?} next * @param {?} state * @return {?} */ canActivate(next, state) { /** @type {?} */ let adminURL = this.config.adminURL || 'admin'; return this.auth.user$.pipe(take(1), map((/** * @param {?} user * @return {?} */ user => { if (user && user.roles) { /** @type {?} */ let roles = (/** @type {?} */ (next.data["roles"])); /** @type {?} */ let isAuth = false; user.roles.forEach((/** * @param {?} userRole * @return {?} */ userRole => { if (roles.indexOf(userRole) > -1) { isAuth = true; } })); return isAuth; } else { return false; } })), tap((/** * @param {?} isAuth * @return {?} */ isAuth => { if (!isAuth) { this.auth.signOut().then((/** * @param {?} res * @return {?} */ res => { this.router.navigate([`${adminURL}/login`]); })); } }))); } } AuthGuard.decorators = [ { type: Injectable, args: [{ providedIn: 'root' },] } ]; /** @nocollapse */ AuthGuard.ctorParameters = () => [ { type: AuthService }, { type: undefined, decorators: [{ type: Inject, args: ['env',] }] }, { type: ActivatedRoute }, { type: Router } ]; /** @nocollapse */ AuthGuard.ngInjectableDef = i0.defineInjectable({ factory: function AuthGuard_Factory() { return new AuthGuard(i0.inject(i1.AuthService), i0.inject("env"), i0.inject(i2.ActivatedRoute), i0.inject(i2.Router)); }, token: AuthGuard, providedIn: "root" }); if (false) { /** * @type {?} * @private */ AuthGuard.prototype.auth; /** * @type {?} * @private */ AuthGuard.prototype.config; /** * @type {?} * @private */ AuthGuard.prototype.route; /** * @type {?} * @private */ AuthGuard.prototype.router; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5ndWFyZC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1maXJlYmFzZS1jbXMvIiwic291cmNlcyI6WyJsaWIvZ3VhcmQvYXV0aC5ndWFyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0QsT0FBTyxFQUFxRSxNQUFNLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFNUgsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7O0FBTWhELE1BQU0sT0FBTyxTQUFTOzs7Ozs7O0lBQ3BCLFlBQ1UsSUFBaUIsRUFDRixNQUFpQixFQUNoQyxLQUFxQixFQUNyQixNQUFjO1FBSGQsU0FBSSxHQUFKLElBQUksQ0FBYTtRQUNGLFdBQU0sR0FBTixNQUFNLENBQVc7UUFDaEMsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFDckIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtJQUNwQixDQUFDOzs7Ozs7SUFFTCxXQUFXLENBQ1QsSUFBNEIsRUFDNUIsS0FBMEI7O1lBQ3RCLFFBQVEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsSUFBSSxPQUFPO1FBQzlDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUN6QixJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQ1AsR0FBRzs7OztRQUFDLElBQUksQ0FBQyxFQUFFO1lBQ1QsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTs7b0JBQ2xCLEtBQUssR0FBRyxtQkFBQSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFpQjs7b0JBQzNDLE1BQU0sR0FBRyxLQUFLO2dCQUNsQixJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU87Ozs7Z0JBQUMsUUFBUSxDQUFDLEVBQUU7b0JBQzVCLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRTt3QkFDaEMsTUFBTSxHQUFHLElBQUksQ0FBQTtxQkFDZDtnQkFDSCxDQUFDLEVBQUMsQ0FBQTtnQkFDRixPQUFPLE1BQU0sQ0FBQTthQUNkO2lCQUFNO2dCQUNMLE9BQU8sS0FBSyxDQUFBO2FBQ2I7UUFDSCxDQUFDLEVBQUMsRUFDRixHQUFHOzs7O1FBQUMsTUFBTSxDQUFDLEVBQUU7WUFDWCxJQUFJLENBQUMsTUFBTSxFQUFFO2dCQUNYLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsSUFBSTs7OztnQkFBQyxHQUFHLENBQUMsRUFBRTtvQkFDN0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLFFBQVEsUUFBUSxDQUFDLENBQUMsQ0FBQTtnQkFDN0MsQ0FBQyxFQUFDLENBQUE7YUFDSDtRQUNILENBQUMsRUFBQyxDQUNILENBQUE7SUFDSCxDQUFDOzs7WUF2Q0YsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COzs7O1lBTlEsV0FBVzs0Q0FVZixNQUFNLFNBQUMsS0FBSztZQVptRSxjQUFjO1lBQXRCLE1BQU07Ozs7Ozs7O0lBVzlFLHlCQUF5Qjs7Ozs7SUFDekIsMkJBQXdDOzs7OztJQUN4QywwQkFBNkI7Ozs7O0lBQzdCLDJCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCwgSW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDYW5BY3RpdmF0ZSwgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgUm91dGVyU3RhdGVTbmFwc2hvdCwgVXJsVHJlZSwgUm91dGVyLCBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2UvYXV0aC5zZXJ2aWNlJztcbmltcG9ydCB7IHRha2UsIG1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRW52Q29uZmlnIH0gZnJvbSAnLi4vaW50ZXJmYWNlL2Vudi1jb25maWcnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBBdXRoR3VhcmQgaW1wbGVtZW50cyBDYW5BY3RpdmF0ZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgYXV0aDogQXV0aFNlcnZpY2UsXG4gICAgQEluamVjdCgnZW52JykgcHJpdmF0ZSBjb25maWc6IEVudkNvbmZpZyxcbiAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyXG4gICkgeyB9XG5cbiAgY2FuQWN0aXZhdGUoXG4gICAgbmV4dDogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCxcbiAgICBzdGF0ZTogUm91dGVyU3RhdGVTbmFwc2hvdCk6IE9ic2VydmFibGU8Ym9vbGVhbj4gfCBQcm9taXNlPGJvb2xlYW4+IHwgYm9vbGVhbiB7XG4gICAgbGV0IGFkbWluVVJMID0gdGhpcy5jb25maWcuYWRtaW5VUkwgfHwgJ2FkbWluJ1xuICAgIHJldHVybiB0aGlzLmF1dGgudXNlciQucGlwZShcbiAgICAgIHRha2UoMSksXG4gICAgICBtYXAodXNlciA9PiB7XG4gICAgICAgIGlmICh1c2VyICYmIHVzZXIucm9sZXMpIHtcbiAgICAgICAgICBsZXQgcm9sZXMgPSBuZXh0LmRhdGFbXCJyb2xlc1wiXSBhcyBBcnJheTxzdHJpbmc+XG4gICAgICAgICAgbGV0IGlzQXV0aCA9IGZhbHNlXG4gICAgICAgICAgdXNlci5yb2xlcy5mb3JFYWNoKHVzZXJSb2xlID0+IHtcbiAgICAgICAgICAgIGlmIChyb2xlcy5pbmRleE9mKHVzZXJSb2xlKSA+IC0xKSB7XG4gICAgICAgICAgICAgIGlzQXV0aCA9IHRydWVcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KVxuICAgICAgICAgIHJldHVybiBpc0F1dGhcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgICAgfVxuICAgICAgfSksXG4gICAgICB0YXAoaXNBdXRoID0+IHtcbiAgICAgICAgaWYgKCFpc0F1dGgpIHtcbiAgICAgICAgICB0aGlzLmF1dGguc2lnbk91dCgpLnRoZW4ocmVzID0+IHtcbiAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtgJHthZG1pblVSTH0vbG9naW5gXSlcbiAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIClcbiAgfVxufVxuIl19