UNPKG

@spartacus/core

Version:

Spartacus - the core framework

30 lines 4.24 kB
import { Injectable } from '@angular/core'; import { of } from 'rxjs'; import * as i0 from "@angular/core"; import * as i1 from "./protected-routes.service"; import * as i2 from "../../auth/user-auth/guards/auth.guard"; export class ProtectedRoutesGuard { constructor(service, authGuard) { this.service = service; this.authGuard = authGuard; } /** * When the anticipated url is protected, it switches to the AuthGuard. Otherwise emits true. */ canActivate(route) { let urlSegments = route.url.map((seg) => seg.path); // For the root path `/` ActivatedRoute contains an empty array of segments: urlSegments = urlSegments.length ? urlSegments : ['']; if (this.service.isUrlProtected(urlSegments)) { return this.authGuard.canActivate(); } return of(true); } } ProtectedRoutesGuard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: ProtectedRoutesGuard, deps: [{ token: i1.ProtectedRoutesService }, { token: i2.AuthGuard }], target: i0.ɵɵFactoryTarget.Injectable }); ProtectedRoutesGuard.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: ProtectedRoutesGuard, providedIn: 'root' }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: ProtectedRoutesGuard, decorators: [{ type: Injectable, args: [{ providedIn: 'root' }] }], ctorParameters: function () { return [{ type: i1.ProtectedRoutesService }, { type: i2.AuthGuard }]; } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdGVjdGVkLXJvdXRlcy5ndWFyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL3JvdXRpbmcvcHJvdGVjdGVkLXJvdXRlcy9wcm90ZWN0ZWQtcm91dGVzLmd1YXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7OztBQUt0QyxNQUFNLE9BQU8sb0JBQW9CO0lBQy9CLFlBQ1ksT0FBK0IsRUFDL0IsU0FBb0I7UUFEcEIsWUFBTyxHQUFQLE9BQU8sQ0FBd0I7UUFDL0IsY0FBUyxHQUFULFNBQVMsQ0FBVztJQUM3QixDQUFDO0lBRUo7O09BRUc7SUFDSCxXQUFXLENBQUMsS0FBNkI7UUFDdkMsSUFBSSxXQUFXLEdBQWEsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUU3RCw0RUFBNEU7UUFDNUUsV0FBVyxHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUV0RCxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxFQUFFO1lBQzVDLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUNyQztRQUNELE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xCLENBQUM7O2lIQW5CVSxvQkFBb0I7cUhBQXBCLG9CQUFvQixjQURQLE1BQU07MkZBQ25CLG9CQUFvQjtrQkFEaEMsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBDYW5BY3RpdmF0ZSwgVXJsVHJlZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQXV0aEd1YXJkIH0gZnJvbSAnLi4vLi4vYXV0aC91c2VyLWF1dGgvZ3VhcmRzL2F1dGguZ3VhcmQnO1xuaW1wb3J0IHsgUHJvdGVjdGVkUm91dGVzU2VydmljZSB9IGZyb20gJy4vcHJvdGVjdGVkLXJvdXRlcy5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBQcm90ZWN0ZWRSb3V0ZXNHdWFyZCBpbXBsZW1lbnRzIENhbkFjdGl2YXRlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIHNlcnZpY2U6IFByb3RlY3RlZFJvdXRlc1NlcnZpY2UsXG4gICAgcHJvdGVjdGVkIGF1dGhHdWFyZDogQXV0aEd1YXJkXG4gICkge31cblxuICAvKipcbiAgICogV2hlbiB0aGUgYW50aWNpcGF0ZWQgdXJsIGlzIHByb3RlY3RlZCwgaXQgc3dpdGNoZXMgdG8gdGhlIEF1dGhHdWFyZC4gT3RoZXJ3aXNlIGVtaXRzIHRydWUuXG4gICAqL1xuICBjYW5BY3RpdmF0ZShyb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCk6IE9ic2VydmFibGU8Ym9vbGVhbiB8IFVybFRyZWU+IHtcbiAgICBsZXQgdXJsU2VnbWVudHM6IHN0cmluZ1tdID0gcm91dGUudXJsLm1hcCgoc2VnKSA9PiBzZWcucGF0aCk7XG5cbiAgICAvLyBGb3IgdGhlIHJvb3QgcGF0aCBgL2AgQWN0aXZhdGVkUm91dGUgY29udGFpbnMgYW4gZW1wdHkgYXJyYXkgb2Ygc2VnbWVudHM6XG4gICAgdXJsU2VnbWVudHMgPSB1cmxTZWdtZW50cy5sZW5ndGggPyB1cmxTZWdtZW50cyA6IFsnJ107XG5cbiAgICBpZiAodGhpcy5zZXJ2aWNlLmlzVXJsUHJvdGVjdGVkKHVybFNlZ21lbnRzKSkge1xuICAgICAgcmV0dXJuIHRoaXMuYXV0aEd1YXJkLmNhbkFjdGl2YXRlKCk7XG4gICAgfVxuICAgIHJldHVybiBvZih0cnVlKTtcbiAgfVxufVxuIl19