Skip to content

Commit

Permalink
Merge branch 'main' into auth/pm-8112/registration-ui-refresh
Browse files Browse the repository at this point in the history
  • Loading branch information
JaredSnider-Bitwarden authored Oct 15, 2024
2 parents 3148706 + a884fcf commit a72fd62
Show file tree
Hide file tree
Showing 4 changed files with 22 additions and 4 deletions.
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
<td bitCell [ngClass]="RowHeightClass" class="tw-min-w-fit">
<input
*ngIf="showCheckbox"
type="checkbox"
bitCheckbox
appStopProp
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ export class VaultCipherRowComponent implements OnInit {
@Output() checkedToggled = new EventEmitter<void>();

protected CipherType = CipherType;
protected organization?: Organization;

constructor(private configService: ConfigService) {}

Expand All @@ -53,6 +54,9 @@ export class VaultCipherRowComponent implements OnInit {
this.extensionRefreshEnabled = await firstValueFrom(
this.configService.getFeatureFlag$(FeatureFlag.ExtensionRefresh),
);
if (this.cipher.organizationId != null) {
this.organization = this.organizations.find((o) => o.id === this.cipher.organizationId);
}
}

protected get showTotpCopyButton() {
Expand Down Expand Up @@ -138,4 +142,12 @@ export class VaultCipherRowComponent implements OnInit {
protected assignToCollections() {
this.onEvent.emit({ type: "assignToCollections", items: [this.cipher] });
}

protected get showCheckbox() {
if (!this.viewingOrgVault || !this.organization) {
return true; // Always show checkbox in individual vault or for non-org items
}

return this.organization.canEditAllCiphers || this.cipher.edit;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,10 @@ export class VaultCollectionRowComponent {
}

protected get showCheckbox() {
return this.collection?.id !== Unassigned;
if (this.collection?.id === Unassigned) {
return false; // Never show checkbox for Unassigned
}

return this.canEditCollection || this.canDeleteCollection;
}
}
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { SelectionModel } from "@angular/cdk/collections";
import { Component, EventEmitter, Input, Output } from "@angular/core";

import { Unassigned, CollectionView } from "@bitwarden/admin-console/common";
import { CollectionView, Unassigned } from "@bitwarden/admin-console/common";
import { Organization } from "@bitwarden/common/admin-console/models/domain/organization";
import { CipherView } from "@bitwarden/common/vault/models/view/cipher.view";
import { TableDataSource } from "@bitwarden/components";
Expand Down Expand Up @@ -205,11 +205,12 @@ export class VaultItemsComponent {

this.selection.clear();

// Every item except for the Unassigned collection is selectable, individual bulk actions check the user's permission
// All ciphers are selectable, collections only if they can be edited or deleted
this.editableItems = items.filter(
(item) =>
item.cipher !== undefined ||
(item.collection !== undefined && item.collection.id !== Unassigned),
(item.collection !== undefined &&
(this.canEditCollection(item.collection) || this.canDeleteCollection(item.collection))),
);

this.dataSource.data = items;
Expand Down

0 comments on commit a72fd62

Please sign in to comment.