ngx-firebase-cms
Version:
Angular Content Management System using Google Firebase (Authentication, Storage & Firestore)
111 lines • 7.42 kB
JavaScript
/**
* @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";
var AuthGuard = /** @class */ (function () {
function AuthGuard(auth, config, route, router) {
this.auth = auth;
this.config = config;
this.route = route;
this.router = router;
}
/**
* @param {?} next
* @param {?} state
* @return {?}
*/
AuthGuard.prototype.canActivate = /**
* @param {?} next
* @param {?} state
* @return {?}
*/
function (next, state) {
var _this = this;
/** @type {?} */
var adminURL = this.config.adminURL || 'admin';
return this.auth.user$.pipe(take(1), map((/**
* @param {?} user
* @return {?}
*/
function (user) {
if (user && user.roles) {
/** @type {?} */
var roles_1 = (/** @type {?} */ (next.data["roles"]));
/** @type {?} */
var isAuth_1 = false;
user.roles.forEach((/**
* @param {?} userRole
* @return {?}
*/
function (userRole) {
if (roles_1.indexOf(userRole) > -1) {
isAuth_1 = true;
}
}));
return isAuth_1;
}
else {
return false;
}
})), tap((/**
* @param {?} isAuth
* @return {?}
*/
function (isAuth) {
if (!isAuth) {
_this.auth.signOut().then((/**
* @param {?} res
* @return {?}
*/
function (res) {
_this.router.navigate([adminURL + "/login"]);
}));
}
})));
};
AuthGuard.decorators = [
{ type: Injectable, args: [{
providedIn: 'root'
},] }
];
/** @nocollapse */
AuthGuard.ctorParameters = function () { return [
{ 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" });
return AuthGuard;
}());
export { AuthGuard };
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5ndWFyZC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1maXJlYmFzZS1jbXMvIiwic291cmNlcyI6WyJsaWIvZ3VhcmQvYXV0aC5ndWFyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0QsT0FBTyxFQUFxRSxNQUFNLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFNUgsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7O0FBR2hEO0lBSUUsbUJBQ1UsSUFBaUIsRUFDRixNQUFpQixFQUNoQyxLQUFxQixFQUNyQixNQUFjO1FBSGQsU0FBSSxHQUFKLElBQUksQ0FBYTtRQUNGLFdBQU0sR0FBTixNQUFNLENBQVc7UUFDaEMsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFDckIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtJQUNwQixDQUFDOzs7Ozs7SUFFTCwrQkFBVzs7Ozs7SUFBWCxVQUNFLElBQTRCLEVBQzVCLEtBQTBCO1FBRjVCLGlCQTRCQzs7WUF6QkssUUFBUSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxJQUFJLE9BQU87UUFDOUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQ3pCLElBQUksQ0FBQyxDQUFDLENBQUMsRUFDUCxHQUFHOzs7O1FBQUMsVUFBQSxJQUFJO1lBQ04sSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTs7b0JBQ2xCLE9BQUssR0FBRyxtQkFBQSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFpQjs7b0JBQzNDLFFBQU0sR0FBRyxLQUFLO2dCQUNsQixJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU87Ozs7Z0JBQUMsVUFBQSxRQUFRO29CQUN6QixJQUFJLE9BQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUU7d0JBQ2hDLFFBQU0sR0FBRyxJQUFJLENBQUE7cUJBQ2Q7Z0JBQ0gsQ0FBQyxFQUFDLENBQUE7Z0JBQ0YsT0FBTyxRQUFNLENBQUE7YUFDZDtpQkFBTTtnQkFDTCxPQUFPLEtBQUssQ0FBQTthQUNiO1FBQ0gsQ0FBQyxFQUFDLEVBQ0YsR0FBRzs7OztRQUFDLFVBQUEsTUFBTTtZQUNSLElBQUksQ0FBQyxNQUFNLEVBQUU7Z0JBQ1gsS0FBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJOzs7O2dCQUFDLFVBQUEsR0FBRztvQkFDMUIsS0FBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBSSxRQUFRLFdBQVEsQ0FBQyxDQUFDLENBQUE7Z0JBQzdDLENBQUMsRUFBQyxDQUFBO2FBQ0g7UUFDSCxDQUFDLEVBQUMsQ0FDSCxDQUFBO0lBQ0gsQ0FBQzs7Z0JBdkNGLFVBQVUsU0FBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7Ozs7Z0JBTlEsV0FBVztnREFVZixNQUFNLFNBQUMsS0FBSztnQkFabUUsY0FBYztnQkFBdEIsTUFBTTs7O29CQURsRjtDQStDQyxBQXhDRCxJQXdDQztTQXJDWSxTQUFTOzs7Ozs7SUFFbEIseUJBQXlCOzs7OztJQUN6QiwyQkFBd0M7Ozs7O0lBQ3hDLDBCQUE2Qjs7Ozs7SUFDN0IsMkJBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgaW5qZWN0LCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENhbkFjdGl2YXRlLCBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBSb3V0ZXJTdGF0ZVNuYXBzaG90LCBVcmxUcmVlLCBSb3V0ZXIsIEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZS9hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHsgdGFrZSwgbWFwLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBFbnZDb25maWcgfSBmcm9tICcuLi9pbnRlcmZhY2UvZW52LWNvbmZpZyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEF1dGhHdWFyZCBpbXBsZW1lbnRzIENhbkFjdGl2YXRlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBhdXRoOiBBdXRoU2VydmljZSxcbiAgICBASW5qZWN0KCdlbnYnKSBwcml2YXRlIGNvbmZpZzogRW52Q29uZmlnLFxuICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXJcbiAgKSB7IH1cblxuICBjYW5BY3RpdmF0ZShcbiAgICBuZXh0OiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LFxuICAgIHN0YXRlOiBSb3V0ZXJTdGF0ZVNuYXBzaG90KTogT2JzZXJ2YWJsZTxib29sZWFuPiB8IFByb21pc2U8Ym9vbGVhbj4gfCBib29sZWFuIHtcbiAgICBsZXQgYWRtaW5VUkwgPSB0aGlzLmNvbmZpZy5hZG1pblVSTCB8fCAnYWRtaW4nXG4gICAgcmV0dXJuIHRoaXMuYXV0aC51c2VyJC5waXBlKFxuICAgICAgdGFrZSgxKSxcbiAgICAgIG1hcCh1c2VyID0+IHtcbiAgICAgICAgaWYgKHVzZXIgJiYgdXNlci5yb2xlcykge1xuICAgICAgICAgIGxldCByb2xlcyA9IG5leHQuZGF0YVtcInJvbGVzXCJdIGFzIEFycmF5PHN0cmluZz5cbiAgICAgICAgICBsZXQgaXNBdXRoID0gZmFsc2VcbiAgICAgICAgICB1c2VyLnJvbGVzLmZvckVhY2godXNlclJvbGUgPT4ge1xuICAgICAgICAgICAgaWYgKHJvbGVzLmluZGV4T2YodXNlclJvbGUpID4gLTEpIHtcbiAgICAgICAgICAgICAgaXNBdXRoID0gdHJ1ZVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pXG4gICAgICAgICAgcmV0dXJuIGlzQXV0aFxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgICB9XG4gICAgICB9KSxcbiAgICAgIHRhcChpc0F1dGggPT4ge1xuICAgICAgICBpZiAoIWlzQXV0aCkge1xuICAgICAgICAgIHRoaXMuYXV0aC5zaWduT3V0KCkudGhlbihyZXMgPT4ge1xuICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW2Ake2FkbWluVVJMfS9sb2dpbmBdKVxuICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKVxuICB9XG59XG4iXX0=