UNPKG

@alauda-fe/common

Version:

Alauda frontend team common codes.

70 lines 10.4 kB
import { Injectable } from '@angular/core'; import { Router, } from '@angular/router'; import { map } from 'rxjs'; import { AuthorizationStateService } from '../../authorization/state.service'; import { getWorkspaceParams } from '../../business/resource-select/utils'; import * as i0 from "@angular/core"; import * as i1 from "@angular/router"; import * as i2 from "../../authorization/state.service"; export class ProjectNamespaceGuard { constructor(router, auth) { this.router = router; this.auth = auth; } canActivate(route, state) { if (route.queryParams.project) { return true; } return this.auth.getAccountInfo().pipe(map(({ email }) => { const params = getWorkspaceParams(email); if (typeof route.data.getWorkspaceUrl === 'function') { const workspaceUrl = route.data.getWorkspaceUrl(params, route); if (workspaceUrl) { return this.router.createUrlTree(Array.isArray(workspaceUrl) ? workspaceUrl : [workspaceUrl]); } } if (params?.project) { return this.router.createUrlTree([state.url.split('?')[0]], { queryParams: { ...state.root.queryParams, project: params.project }, }); } })); } canActivateChild(route, state) { return this.canActivate(route, state); } static { this.ɵfac = function ProjectNamespaceGuard_Factory(t) { return new (t || ProjectNamespaceGuard)(i0.ɵɵinject(i1.Router), i0.ɵɵinject(i2.AuthorizationStateService)); }; } static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: ProjectNamespaceGuard, factory: ProjectNamespaceGuard.ɵfac, providedIn: 'root' }); } } (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ProjectNamespaceGuard, [{ type: Injectable, args: [{ providedIn: 'root' }] }], () => [{ type: i1.Router }, { type: i2.AuthorizationStateService }], null); })(); export class ProjectGuard { constructor(router, auth) { this.router = router; this.auth = auth; } canActivate(route, _state) { return this.auth.getAccountInfo().pipe(map(({ email }) => { const params = getWorkspaceParams(email); if (typeof route.data.getWorkspaceUrl === 'function') { const workspaceUrl = route.data.getWorkspaceUrl(params); if (workspaceUrl) { return this.router.createUrlTree(Array.isArray(workspaceUrl) ? workspaceUrl : [workspaceUrl]); } } return true; })); } canActivateChild(route, state) { return this.canActivate(route, state); } static { this.ɵfac = function ProjectGuard_Factory(t) { return new (t || ProjectGuard)(i0.ɵɵinject(i1.Router), i0.ɵɵinject(i2.AuthorizationStateService)); }; } static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: ProjectGuard, factory: ProjectGuard.ɵfac, providedIn: 'root' }); } } (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ProjectGuard, [{ type: Injectable, args: [{ providedIn: 'root' }] }], () => [{ type: i1.Router }, { type: i2.AuthorizationStateService }], null); })(); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvamVjdC1uYW1lc3BhY2UuZ3VhcmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvY29yZS9ndWFyZHMvcHJvamVjdC1uYW1lc3BhY2UuZ3VhcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBSUwsTUFBTSxHQUVQLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUzQixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQzs7OztBQVMxRSxNQUFNLE9BQU8scUJBQXFCO0lBQ2hDLFlBQ21CLE1BQWMsRUFDZCxJQUErQjtRQUQvQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsU0FBSSxHQUFKLElBQUksQ0FBMkI7SUFDL0MsQ0FBQztJQUVKLFdBQVcsQ0FBQyxLQUE2QixFQUFFLEtBQTBCO1FBQ25FLElBQUksS0FBSyxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUM5QixPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsSUFBSSxDQUNwQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDaEIsTUFBTSxNQUFNLEdBQUcsa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDekMsSUFBSSxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsZUFBZSxLQUFLLFVBQVUsRUFBRSxDQUFDO2dCQUNyRCxNQUFNLFlBQVksR0FBSSxLQUFLLENBQUMsSUFBSSxDQUFDLGVBQW1DLENBQ2xFLE1BQU0sRUFDTixLQUFLLENBQ04sQ0FBQztnQkFDRixJQUFJLFlBQVksRUFBRSxDQUFDO29CQUNqQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUM5QixLQUFLLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQzVELENBQUM7Z0JBQ0osQ0FBQztZQUNILENBQUM7WUFDRCxJQUFJLE1BQU0sRUFBRSxPQUFPLEVBQUUsQ0FBQztnQkFDcEIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7b0JBQzFELFdBQVcsRUFBRSxFQUFFLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPLEVBQUU7aUJBQ3BFLENBQUMsQ0FBQztZQUNMLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVELGdCQUFnQixDQUFDLEtBQTZCLEVBQUUsS0FBMEI7UUFDeEUsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztJQUN4QyxDQUFDO3NGQW5DVSxxQkFBcUI7dUVBQXJCLHFCQUFxQixXQUFyQixxQkFBcUIsbUJBRFIsTUFBTTs7aUZBQ25CLHFCQUFxQjtjQURqQyxVQUFVO2VBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFOztBQXdDbEMsTUFBTSxPQUFPLFlBQVk7SUFDdkIsWUFDbUIsTUFBYyxFQUNkLElBQStCO1FBRC9CLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxTQUFJLEdBQUosSUFBSSxDQUEyQjtJQUMvQyxDQUFDO0lBRUosV0FBVyxDQUFDLEtBQTZCLEVBQUUsTUFBMkI7UUFDcEUsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLElBQUksQ0FDcEMsR0FBRyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ2hCLE1BQU0sTUFBTSxHQUFHLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3pDLElBQUksT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLGVBQWUsS0FBSyxVQUFVLEVBQUUsQ0FBQztnQkFDckQsTUFBTSxZQUFZLEdBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxlQUFtQyxDQUNsRSxNQUFNLENBQ1AsQ0FBQztnQkFDRixJQUFJLFlBQVksRUFBRSxDQUFDO29CQUNqQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUM5QixLQUFLLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQzVELENBQUM7Z0JBQ0osQ0FBQztZQUNILENBQUM7WUFDRCxPQUFPLElBQUksQ0FBQztRQUNkLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsS0FBNkIsRUFBRSxLQUEwQjtRQUN4RSxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3hDLENBQUM7NkVBM0JVLFlBQVk7dUVBQVosWUFBWSxXQUFaLFlBQVksbUJBREMsTUFBTTs7aUZBQ25CLFlBQVk7Y0FEeEIsVUFBVTtlQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEFjdGl2YXRlZFJvdXRlU25hcHNob3QsXG4gIENhbkFjdGl2YXRlLFxuICBDYW5BY3RpdmF0ZUNoaWxkLFxuICBSb3V0ZXIsXG4gIFJvdXRlclN0YXRlU25hcHNob3QsXG59IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgQXV0aG9yaXphdGlvblN0YXRlU2VydmljZSB9IGZyb20gJy4uLy4uL2F1dGhvcml6YXRpb24vc3RhdGUuc2VydmljZSc7XG5pbXBvcnQgeyBnZXRXb3Jrc3BhY2VQYXJhbXMgfSBmcm9tICcuLi8uLi9idXNpbmVzcy9yZXNvdXJjZS1zZWxlY3QvdXRpbHMnO1xuaW1wb3J0IHsgV29ya3NwYWNlUGFyYW1zIH0gZnJvbSAnLi4vdHlwZXMvY29tbW9ucyc7XG5cbmV4cG9ydCB0eXBlIEdldFdvcmtzcGFjZVVybCA9IChcbiAgcGFyYW1zOiBXb3Jrc3BhY2VQYXJhbXMsXG4gIGFjdGl2YXRlUm91dGU/OiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LFxuKSA9PiBzdHJpbmcgfCBzdHJpbmdbXTtcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBQcm9qZWN0TmFtZXNwYWNlR3VhcmQgaW1wbGVtZW50cyBDYW5BY3RpdmF0ZSwgQ2FuQWN0aXZhdGVDaGlsZCB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSBhdXRoOiBBdXRob3JpemF0aW9uU3RhdGVTZXJ2aWNlLFxuICApIHt9XG5cbiAgY2FuQWN0aXZhdGUocm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIHN0YXRlOiBSb3V0ZXJTdGF0ZVNuYXBzaG90KSB7XG4gICAgaWYgKHJvdXRlLnF1ZXJ5UGFyYW1zLnByb2plY3QpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5hdXRoLmdldEFjY291bnRJbmZvKCkucGlwZShcbiAgICAgIG1hcCgoeyBlbWFpbCB9KSA9PiB7XG4gICAgICAgIGNvbnN0IHBhcmFtcyA9IGdldFdvcmtzcGFjZVBhcmFtcyhlbWFpbCk7XG4gICAgICAgIGlmICh0eXBlb2Ygcm91dGUuZGF0YS5nZXRXb3Jrc3BhY2VVcmwgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICBjb25zdCB3b3Jrc3BhY2VVcmwgPSAocm91dGUuZGF0YS5nZXRXb3Jrc3BhY2VVcmwgYXMgR2V0V29ya3NwYWNlVXJsKShcbiAgICAgICAgICAgIHBhcmFtcyxcbiAgICAgICAgICAgIHJvdXRlLFxuICAgICAgICAgICk7XG4gICAgICAgICAgaWYgKHdvcmtzcGFjZVVybCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMucm91dGVyLmNyZWF0ZVVybFRyZWUoXG4gICAgICAgICAgICAgIEFycmF5LmlzQXJyYXkod29ya3NwYWNlVXJsKSA/IHdvcmtzcGFjZVVybCA6IFt3b3Jrc3BhY2VVcmxdLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHBhcmFtcz8ucHJvamVjdCkge1xuICAgICAgICAgIHJldHVybiB0aGlzLnJvdXRlci5jcmVhdGVVcmxUcmVlKFtzdGF0ZS51cmwuc3BsaXQoJz8nKVswXV0sIHtcbiAgICAgICAgICAgIHF1ZXJ5UGFyYW1zOiB7IC4uLnN0YXRlLnJvb3QucXVlcnlQYXJhbXMsIHByb2plY3Q6IHBhcmFtcy5wcm9qZWN0IH0sXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBjYW5BY3RpdmF0ZUNoaWxkKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBzdGF0ZTogUm91dGVyU3RhdGVTbmFwc2hvdCkge1xuICAgIHJldHVybiB0aGlzLmNhbkFjdGl2YXRlKHJvdXRlLCBzdGF0ZSk7XG4gIH1cbn1cblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBQcm9qZWN0R3VhcmQgaW1wbGVtZW50cyBDYW5BY3RpdmF0ZSwgQ2FuQWN0aXZhdGVDaGlsZCB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSBhdXRoOiBBdXRob3JpemF0aW9uU3RhdGVTZXJ2aWNlLFxuICApIHt9XG5cbiAgY2FuQWN0aXZhdGUocm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIF9zdGF0ZTogUm91dGVyU3RhdGVTbmFwc2hvdCkge1xuICAgIHJldHVybiB0aGlzLmF1dGguZ2V0QWNjb3VudEluZm8oKS5waXBlKFxuICAgICAgbWFwKCh7IGVtYWlsIH0pID0+IHtcbiAgICAgICAgY29uc3QgcGFyYW1zID0gZ2V0V29ya3NwYWNlUGFyYW1zKGVtYWlsKTtcbiAgICAgICAgaWYgKHR5cGVvZiByb3V0ZS5kYXRhLmdldFdvcmtzcGFjZVVybCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgIGNvbnN0IHdvcmtzcGFjZVVybCA9IChyb3V0ZS5kYXRhLmdldFdvcmtzcGFjZVVybCBhcyBHZXRXb3Jrc3BhY2VVcmwpKFxuICAgICAgICAgICAgcGFyYW1zLFxuICAgICAgICAgICk7XG4gICAgICAgICAgaWYgKHdvcmtzcGFjZVVybCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMucm91dGVyLmNyZWF0ZVVybFRyZWUoXG4gICAgICAgICAgICAgIEFycmF5LmlzQXJyYXkod29ya3NwYWNlVXJsKSA/IHdvcmtzcGFjZVVybCA6IFt3b3Jrc3BhY2VVcmxdLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgY2FuQWN0aXZhdGVDaGlsZChyb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgc3RhdGU6IFJvdXRlclN0YXRlU25hcHNob3QpIHtcbiAgICByZXR1cm4gdGhpcy5jYW5BY3RpdmF0ZShyb3V0ZSwgc3RhdGUpO1xuICB9XG59XG4iXX0=