@alauda-fe/common
Version:
Alauda frontend team common codes.
70 lines • 10.4 kB
JavaScript
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=