diff --git a/npm/ng-packs/packages/core/src/lib/models/environment.ts b/npm/ng-packs/packages/core/src/lib/models/environment.ts index c67d4a687e..069fb9bd7c 100644 --- a/npm/ng-packs/packages/core/src/lib/models/environment.ts +++ b/npm/ng-packs/packages/core/src/lib/models/environment.ts @@ -7,7 +7,7 @@ export interface Environment { hmr?: boolean; test?: boolean; localization?: { defaultResourceName?: string }; - oAuthConfig?: AuthConfig; + oAuthConfig?: AuthConfig & { impersonation?: Impersonation }; production: boolean; remoteEnv?: RemoteEnv; [key: string]: any; // eslint-disable-line @typescript-eslint/no-explicit-any @@ -38,3 +38,8 @@ export interface RemoteEnv { method?: string; headers?: ABP.Dictionary; } + +export interface Impersonation { + tenantImpersonation?: boolean; + userImpersonation?: boolean; +} diff --git a/npm/ng-packs/packages/core/src/lib/services/environment.service.ts b/npm/ng-packs/packages/core/src/lib/services/environment.service.ts index ca5d4d79ff..8272b17a7a 100644 --- a/npm/ng-packs/packages/core/src/lib/services/environment.service.ts +++ b/npm/ng-packs/packages/core/src/lib/services/environment.service.ts @@ -51,4 +51,12 @@ export class EnvironmentService { getIssuer$() { return this.store.sliceState(state => state?.oAuthConfig?.issuer).pipe(map(mapToIssuer)); } + + getImpersonation() { + return this.store.state?.oAuthConfig?.impersonation || {}; + } + + getImpersonation$() { + return this.store.sliceState(state => state?.oAuthConfig?.impersonation || {}); + } }