@spartacus/core
Version:
Spartacus - the core framework
30 lines • 4.24 kB
JavaScript
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