@iotize/ionic
Version:
Iotize specific building blocks on top of @ionic/angular.
39 lines • 5.64 kB
JavaScript
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=