UNPKG

@iotize/ionic

Version:

Iotize specific building blocks on top of @ionic/angular.

39 lines 5.64 kB
import { Injectable } from '@angular/core'; import { CurrentDeviceService } from '@iotize/ionic'; import { defer, Subject } from 'rxjs'; import { map } from 'rxjs/operators'; import { debug } from './debug'; import * as i0 from "@angular/core"; import * as i1 from "@iotize/ionic"; export class DeviceAuthGuard { tapService; _unauthorizedUser = new Subject(); unauthorizedPageAccessEvent = this._unauthorizedUser.asObservable(); constructor(tapService) { this.tapService = tapService; } canActivate(route, state) { if (!route.data.username) { return true; } return defer(() => this.tapService.isLoggedInAsUserOrProfileName(route.data.username)).pipe(map((isLoggedAs) => { if (!isLoggedAs) { debug(`User "${this.tapService.sessionStateSnapshot.name}" is not authorized to access "${route.url}" (required profile: "${route.data.username}")`); this._unauthorizedUser.next({ route, state, }); } return isLoggedAs; })); } /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DeviceAuthGuard, deps: [{ token: i1.CurrentDeviceService }], target: i0.ɵɵFactoryTarget.Injectable }); /** @nocollapse */ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DeviceAuthGuard, providedIn: 'root' }); } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DeviceAuthGuard, decorators: [{ type: Injectable, args: [{ providedIn: 'root', }] }], ctorParameters: () => [{ type: i1.CurrentDeviceService }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2aWNlLWF1dGguZ3VhcmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pb3RpemUtaW9uaWMvYXV0aC9zcmMvbGliL2RldmljZS1hdXRoLmd1YXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFNM0MsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxLQUFLLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sU0FBUyxDQUFDOzs7QUFVaEMsTUFBTSxPQUFPLGVBQWU7SUFPTjtJQU5ILGlCQUFpQixHQUNoQyxJQUFJLE9BQU8sRUFBc0MsQ0FBQztJQUUzQywyQkFBMkIsR0FDbEMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBRXhDLFlBQW9CLFVBQWdDO1FBQWhDLGVBQVUsR0FBVixVQUFVLENBQXNCO0lBQUcsQ0FBQztJQUV4RCxXQUFXLENBQ1QsS0FBNkIsRUFDN0IsS0FBMEI7UUFFMUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDekIsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQ2hCLElBQUksQ0FBQyxVQUFVLENBQUMsNkJBQTZCLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FDbkUsQ0FBQyxJQUFJLENBQ0osR0FBRyxDQUFDLENBQUMsVUFBbUIsRUFBRSxFQUFFO1lBQzFCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztnQkFDaEIsS0FBSyxDQUNILFNBQVMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLGtDQUFrQyxLQUFLLENBQUMsR0FBRyx5QkFBeUIsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksQ0FDOUksQ0FBQztnQkFDRixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDO29CQUMxQixLQUFLO29CQUNMLEtBQUs7aUJBQ04sQ0FBQyxDQUFDO1lBQ0wsQ0FBQztZQUNELE9BQU8sVUFBVSxDQUFDO1FBQ3BCLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDOzJIQWhDVSxlQUFlOytIQUFmLGVBQWUsY0FGZCxNQUFNOzs0RkFFUCxlQUFlO2tCQUgzQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEFjdGl2YXRlZFJvdXRlU25hcHNob3QsXG4gIENhbkFjdGl2YXRlLFxuICBSb3V0ZXJTdGF0ZVNuYXBzaG90LFxufSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQ3VycmVudERldmljZVNlcnZpY2UgfSBmcm9tICdAaW90aXplL2lvbmljJztcbmltcG9ydCB7IGRlZmVyLCBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IGRlYnVnIH0gZnJvbSAnLi9kZWJ1Zyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVW5hdXRob3JpemVkVGFwVXNlclBhZ2VBY2Nlc3NFdmVudCB7XG4gIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90O1xuICBzdGF0ZTogUm91dGVyU3RhdGVTbmFwc2hvdDtcbn1cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIERldmljZUF1dGhHdWFyZCBpbXBsZW1lbnRzIENhbkFjdGl2YXRlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBfdW5hdXRob3JpemVkVXNlciA9XG4gICAgbmV3IFN1YmplY3Q8VW5hdXRob3JpemVkVGFwVXNlclBhZ2VBY2Nlc3NFdmVudD4oKTtcblxuICByZWFkb25seSB1bmF1dGhvcml6ZWRQYWdlQWNjZXNzRXZlbnQ6IE9ic2VydmFibGU8VW5hdXRob3JpemVkVGFwVXNlclBhZ2VBY2Nlc3NFdmVudD4gPVxuICAgIHRoaXMuX3VuYXV0aG9yaXplZFVzZXIuYXNPYnNlcnZhYmxlKCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSB0YXBTZXJ2aWNlOiBDdXJyZW50RGV2aWNlU2VydmljZSkge31cblxuICBjYW5BY3RpdmF0ZShcbiAgICByb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCxcbiAgICBzdGF0ZTogUm91dGVyU3RhdGVTbmFwc2hvdFxuICApOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHwgYm9vbGVhbiB7XG4gICAgaWYgKCFyb3V0ZS5kYXRhLnVzZXJuYW1lKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGRlZmVyKCgpID0+XG4gICAgICB0aGlzLnRhcFNlcnZpY2UuaXNMb2dnZWRJbkFzVXNlck9yUHJvZmlsZU5hbWUocm91dGUuZGF0YS51c2VybmFtZSlcbiAgICApLnBpcGUoXG4gICAgICBtYXAoKGlzTG9nZ2VkQXM6IGJvb2xlYW4pID0+IHtcbiAgICAgICAgaWYgKCFpc0xvZ2dlZEFzKSB7XG4gICAgICAgICAgZGVidWcoXG4gICAgICAgICAgICBgVXNlciBcIiR7dGhpcy50YXBTZXJ2aWNlLnNlc3Npb25TdGF0ZVNuYXBzaG90Lm5hbWV9XCIgaXMgbm90IGF1dGhvcml6ZWQgdG8gYWNjZXNzIFwiJHtyb3V0ZS51cmx9XCIgKHJlcXVpcmVkIHByb2ZpbGU6IFwiJHtyb3V0ZS5kYXRhLnVzZXJuYW1lfVwiKWBcbiAgICAgICAgICApO1xuICAgICAgICAgIHRoaXMuX3VuYXV0aG9yaXplZFVzZXIubmV4dCh7XG4gICAgICAgICAgICByb3V0ZSxcbiAgICAgICAgICAgIHN0YXRlLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBpc0xvZ2dlZEFzO1xuICAgICAgfSlcbiAgICApO1xuICB9XG59XG4iXX0=