,
@@ -59,7 +53,6 @@ export class BulkMoveDialogComponent implements OnInit {
private i18nService: I18nService,
private folderService: FolderService,
private formBuilder: FormBuilder,
- private configService: ConfigService,
) {
this.cipherIds = params.cipherIds ?? [];
}
diff --git a/apps/web/src/app/vault/individual-vault/vault.component.html b/apps/web/src/app/vault/individual-vault/vault.component.html
index b19a4509c1..b2c4fda57d 100644
--- a/apps/web/src/app/vault/individual-vault/vault.component.html
+++ b/apps/web/src/app/vault/individual-vault/vault.component.html
@@ -54,9 +54,8 @@
[showBulkTrashOptions]="filter.type === 'trash'"
[useEvents]="false"
[showAdminActions]="false"
- [showBulkAddToCollections]="vaultBulkManagementActionEnabled$ | async"
+ [showBulkAddToCollections]="true"
(onEvent)="onVaultItemsEvent($event)"
- [vaultBulkManagementActionEnabled]="vaultBulkManagementActionEnabled$ | async"
>
| undefined;
protected canCreateCollections = false;
protected currentSearchText$: Observable;
- protected vaultBulkManagementActionEnabled$ = this.configService.getFeatureFlag$(
- FeatureFlag.VaultBulkManagementAction,
- );
private searchText$ = new Subject();
private refresh$ = new BehaviorSubject(null);
private destroy$ = new Subject();
@@ -458,9 +446,6 @@ export class VaultComponent implements OnInit, OnDestroy {
case "viewAttachments":
await this.editCipherAttachments(event.item);
break;
- case "viewCipherCollections":
- await this.editCipherCollections(event.item);
- break;
case "clone":
await this.cloneCipher(event.item);
break;
@@ -477,13 +462,6 @@ export class VaultComponent implements OnInit, OnDestroy {
case "moveToFolder":
await this.bulkMove(event.items);
break;
- case "moveToOrganization":
- if (event.items.length === 1) {
- await this.shareCipher(event.items[0]);
- } else {
- await this.bulkShare(event.items);
- }
- break;
case "copyField":
await this.copy(event.item, event.field);
break;
@@ -566,9 +544,6 @@ export class VaultComponent implements OnInit, OnDestroy {
}
const canEditAttachments = await this.canEditAttachments(cipher);
- const vaultBulkManagementActionEnabled = await firstValueFrom(
- this.vaultBulkManagementActionEnabled$,
- );
let madeAttachmentChanges = false;
@@ -594,7 +569,7 @@ export class VaultComponent implements OnInit, OnDestroy {
this.attachmentsModalRef,
(comp) => {
comp.cipherId = cipher.id;
- comp.viewOnly = !canEditAttachments && vaultBulkManagementActionEnabled;
+ comp.viewOnly = !canEditAttachments;
comp.onUploadedAttachment
.pipe(takeUntil(this.destroy$))
.subscribe(() => (madeAttachmentChanges = true));
@@ -615,41 +590,6 @@ export class VaultComponent implements OnInit, OnDestroy {
});
}
- async shareCipher(cipher: CipherView) {
- if (cipher.organizationId != null) {
- // You cannot move ciphers between organizations
- this.showMissingPermissionsError();
- return;
- }
-
- if (cipher?.reprompt !== 0 && !(await this.passwordRepromptService.showPasswordPrompt())) {
- this.go({ cipherId: null, itemId: null });
- return;
- }
- const [modal] = await this.modalService.openViewRef(
- ShareComponent,
- this.shareModalRef,
- (comp) => {
- comp.cipherId = cipher.id;
- comp.onSharedCipher.pipe(takeUntil(this.destroy$)).subscribe(() => {
- modal.close();
- this.refresh();
- });
- },
- );
- }
-
- async editCipherCollections(cipher: CipherView) {
- const dialog = openIndividualVaultCollectionsDialog(this.dialogService, {
- data: { cipherId: cipher.id },
- });
- const result = await lastValueFrom(dialog.closed);
-
- if (result === CollectionsDialogResult.Saved) {
- this.refresh();
- }
- }
-
async addCipher(cipherType?: CipherType) {
if (this.extensionRefreshEnabled) {
return this.addCipherV2(cipherType);
@@ -1255,34 +1195,6 @@ export class VaultComponent implements OnInit, OnDestroy {
}
}
- async bulkShare(ciphers: CipherView[]) {
- if (!(await this.repromptCipher(ciphers))) {
- return;
- }
-
- if (ciphers.some((c) => c.organizationId != null)) {
- // You cannot move ciphers between organizations
- this.showMissingPermissionsError();
- return;
- }
-
- if (ciphers.length === 0) {
- this.toastService.showToast({
- variant: "error",
- title: null,
- message: this.i18nService.t("nothingSelected"),
- });
- return;
- }
-
- const dialog = openBulkShareDialog(this.dialogService, { data: { ciphers } });
-
- const result = await lastValueFrom(dialog.closed);
- if (result === BulkShareDialogResult.Shared) {
- this.refresh();
- }
- }
-
protected deleteCipherWithServer(id: string, permanent: boolean) {
return permanent
? this.cipherService.deleteWithServer(id)
diff --git a/apps/web/src/app/vault/org-vault/vault.component.ts b/apps/web/src/app/vault/org-vault/vault.component.ts
index 7118fea4d0..1eea053d1f 100644
--- a/apps/web/src/app/vault/org-vault/vault.component.ts
+++ b/apps/web/src/app/vault/org-vault/vault.component.ts
@@ -598,9 +598,6 @@ export class VaultComponent implements OnInit, OnDestroy {
case "viewAttachments":
await this.editCipherAttachments(event.item);
break;
- case "viewCipherCollections":
- await this.editCipherCollections(event.item);
- break;
case "clone":
await this.cloneCipher(event.item);
break;
diff --git a/libs/common/src/enums/feature-flag.enum.ts b/libs/common/src/enums/feature-flag.enum.ts
index f8967212b2..3be73466cb 100644
--- a/libs/common/src/enums/feature-flag.enum.ts
+++ b/libs/common/src/enums/feature-flag.enum.ts
@@ -20,7 +20,6 @@ export enum FeatureFlag {
EnableTimeThreshold = "PM-5864-dollar-threshold",
InlineMenuPositioningImprovements = "inline-menu-positioning-improvements",
ProviderClientVaultPrivacyBanner = "ac-2833-provider-client-vault-privacy-banner",
- VaultBulkManagementAction = "vault-bulk-management-action",
AC2828_ProviderPortalMembersPage = "AC-2828_provider-portal-members-page",
IdpAutoSubmitLogin = "idp-auto-submit-login",
UnauthenticatedExtensionUIRefresh = "unauth-ui-refresh",
@@ -64,7 +63,6 @@ export const DefaultFeatureFlagValue = {
[FeatureFlag.EnableTimeThreshold]: FALSE,
[FeatureFlag.InlineMenuPositioningImprovements]: FALSE,
[FeatureFlag.ProviderClientVaultPrivacyBanner]: FALSE,
- [FeatureFlag.VaultBulkManagementAction]: FALSE,
[FeatureFlag.AC2828_ProviderPortalMembersPage]: FALSE,
[FeatureFlag.IdpAutoSubmitLogin]: FALSE,
[FeatureFlag.UnauthenticatedExtensionUIRefresh]: FALSE,