UNPKG

7.04 kBJavaScriptView Raw
1/**
2 * @fileoverview added by tsickle
3 * @suppress {checkTypes} checked by tsc
4 */
5import { Injectable } from '@angular/core';
6import { NacoService } from '../domains/services/naco.service';
7import { first, map } from 'rxjs/internal/operators';
8import { Storage } from '@ubud/storage';
9import { PlatformLocation } from '@angular/common';
10export class AuthenticatedGuard {
11 /**
12 * @param {?} naco
13 * @param {?} storage
14 * @param {?} platformLocation
15 */
16 constructor(naco, storage, platformLocation) {
17 this.naco = naco;
18 this.storage = storage;
19 this.platformLocation = platformLocation;
20 }
21 /**
22 * @param {?} route
23 * @return {?}
24 */
25 canActivate(route) {
26 return this.naco.getUser().pipe(first(), map((user) => {
27 if (null === user) {
28 const /** @type {?} */ base = this.rtrim((/** @type {?} */ (this.platformLocation)).location.href);
29 const /** @type {?} */ uri = this.naco.buildNestedUri(route.root);
30 const /** @type {?} */ next = base.replace(uri, '') + '/' + this.ltrim(uri);
31 const /** @type {?} */ origin = base.replace(uri, '');
32 this.storage.set('naco_intended_url', next).then(() => {
33 window.location.href = this.naco.login('basic email', origin + '/auth');
34 });
35 }
36 return !!user;
37 }));
38 }
39 /**
40 * @param {?} route
41 * @return {?}
42 */
43 canActivateChild(route) {
44 return this.canActivate(route);
45 }
46 /**
47 * @param {?} text
48 * @return {?}
49 */
50 ltrim(text) {
51 return text.replace(/^\/+/, '');
52 }
53 /**
54 * @param {?} text
55 * @return {?}
56 */
57 rtrim(text) {
58 return text.replace(/\/+$/, '');
59 }
60}
61AuthenticatedGuard.decorators = [
62 { type: Injectable },
63];
64/** @nocollapse */
65AuthenticatedGuard.ctorParameters = () => [
66 { type: NacoService },
67 { type: Storage },
68 { type: PlatformLocation }
69];
70function AuthenticatedGuard_tsickle_Closure_declarations() {
71 /** @type {?} */
72 AuthenticatedGuard.prototype.naco;
73 /** @type {?} */
74 AuthenticatedGuard.prototype.storage;
75 /** @type {?} */
76 AuthenticatedGuard.prototype.platformLocation;
77}
78
79//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aGVudGljYXRlZC5ndWFyZC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuYWtlci9uYWNvLyIsInNvdXJjZXMiOlsiZ3VhcmRzL2F1dGhlbnRpY2F0ZWQuZ3VhcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFHckQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV4QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUduRCxNQUFNOzs7Ozs7Z0JBQ3lCLElBQWlCLEVBQVUsT0FBZ0IsRUFBVSxnQkFBa0M7UUFBdkYsU0FBSSxHQUFKLElBQUksQ0FBYTtRQUFVLFlBQU8sR0FBUCxPQUFPLENBQVM7UUFBVSxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCOzs7Ozs7SUFHM0csV0FBVyxDQUFDLEtBQTZCO1FBQzVDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQzNCLEtBQUssRUFBRSxFQUNQLEdBQUcsQ0FBQyxDQUFDLElBQWlCLEVBQUUsRUFBRTtZQUN0QixJQUFJLElBQUksS0FBSyxJQUFJLEVBQUU7Z0JBQ2YsdUJBQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsbUJBQUMsSUFBSSxDQUFDLGdCQUF1QixFQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUN0RSx1QkFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNqRCx1QkFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQzNELHVCQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQztnQkFFckMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRTtvQkFDbEQsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQ2xDLGFBQWEsRUFDYixNQUFNLEdBQUcsT0FBTyxDQUNuQixDQUFDO2lCQUNMLENBQUMsQ0FBQzthQUNOO1lBRUQsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDO1NBQ2pCLENBQUMsQ0FDTCxDQUFDOzs7Ozs7SUFHQyxnQkFBZ0IsQ0FBQyxLQUE2QjtRQUNqRCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7Ozs7OztJQUczQixLQUFLLENBQUMsSUFBWTtRQUN0QixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFDLEVBQUUsQ0FBQyxDQUFDOzs7Ozs7SUFHM0IsS0FBSyxDQUFDLElBQVk7UUFDdEIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBQyxFQUFFLENBQUMsQ0FBQzs7OztZQXJDdEMsVUFBVTs7OztZQVJGLFdBQVc7WUFJWCxPQUFPO1lBRVAsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2FuQWN0aXZhdGUsIENhbkFjdGl2YXRlQ2hpbGQgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgTmFjb1NlcnZpY2UgfSBmcm9tICcuLi9kb21haW5zL3NlcnZpY2VzL25hY28uc2VydmljZSc7XG5pbXBvcnQgeyBmaXJzdCwgbWFwIH0gZnJvbSAncnhqcy9pbnRlcm5hbC9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgVXNlciB9IGZyb20gJy4uL2RvbWFpbnMvbW9kZWxzL3VzZXInO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgU3RvcmFnZSB9IGZyb20gJ0B1YnVkL3N0b3JhZ2UnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlci9zcmMvcm91dGVyX3N0YXRlJztcbmltcG9ydCB7IFBsYXRmb3JtTG9jYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQXV0aGVudGljYXRlZEd1YXJkIGltcGxlbWVudHMgQ2FuQWN0aXZhdGUsIENhbkFjdGl2YXRlQ2hpbGQge1xuICAgIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcml2YXRlIG5hY286IE5hY29TZXJ2aWNlLCBwcml2YXRlIHN0b3JhZ2U6IFN0b3JhZ2UsIHByaXZhdGUgcGxhdGZvcm1Mb2NhdGlvbjogUGxhdGZvcm1Mb2NhdGlvbikge1xuICAgIH1cblxuICAgIHB1YmxpYyBjYW5BY3RpdmF0ZShyb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5uYWNvLmdldFVzZXIoKS5waXBlKFxuICAgICAgICAgICAgZmlyc3QoKSxcbiAgICAgICAgICAgIG1hcCgodXNlcjogVXNlciB8IG51bGwpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAobnVsbCA9PT0gdXNlcikge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBiYXNlID0gdGhpcy5ydHJpbSgodGhpcy5wbGF0Zm9ybUxvY2F0aW9uIGFzIGFueSkubG9jYXRpb24uaHJlZik7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHVyaSA9IHRoaXMubmFjby5idWlsZE5lc3RlZFVyaShyb3V0ZS5yb290KTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbmV4dCA9IGJhc2UucmVwbGFjZSh1cmksICcnKSArICcvJyArIHRoaXMubHRyaW0odXJpKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgb3JpZ2luID0gYmFzZS5yZXBsYWNlKHVyaSwgJycpO1xuXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3RvcmFnZS5zZXQoJ25hY29faW50ZW5kZWRfdXJsJywgbmV4dCkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IHRoaXMubmFjby5sb2dpbihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYmFzaWMgZW1haWwnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yaWdpbiArICcvYXV0aCcsXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gISF1c2VyO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIGNhbkFjdGl2YXRlQ2hpbGQocm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2FuQWN0aXZhdGUocm91dGUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgbHRyaW0odGV4dDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRleHQucmVwbGFjZSgvXlxcLysvLCcnKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJ0cmltKHRleHQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0ZXh0LnJlcGxhY2UoL1xcLyskLywnJyk7XG4gICAgfVxufVxuIl19
\No newline at end of file