From 7bbfa6bfecdb6ba7eb7a186e4c607b837ba3a991 Mon Sep 17 00:00:00 2001 From: Amedeo Lepore Date: Tue, 18 Jul 2023 18:36:06 +0200 Subject: [PATCH] Fix prefix is undefined --- .../src/lib/app-config/app-config.loader.ts | 7 ++++--- .../src/lib/app-config/app-config.service.ts | 3 ++- .../basic-auth/basic-alfresco-auth.service.ts | 17 ++++++++++------- 3 files changed, 16 insertions(+), 11 deletions(-) diff --git a/lib/core/src/lib/app-config/app-config.loader.ts b/lib/core/src/lib/app-config/app-config.loader.ts index 55fd386c4e..fbea0b24bd 100644 --- a/lib/core/src/lib/app-config/app-config.loader.ts +++ b/lib/core/src/lib/app-config/app-config.loader.ts @@ -20,8 +20,9 @@ import { StorageService } from '../common/services/storage.service'; import { AdfHttpClient } from '@alfresco/adf-core/api'; export function loadAppConfig(appConfigService: AppConfigService, storageService: StorageService, adfHttpClient: AdfHttpClient) { - return () => appConfigService.load().then(() => { + const init = () => { adfHttpClient.disableCsrf = appConfigService.get(AppConfigValues.DISABLECSRF, true); storageService.prefix = appConfigService.get(AppConfigValues.STORAGE_PREFIX, ''); - }); -} + }; + return () => appConfigService.load(init); +}; diff --git a/lib/core/src/lib/app-config/app-config.service.ts b/lib/core/src/lib/app-config/app-config.service.ts index b059e39b0e..e169ce696b 100644 --- a/lib/core/src/lib/app-config/app-config.service.ts +++ b/lib/core/src/lib/app-config/app-config.service.ts @@ -189,7 +189,7 @@ export class AppConfigService { * * @returns Notification when loading is complete */ - load(): Promise { + load(callback?: (...args: any[]) => any): Promise { return new Promise(async (resolve) => { const configUrl = `app.config.json?v=${Date.now()}`; @@ -198,6 +198,7 @@ export class AppConfigService { this.http.get(configUrl).subscribe( (data: any) => { this.status = Status.LOADED; + callback?.(); resolve(data); this.onDataLoaded(data); }, diff --git a/lib/core/src/lib/auth/basic-auth/basic-alfresco-auth.service.ts b/lib/core/src/lib/auth/basic-auth/basic-alfresco-auth.service.ts index e0f33d3cf7..3d9cb459ba 100644 --- a/lib/core/src/lib/auth/basic-auth/basic-alfresco-auth.service.ts +++ b/lib/core/src/lib/auth/basic-auth/basic-alfresco-auth.service.ts @@ -15,18 +15,19 @@ * limitations under the License. */ -import { Injectable } from '@angular/core'; +import { Injectable, inject } from '@angular/core'; import { AppConfigService, AppConfigValues } from '../../app-config/app-config.service'; import { Authentication } from '../interfaces/authentication.interface'; import { CookieService } from '../../common/services/cookie.service'; import { ContentAuth } from './content-auth'; import { ProcessAuth } from './process-auth'; import { catchError, map } from 'rxjs/operators'; -import { from, Observable } from 'rxjs'; +import { from, Observable, zip } from 'rxjs'; import { RedirectionModel } from '../models/redirection.model'; import { BaseAuthenticationService } from '../services/base-authentication.service'; import { LogService } from '../../common'; import { HttpHeaders } from '@angular/common/http'; +import { AlfrescoApiService } from '../../../..'; const REMEMBER_ME_COOKIE_KEY = 'ALFRESCO_REMEMBER_ME'; const REMEMBER_ME_UNTIL = 1000 * 60 * 60 * 24 * 30; @@ -35,6 +36,7 @@ const REMEMBER_ME_UNTIL = 1000 * 60 * 60 * 24 * 30; providedIn: 'root' }) export class BasicAlfrescoAuthService extends BaseAuthenticationService { + alfrescoApiService = inject(AlfrescoApiService); protected redirectUrl: RedirectionModel = null; @@ -54,11 +56,12 @@ export class BasicAlfrescoAuthService extends BaseAuthenticationService { ) { super(appConfig, cookie, logService); - this.appConfig.onLoad.subscribe(() => { - if (this.isLoggedIn()) { - this.onLogin.next('logged-in'); - } - }); + zip(this.alfrescoApiService.alfrescoApiInitialized, this.appConfig.onLoad) + .subscribe(() => { + if (this.isLoggedIn()) { + this.onLogin.next('logged-in'); + } + }); this.contentAuth.onLogout.pipe(map((event) => { this.onLogout.next(event);