diff --git a/src/app/core/services/api/api.service.ts b/src/app/core/services/api/api.service.ts index 0a44aaa562..d7f827a756 100644 --- a/src/app/core/services/api/api.service.ts +++ b/src/app/core/services/api/api.service.ts @@ -101,7 +101,7 @@ export class ApiService { /** * appends API token to requests if available and request is not an authorization request */ - private appendAPITokenToHeaders(): MonoTypeOperatorFunction { + private appendAPITokenToHeaders(path: string): MonoTypeOperatorFunction { return headers$ => headers$.pipe( withLatestFrom(this.store.pipe(select(getAPIToken))), @@ -109,6 +109,11 @@ export class ApiService { apiToken && !headers.has(ApiService.AUTHORIZATION_HEADER_KEY) ? headers.set(ApiService.TOKEN_HEADER_KEY, apiToken) : headers + ), + // TODO: workaround removing auth token for cms if pgid is not available + withLatestFrom(this.store.pipe(select(getPGID))), + map(([headers, pgid]) => + !pgid && path.startsWith('cms') ? headers.delete(ApiService.TOKEN_HEADER_KEY) : headers ) ); } @@ -133,7 +138,7 @@ export class ApiService { /** * merges supplied and default headers */ - private constructHeaders(options?: AvailableOptions): Observable { + private constructHeaders(path: string, options?: AvailableOptions): Observable { const defaultHeaders = new HttpHeaders().set('content-type', 'application/json').set('Accept', 'application/json'); return of( @@ -148,7 +153,7 @@ export class ApiService { ? // captcha headers this.appendCaptchaTokenToHeaders(options.captcha.captcha, options.captcha.captchaAction) : // default to api token - this.appendAPITokenToHeaders() + this.appendAPITokenToHeaders(path) ); } @@ -215,7 +220,7 @@ export class ApiService { ): Observable<[string, { headers: HttpHeaders; params: HttpParams }]> { return forkJoin([ this.constructUrlForPath(path, options), - this.constructHeaders(options).pipe( + this.constructHeaders(path, options).pipe( map(headers => ({ params: options?.params, headers, diff --git a/src/app/core/services/cms/cms.service.ts b/src/app/core/services/cms/cms.service.ts index df04a23b1f..bcc9c51c7a 100644 --- a/src/app/core/services/cms/cms.service.ts +++ b/src/app/core/services/cms/cms.service.ts @@ -25,10 +25,12 @@ export class CMSService { return throwError('getContentInclude() called without an includeId'); } - return this.apiService.get(`cms/includes/${includeId}`).pipe( - map(x => this.contentPageletEntryPointMapper.fromData(x)), - map(({ pageletEntryPoint, pagelets }) => ({ include: pageletEntryPoint, pagelets })) - ); + return this.apiService + .get(`cms/includes/${includeId}`, { sendPGID: true }) + .pipe( + map(x => this.contentPageletEntryPointMapper.fromData(x)), + map(({ pageletEntryPoint, pagelets }) => ({ include: pageletEntryPoint, pagelets })) + ); } /** @@ -41,9 +43,11 @@ export class CMSService { return throwError('getContentPage() called without an pageId'); } - return this.apiService.get(`cms/pages/${pageId}`).pipe( - map(x => this.contentPageletEntryPointMapper.fromData(x)), - map(({ pageletEntryPoint, pagelets }) => ({ page: pageletEntryPoint, pagelets })) - ); + return this.apiService + .get(`cms/pages/${pageId}`, { sendPGID: true }) + .pipe( + map(x => this.contentPageletEntryPointMapper.fromData(x)), + map(({ pageletEntryPoint, pagelets }) => ({ page: pageletEntryPoint, pagelets })) + ); } }