From f85b7b314c6a482f92c69d6a2061e8624115b252 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rui=20Tom=C3=A9?= <108268980+r-tome@users.noreply.github.com> Date: Fri, 14 Jun 2024 06:38:50 +0100 Subject: [PATCH] [AC-1658] Update list command to show only organizations where the user is a member (#9453) * Refactor list organizations command to use organizationService.memberOrganizations$ * Deprecate OrganizationService.getAll method and update CLI get command to use the organizations observable --- apps/cli/src/commands/get.command.ts | 2 +- apps/cli/src/commands/list.command.ts | 4 +++- .../organization/organization.service.abstraction.ts | 3 +++ 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/apps/cli/src/commands/get.command.ts b/apps/cli/src/commands/get.command.ts index 142f0576b5..a91df2a1ca 100644 --- a/apps/cli/src/commands/get.command.ts +++ b/apps/cli/src/commands/get.command.ts @@ -468,7 +468,7 @@ export class GetCommand extends DownloadCommand { if (Utils.isGuid(id)) { org = await this.organizationService.getFromState(id); } else if (id.trim() !== "") { - let orgs = await this.organizationService.getAll(); + let orgs = await firstValueFrom(this.organizationService.organizations$); orgs = CliUtils.searchOrganizations(orgs, id); if (orgs.length > 1) { return Response.multipleResults(orgs.map((c) => c.id)); diff --git a/apps/cli/src/commands/list.command.ts b/apps/cli/src/commands/list.command.ts index 63ec13a8c9..536c9e3b8c 100644 --- a/apps/cli/src/commands/list.command.ts +++ b/apps/cli/src/commands/list.command.ts @@ -1,3 +1,5 @@ +import { firstValueFrom } from "rxjs"; + import { ApiService } from "@bitwarden/common/abstractions/api.service"; import { EventCollectionService } from "@bitwarden/common/abstractions/event/event-collection.service"; import { SearchService } from "@bitwarden/common/abstractions/search.service"; @@ -239,7 +241,7 @@ export class ListCommand { } private async listOrganizations(options: Options) { - let organizations = await this.organizationService.getAll(); + let organizations = await firstValueFrom(this.organizationService.memberOrganizations$); if (options.search != null && options.search.trim() !== "") { organizations = CliUtils.searchOrganizations(organizations, options.search); diff --git a/libs/common/src/admin-console/abstractions/organization/organization.service.abstraction.ts b/libs/common/src/admin-console/abstractions/organization/organization.service.abstraction.ts index 0b0e03e3e1..218051b9e4 100644 --- a/libs/common/src/admin-console/abstractions/organization/organization.service.abstraction.ts +++ b/libs/common/src/admin-console/abstractions/organization/organization.service.abstraction.ts @@ -117,6 +117,9 @@ export abstract class OrganizationService { hasOrganizations: () => Promise; get$: (id: string) => Observable; get: (id: string) => Promise; + /** + * @deprecated This method is only used in key connector and will be removed soon as part of https://bitwarden.atlassian.net/browse/AC-2252. + */ getAll: (userId?: string) => Promise; /**