Browse Source

Add manage-profile provider. Set OAuth config is nullable.

pull/15201/head
Mahmut Gundogdu 4 years ago
parent
commit
def85ef5c2
  1. 4
      npm/ng-packs/packages/core/src/lib/models/environment.ts
  2. 18
      npm/ng-packs/packages/core/src/lib/tokens/manage-profile.token.ts
  3. 2
      npm/ng-packs/packages/oauth/src/lib/oauth.module.ts
  4. 1
      npm/ng-packs/packages/oauth/src/lib/providers/index.ts
  5. 21
      npm/ng-packs/packages/oauth/src/lib/providers/navigate-to-manage-profile.provider.ts
  6. 1
      npm/ng-packs/packages/oauth/src/public-api.ts

4
npm/ng-packs/packages/core/src/lib/models/environment.ts

@ -7,10 +7,10 @@ export interface Environment {
hmr?: boolean;
test?: boolean;
localization?: { defaultResourceName?: string };
oAuthConfig: AuthConfig;
oAuthConfig?: AuthConfig;
production: boolean;
remoteEnv?: RemoteEnv;
[key:string]: any; // eslint-disable-line @typescript-eslint/no-explicit-any
[key: string]: any; // eslint-disable-line @typescript-eslint/no-explicit-any
}
export interface ApplicationInfo {
name: string;

18
npm/ng-packs/packages/core/src/lib/tokens/manage-profile.token.ts

@ -1,21 +1,5 @@
import { InjectionToken, inject } from '@angular/core';
import { EnvironmentService } from '../services/environment.service';
import { InjectionToken } from '@angular/core';
export const NAVIGATE_TO_MANAGE_PROFILE = new InjectionToken<() => void>(
'NAVIGATE_TO_MANAGE_PROFILE',
{
providedIn: 'root',
factory: () => {
const environment = inject(EnvironmentService);
return () => {
window.open(
`${environment.getEnvironment().oAuthConfig.issuer}/Account/Manage?returnUrl=${
window.location.href
}`,
'_self',
);
};
},
},
);

2
npm/ng-packs/packages/oauth/src/lib/oauth.module.ts

@ -9,6 +9,7 @@ import { initFactory } from './utils/init-factory';
import { HTTP_INTERCEPTORS } from '@angular/common/http';
import { ApiInterceptor } from './interceptors/api.interceptor';
import { AbpOAuthGuard } from './guards/oauth.guard';
import { NavigateToManageProfileProvider } from './providers';
@NgModule({
imports: [CommonModule, OAuthModule],
@ -31,6 +32,7 @@ export class AbpOAuthModule {
useExisting: ApiInterceptor,
multi: true,
},
NavigateToManageProfileProvider,
{
provide: APP_INITIALIZER,
multi: true,

1
npm/ng-packs/packages/oauth/src/lib/providers/index.ts

@ -0,0 +1 @@
export * from './navigate-to-manage-profile.provider';

21
npm/ng-packs/packages/oauth/src/lib/providers/navigate-to-manage-profile.provider.ts

@ -0,0 +1,21 @@
import { inject, Provider } from '@angular/core';
import { EnvironmentService, NAVIGATE_TO_MANAGE_PROFILE } from '@abp/ng.core';
export const NavigateToManageProfileProvider: Provider = {
provide: NAVIGATE_TO_MANAGE_PROFILE,
useFactory: () => {
const environment = inject(EnvironmentService);
return () => {
const env = environment.getEnvironment();
if (!env.oAuthConfig) {
console.warn('The oAuthConfig env is missing on environment.ts');
return;
}
window.open(
`${env.oAuthConfig.issuer}/Account/Manage?returnUrl=${window.location.href}`,
'_self',
);
};
},
};

1
npm/ng-packs/packages/oauth/src/public-api.ts

@ -6,3 +6,4 @@ export * from './lib/strategies';
export * from './lib/handlers';
export * from './lib/interceptors';
export * from './lib/guards';
export * from './lib/providers';

Loading…
Cancel
Save