@alauda-fe/common
Version:
Alauda frontend team common codes.
42 lines • 5.99 kB
JavaScript
/**
* @packageDocumentation
* @module authorization
*/
import { Inject, Injectable, InjectionToken } from '@angular/core';
import { of, catchError, map } from 'rxjs';
import { SilentlyNavigateService } from '../core/services/public-api';
import { AuthorizationStateService } from './state.service';
import * as i0 from "@angular/core";
import * as i1 from "./state.service";
import * as i2 from "../core/services/public-api";
export const DEFAULT_ABNORMAL_EMPTY_URL = 'system-abnormal';
export function abnormalEmptyUrlFactory() {
return DEFAULT_ABNORMAL_EMPTY_URL;
}
export const ABNORMAL_EMPTY_URL_TOKEN = new InjectionToken('abnormal_empty_url', { providedIn: 'root', factory: abnormalEmptyUrlFactory });
export class AuthorizationGuardService {
constructor(emptyUrl, auth, silentlyNavigate) {
this.emptyUrl = emptyUrl;
this.auth = auth;
this.silentlyNavigate = silentlyNavigate;
}
canActivate(_route, state) {
return this.auth.getAccountInfo().pipe(map(info => !!info), catchError(() => {
this.silentlyNavigate.navigate(state.url, this.emptyUrl);
return of(false);
}));
}
canActivateChild(route, state) {
return this.canActivate(route, state);
}
static { this.ɵfac = function AuthorizationGuardService_Factory(t) { return new (t || AuthorizationGuardService)(i0.ɵɵinject(ABNORMAL_EMPTY_URL_TOKEN), i0.ɵɵinject(i1.AuthorizationStateService), i0.ɵɵinject(i2.SilentlyNavigateService)); }; }
static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: AuthorizationGuardService, factory: AuthorizationGuardService.ɵfac, providedIn: 'root' }); }
}
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AuthorizationGuardService, [{
type: Injectable,
args: [{ providedIn: 'root' }]
}], () => [{ type: undefined, decorators: [{
type: Inject,
args: [ABNORMAL_EMPTY_URL_TOKEN]
}] }, { type: i1.AuthorizationStateService }, { type: i2.SilentlyNavigateService }], null); })();
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3VhcmQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy9hdXRob3JpemF0aW9uL2d1YXJkLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBQ0gsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBT25FLE9BQU8sRUFBRSxFQUFFLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUzQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUV0RSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7OztBQUU1RCxNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FBRyxpQkFBaUIsQ0FBQztBQUU1RCxNQUFNLFVBQVUsdUJBQXVCO0lBQ3JDLE9BQU8sMEJBQTBCLENBQUM7QUFDcEMsQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLElBQUksY0FBYyxDQUN4RCxvQkFBb0IsRUFDcEIsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxDQUN6RCxDQUFDO0FBR0YsTUFBTSxPQUFPLHlCQUF5QjtJQUdwQyxZQUVtQixRQUFnQixFQUNoQixJQUErQixFQUMvQixnQkFBeUM7UUFGekMsYUFBUSxHQUFSLFFBQVEsQ0FBUTtRQUNoQixTQUFJLEdBQUosSUFBSSxDQUEyQjtRQUMvQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQXlCO0lBQ3pELENBQUM7SUFFSixXQUFXLENBQUMsTUFBOEIsRUFBRSxLQUEwQjtRQUNwRSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsSUFBSSxDQUNwQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQ25CLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3pELE9BQU8sRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ25CLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsS0FBNkIsRUFBRSxLQUEwQjtRQUN4RSxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3hDLENBQUM7MEZBdEJVLHlCQUF5QixjQUkxQix3QkFBd0I7dUVBSnZCLHlCQUF5QixXQUF6Qix5QkFBeUIsbUJBRFosTUFBTTs7aUZBQ25CLHlCQUF5QjtjQURyQyxVQUFVO2VBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFOztzQkFLN0IsTUFBTTt1QkFBQyx3QkFBd0IiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvblxuICogQG1vZHVsZSBhdXRob3JpemF0aW9uXG4gKi9cbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEFjdGl2YXRlZFJvdXRlU25hcHNob3QsXG4gIENhbkFjdGl2YXRlLFxuICBDYW5BY3RpdmF0ZUNoaWxkLFxuICBSb3V0ZXJTdGF0ZVNuYXBzaG90LFxufSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgb2YsIGNhdGNoRXJyb3IsIG1hcCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBTaWxlbnRseU5hdmlnYXRlU2VydmljZSB9IGZyb20gJy4uL2NvcmUvc2VydmljZXMvcHVibGljLWFwaSc7XG5cbmltcG9ydCB7IEF1dGhvcml6YXRpb25TdGF0ZVNlcnZpY2UgfSBmcm9tICcuL3N0YXRlLnNlcnZpY2UnO1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9BQk5PUk1BTF9FTVBUWV9VUkwgPSAnc3lzdGVtLWFibm9ybWFsJztcblxuZXhwb3J0IGZ1bmN0aW9uIGFibm9ybWFsRW1wdHlVcmxGYWN0b3J5KCkge1xuICByZXR1cm4gREVGQVVMVF9BQk5PUk1BTF9FTVBUWV9VUkw7XG59XG5cbmV4cG9ydCBjb25zdCBBQk5PUk1BTF9FTVBUWV9VUkxfVE9LRU4gPSBuZXcgSW5qZWN0aW9uVG9rZW48c3RyaW5nPihcbiAgJ2Fibm9ybWFsX2VtcHR5X3VybCcsXG4gIHsgcHJvdmlkZWRJbjogJ3Jvb3QnLCBmYWN0b3J5OiBhYm5vcm1hbEVtcHR5VXJsRmFjdG9yeSB9LFxuKTtcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBBdXRob3JpemF0aW9uR3VhcmRTZXJ2aWNlXG4gIGltcGxlbWVudHMgQ2FuQWN0aXZhdGUsIENhbkFjdGl2YXRlQ2hpbGRcbntcbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChBQk5PUk1BTF9FTVBUWV9VUkxfVE9LRU4pXG4gICAgcHJpdmF0ZSByZWFkb25seSBlbXB0eVVybDogc3RyaW5nLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgYXV0aDogQXV0aG9yaXphdGlvblN0YXRlU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHNpbGVudGx5TmF2aWdhdGU6IFNpbGVudGx5TmF2aWdhdGVTZXJ2aWNlLFxuICApIHt9XG5cbiAgY2FuQWN0aXZhdGUoX3JvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBzdGF0ZTogUm91dGVyU3RhdGVTbmFwc2hvdCkge1xuICAgIHJldHVybiB0aGlzLmF1dGguZ2V0QWNjb3VudEluZm8oKS5waXBlKFxuICAgICAgbWFwKGluZm8gPT4gISFpbmZvKSxcbiAgICAgIGNhdGNoRXJyb3IoKCkgPT4ge1xuICAgICAgICB0aGlzLnNpbGVudGx5TmF2aWdhdGUubmF2aWdhdGUoc3RhdGUudXJsLCB0aGlzLmVtcHR5VXJsKTtcbiAgICAgICAgcmV0dXJuIG9mKGZhbHNlKTtcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBjYW5BY3RpdmF0ZUNoaWxkKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBzdGF0ZTogUm91dGVyU3RhdGVTbmFwc2hvdCkge1xuICAgIHJldHVybiB0aGlzLmNhbkFjdGl2YXRlKHJvdXRlLCBzdGF0ZSk7XG4gIH1cbn1cbiJdfQ==