[PM-2642] Fix feature flags not working properly when urls load from storage (#5598)

* fix: feature flags not working properly

Due to race conditions the api url is not set during the first fetch och server config. This causes the config to be fetched from `api.bitwarden.com`. The config is then supposed to be re-fetched when the api url is set by the environment service, but due to a missing line this is not done when the urls are set from storage.

* feat: change to `Observable<void>`
This commit is contained in:
Andreas Coroiu 2023-06-14 14:10:39 +02:00 committed by GitHub
parent 3b708d9311
commit 37010a6414
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 6 additions and 4 deletions

View File

@ -18,7 +18,7 @@ export type PayPalConfig = {
};
export abstract class EnvironmentService {
urls: Observable<Urls>;
urls: Observable<void>;
hasBaseUrl: () => boolean;
getNotificationsUrl: () => string;

View File

@ -8,8 +8,8 @@ import {
import { StateService } from "../abstractions/state.service";
export class EnvironmentService implements EnvironmentServiceAbstraction {
private readonly urlsSubject = new Subject<Urls>();
urls: Observable<Urls> = this.urlsSubject;
private readonly urlsSubject = new Subject<void>();
urls: Observable<void> = this.urlsSubject.asObservable();
protected baseUrl: string;
protected webVaultUrl: string;
@ -139,6 +139,8 @@ export class EnvironmentService implements EnvironmentServiceAbstraction {
this.eventsUrl = envUrls.events = urls.events;
this.keyConnectorUrl = urls.keyConnector;
// scimUrl is not saved to storage
this.urlsSubject.next();
}
async setUrls(urls: Urls): Promise<Urls> {
@ -176,7 +178,7 @@ export class EnvironmentService implements EnvironmentServiceAbstraction {
this.keyConnectorUrl = urls.keyConnector;
this.scimUrl = urls.scim;
this.urlsSubject.next(urls);
this.urlsSubject.next();
return urls;
}