diff --git a/apps/web/src/locales/en/messages.json b/apps/web/src/locales/en/messages.json
index 3931d122e1..24919bc925 100644
--- a/apps/web/src/locales/en/messages.json
+++ b/apps/web/src/locales/en/messages.json
@@ -8186,5 +8186,11 @@
},
"viewAccess": {
"message": "View access"
+ },
+ "updateName": {
+ "message": "Update name"
+ },
+ "updatedOrganizationName": {
+ "message": "Updated organization name"
}
}
diff --git a/bitwarden_license/bit-web/src/app/admin-console/providers/providers.module.ts b/bitwarden_license/bit-web/src/app/admin-console/providers/providers.module.ts
index 15d7fdf453..6399952149 100644
--- a/bitwarden_license/bit-web/src/app/admin-console/providers/providers.module.ts
+++ b/bitwarden_license/bit-web/src/app/admin-console/providers/providers.module.ts
@@ -12,8 +12,9 @@ import { OssModule } from "@bitwarden/web-vault/app/oss.module";
import { ProviderSubscriptionComponent } from "../../billing/providers";
import {
CreateClientOrganizationComponent,
- ManageClientOrganizationSubscriptionComponent,
ManageClientOrganizationsComponent,
+ ManageClientOrganizationNameComponent,
+ ManageClientOrganizationSubscriptionComponent,
} from "../../billing/providers/clients";
import { AddOrganizationComponent } from "./clients/add-organization.component";
@@ -62,6 +63,7 @@ import { SetupComponent } from "./setup/setup.component";
UserAddEditComponent,
CreateClientOrganizationComponent,
ManageClientOrganizationsComponent,
+ ManageClientOrganizationNameComponent,
ManageClientOrganizationSubscriptionComponent,
ProviderSubscriptionComponent,
],
diff --git a/bitwarden_license/bit-web/src/app/billing/providers/clients/index.ts b/bitwarden_license/bit-web/src/app/billing/providers/clients/index.ts
index fd9ef8296c..1968302766 100644
--- a/bitwarden_license/bit-web/src/app/billing/providers/clients/index.ts
+++ b/bitwarden_license/bit-web/src/app/billing/providers/clients/index.ts
@@ -1,3 +1,4 @@
export * from "./create-client-organization.component";
export * from "./manage-client-organizations.component";
+export * from "./manage-client-organization-name.component";
export * from "./manage-client-organization-subscription.component";
diff --git a/bitwarden_license/bit-web/src/app/billing/providers/clients/manage-client-organization-name.component.html b/bitwarden_license/bit-web/src/app/billing/providers/clients/manage-client-organization-name.component.html
new file mode 100644
index 0000000000..6d7d4b2f18
--- /dev/null
+++ b/bitwarden_license/bit-web/src/app/billing/providers/clients/manage-client-organization-name.component.html
@@ -0,0 +1,24 @@
+
diff --git a/bitwarden_license/bit-web/src/app/billing/providers/clients/manage-client-organization-name.component.ts b/bitwarden_license/bit-web/src/app/billing/providers/clients/manage-client-organization-name.component.ts
new file mode 100644
index 0000000000..81e01a66cb
--- /dev/null
+++ b/bitwarden_license/bit-web/src/app/billing/providers/clients/manage-client-organization-name.component.ts
@@ -0,0 +1,77 @@
+import { DIALOG_DATA, DialogConfig, DialogRef } from "@angular/cdk/dialog";
+import { Component, Inject } from "@angular/core";
+import { FormBuilder, Validators } from "@angular/forms";
+
+import { BillingApiServiceAbstraction } from "@bitwarden/common/billing/abstractions/billilng-api.service.abstraction";
+import { UpdateClientOrganizationRequest } from "@bitwarden/common/billing/models/request/update-client-organization.request";
+import { I18nService } from "@bitwarden/common/platform/abstractions/i18n.service";
+import { DialogService, ToastService } from "@bitwarden/components";
+
+type ManageClientOrganizationNameParams = {
+ providerId: string;
+ organization: {
+ id: string;
+ name: string;
+ seats: number;
+ };
+};
+
+export enum ManageClientOrganizationNameResultType {
+ Closed = "closed",
+ Submitted = "submitted",
+}
+
+export const openManageClientOrganizationNameDialog = (
+ dialogService: DialogService,
+ dialogConfig: DialogConfig,
+) =>
+ dialogService.open(
+ ManageClientOrganizationNameComponent,
+ dialogConfig,
+ );
+
+@Component({
+ selector: "app-manage-client-organization-name",
+ templateUrl: "manage-client-organization-name.component.html",
+})
+export class ManageClientOrganizationNameComponent {
+ protected ResultType = ManageClientOrganizationNameResultType;
+ protected formGroup = this.formBuilder.group({
+ name: [this.dialogParams.organization.name, Validators.required],
+ });
+
+ constructor(
+ @Inject(DIALOG_DATA) protected dialogParams: ManageClientOrganizationNameParams,
+ private billingApiService: BillingApiServiceAbstraction,
+ private dialogRef: DialogRef,
+ private formBuilder: FormBuilder,
+ private i18nService: I18nService,
+ private toastService: ToastService,
+ ) {}
+
+ submit = async () => {
+ this.formGroup.markAllAsTouched();
+
+ if (this.formGroup.invalid) {
+ return;
+ }
+
+ const request = new UpdateClientOrganizationRequest();
+ request.assignedSeats = this.dialogParams.organization.seats;
+ request.name = this.formGroup.value.name;
+
+ await this.billingApiService.updateClientOrganization(
+ this.dialogParams.providerId,
+ this.dialogParams.organization.id,
+ request,
+ );
+
+ this.toastService.showToast({
+ variant: "success",
+ title: null,
+ message: this.i18nService.t("updatedOrganizationName"),
+ });
+
+ this.dialogRef.close(this.ResultType.Submitted);
+ };
+}
diff --git a/bitwarden_license/bit-web/src/app/billing/providers/clients/manage-client-organization-subscription.component.ts b/bitwarden_license/bit-web/src/app/billing/providers/clients/manage-client-organization-subscription.component.ts
index 2182ac43ab..3b05476777 100644
--- a/bitwarden_license/bit-web/src/app/billing/providers/clients/manage-client-organization-subscription.component.ts
+++ b/bitwarden_license/bit-web/src/app/billing/providers/clients/manage-client-organization-subscription.component.ts
@@ -71,6 +71,7 @@ export class ManageClientOrganizationSubscriptionComponent implements OnInit {
const request = new UpdateClientOrganizationRequest();
request.assignedSeats = assignedSeats;
+ request.name = this.clientName;
await this.billingApiService.updateClientOrganization(
this.providerId,
diff --git a/bitwarden_license/bit-web/src/app/billing/providers/clients/manage-client-organizations.component.html b/bitwarden_license/bit-web/src/app/billing/providers/clients/manage-client-organizations.component.html
index ec5df609c4..d2f8ab7a85 100644
--- a/bitwarden_license/bit-web/src/app/billing/providers/clients/manage-client-organizations.component.html
+++ b/bitwarden_license/bit-web/src/app/billing/providers/clients/manage-client-organizations.component.html
@@ -78,8 +78,12 @@
appA11yTitle="{{ 'options' | i18n }}"
>
+