1
0
mirror of https://github.com/bitwarden/browser synced 2026-02-24 08:33:29 +00:00
Commit Graph

3063 Commits

Author SHA1 Message Date
bitwarden-devops-bot
e6c4998b7c Bumped client version(s) 2026-02-23 11:48:40 +00:00
bw-ghapp[bot]
b4235110b0 Autosync the updated translations (#19131)
Co-authored-by: bitwarden-devops-bot <106330231+bitwarden-devops-bot@users.noreply.github.com>
2026-02-23 10:34:48 +00:00
Jordan Aasen
c01ce9f99d check for falsy orgnanizationId in cipher bulk collection assignment (#19088) 2026-02-20 13:41:47 -08:00
Alex Dragovich
84845024fd [PM-32502] fixed icon / copy value spacing in button on send access page (#19092)
* [PM-32502] fixed icon / copy value spacing in button on send access page

* [PM-32502] using more approriate button configuration on send access
2026-02-20 10:29:40 -08:00
John Harrington
38bcc92398 reset otp state on back nav to email input (#19105) 2026-02-20 11:03:13 -07:00
Nick Krantz
a610ce01a2 [PM-31433] Welcome Dialog with Extension Prompt (#18849)
* add welcome prompt when extension is not installed

* add feature flag

* move prompt logic to internal service and add day prompt

* rename dialog component

* remove feature flag hardcode and add documentation

* use i18n for image alt

* move state into service

* be more explicit when the account or creation date is not available

* remove spaces

* fix types caused by introducing a numeric feature flag type

* add `typeof` for feature flag typing
2026-02-20 10:23:59 -06:00
Vijay Oommen
a7c74c6f76 [PM-32372] Added testid for table and then fixed tech debt (#19066) 2026-02-20 10:17:08 -06:00
bw-ghapp[bot]
e82669b999 Autosync the updated translations (#19095)
Co-authored-by: bitwarden-devops-bot <106330231+bitwarden-devops-bot@users.noreply.github.com>
2026-02-20 17:08:39 +01:00
Vicki League
e16503f093 [PM-24178] Handle focus when routed dialog closes in vault table (#18409) 2026-02-20 10:01:38 -05:00
Bernd Schoolmann
bb110122a5 [PM-30144] Implement client-side user-key-rotation-service (#18285)
* Implement client-side user-key-rotation-service

* Feature flag

* Add tests

* Fix flag name

* Fix build

* Prettier

* Small clean-up

* Codeowners order cleanup

* Fix eslint issue

* Update sdk to 550

* Cleanup & fix incompatibilities

* Prettier
2026-02-20 15:28:24 +01:00
Alex
3663574113 [PM-31496] Reports back button placement (#18706)
* place back button fixed at bottom right

* fix type errors

* add the new button logic to org reports also

* fix: restore keyboard focus for reports back button in CDK overlay

  The CDK Overlay renders outside the cdkTrapFocus boundary, making the
  floating "Back to reports" button unreachable via Tab. Add a focus bridge
  element that intercepts Tab and programmatically redirects focus to the
  overlay button, with a return handler to cycle focus back into the page.
2026-02-19 17:43:51 -08:00
John Harrington
8399815ea7 [PM-32237] Add back functionality to email OTP auth flow (#19024)
* add back functionality to OTP auth flow

* respond to review comments

* hoist email value to parent component

---------

Co-authored-by: Alex Dragovich <46065570+itsadrago@users.noreply.github.com>
2026-02-19 10:59:59 -08:00
Mike Amirault
04aad44322 [PM-31774] Remove toggle visibility callout on hidden text sends (#18924) 2026-02-19 09:54:15 -08:00
Jordan Aasen
46a2af38a0 [PM-31974] - Vault Welcome dialog (#18960)
* premium upgrade prompt and onboarding dialog

* finalize onboard vault dialog

* vault welcome dialog no ext

* finish welcome dialog prompt

* revert changes to unified upgrade prompt service

* rename component

* rename feature flag

* add welcome dialog service

* fix tests

* fix footer position in welcome dialog

* present dialog in order

* fix tests

* fix padding
2026-02-19 09:29:54 -08:00
Brandon Treston
c8ba23e28d [PM-26378] Auto confirm events (#19025)
* add notification handler for auto confirm

* add missing state check

* fix test

* isolate angular specific code from shared lib code

* clean up

* use autoconfirm method

* add event logging for auto confirm

* update copy
2026-02-19 09:57:52 -05:00
John Harrington
f8b5e15a44 [PM-31731] [Defect] No error is returned when entering an invalid email + an invalid verification code (#18913)
* share i18n key for both invalid email and invalid otp submission

* claude review
2026-02-18 14:08:57 -08:00
John Harrington
263ec94124 [PM-32161] Remove all emails when email list field is cleared and send is saved (#18959)
* add new validation criteria to prevent authType.Email with an empty emails field

* simplify validation logic
2026-02-18 14:59:34 -07:00
Stephon Brown
ab59590019 [PM-29823] Add Tests for Updates (#19040)
* refactor: Remove direct self-hosted org creation from OrganizationPlansComponent

* tests: Add comprehensive test suite for OrganizationPlansComponent
2026-02-18 14:32:08 -05:00
Todd Martin
c086df14e7 chore(ownership): Move account-fingerprint to KM ownership 2026-02-18 12:56:53 -05:00
John Harrington
bc6b1c3b83 [PM-32242] Error message is incorrectly formatted for password protected Send (#18991)
* re-work error display to match design specs

* fix password auth in attemptV1Access

* fix locales file (formatting)
2026-02-18 09:34:57 -07:00
Alex
1ef8f257b0 [PM-31803] Fix Password Manager reports not displaying items with limited collection access (#18956)
When "Owners and admins can manage all collections and items" is OFF, Password Manager
reports incorrectly filter out items from collections where the user has "Can view",
"Can view except passwords", or "Can edit except passwords" access.

The root cause is that all five PM report components filter ciphers using
`(!this.organization && !edit) || !viewPassword`. Since PM reports run without an
organization context (this.organization is undefined), this condition excludes any
item where edit=false or viewPassword=false. These permission checks are unnecessary
for PM reports because:

1. Personal vault items always have edit=true and viewPassword=true, so the checks
   never applied to them.
2. Organization items should appear in reports regardless of permission level — the
   user has collection access, and edit restrictions should only affect the item
   dialog, not report visibility.
3. Admin Console reports (which work correctly) skip this filtering because
   this.organization is always set, making the condition always false.

This also explains why "Can edit except passwords" items only appeared in the
Unsecured Websites report — it was the only report that didn't check !viewPassword.

Removed the edit/viewPassword filter conditions from all five PM report components:
- exposed-passwords-report
- weak-passwords-report
- reused-passwords-report
- inactive-two-factor-report
- unsecured-websites-report
2026-02-18 08:00:36 -08:00
Alex
03340aee71 [PM-31163] stabilize table column widths with fixed layout (#18708)
* stabilize table column widths with fixed layout (PM-31163)

Add layout="fixed" and explicit width classes to report tables to prevent
column widths from shifting during virtual scroll.

Files changed:
- weak-passwords-report.component.html
- reused-passwords-report.component.html
- exposed-passwords-report.component.html
- inactive-two-factor-report.component.html
- unsecured-websites-report.component.html

* use auto width for name column to fix width calculation (PM-31163)

  Remove tw-w-1/2 from name column headers. With layout="fixed", the
  explicit percentages didn't sum to 100%, causing inconsistent column widths.

  Before: | 48px | 50% | 25% | 25% | = 48px + 100% (overflow)
  After:  | 48px | auto | 25% | 25% | = columns sum correctly

  Name column now uses auto to fill remaining space.

* render headers in Admin Console to fix column widths (PM-31163)

  Admin Console reports had a very wide icon column because no headers were
  rendered. Without headers, table-layout: fixed uses data row content to
  determine column widths, causing inconsistent sizing.

  Root cause:
  Three reports had their entire <ng-container header> block inside
  @if (!isAdminConsoleActive), so when isAdminConsoleActive=true (Admin
  Console), no headers were rendered at all.

  Before (broken):
    @if (!isAdminConsoleActive) {
      <ng-container header>        <!-- Entire header skipped in Admin Console -->
        <th>Icon</th>
        <th>Name</th>
        <th>Owner</th>
      </ng-container>
    }

  After (fixed):
    <ng-container header>          <!-- Always render headers -->
      <th>Icon</th>
      <th>Name</th>
      @if (!isAdminConsoleActive) {
        <th>Owner</th>             <!-- Only Owner is conditional -->
      }
    </ng-container>

  This matches the pattern already used by weak-passwords-report and
  exposed-passwords-report, which were working correctly.

  Files changed:
  - unsecured-websites-report.component.html
  - reused-passwords-report.component.html
  - inactive-two-factor-report.component.html

  Result:
  - Admin Console now renders headers with correct column widths
  - Icon column is 48px (tw-w-12) as expected
  - Owner column properly hidden in Admin Console view

* truncate long item names to prevent column overflow

- you can hover cursor for tooltip to see full name
2026-02-17 20:31:08 -08:00
Alex
ec33ea4f3c [PM-27782] Update Access Intelligence loading state text (#18808)
* [PM-27782] Update Access Intelligence loading state text

  Simplify the loading progress messages shown during Access Intelligence
  report generation to be more user-friendly and concise.

  Changes:
  - Add new i18n keys with simplified text
  - Update ProgressStepConfig to use new keys

  Progress message updates:
  - "Fetching member data..." → "Reviewing member data..."
  - "Analyzing password health..." → "Analyzing passwords..."
  - "Calculating risk scores..." → "Calculating risks..."
  - "Generating report data..." → "Generating reports..."
  - "Saving report..." → "Compiling insights..."
  - "Compiling insights..." → "Done!"

* delete old messages

* remove all "this might take a few minutes"
2026-02-17 20:29:41 -08:00
John Harrington
9f18a68707 remove unwanted text and place wanted in bit-hint (#18989) 2026-02-17 14:10:55 -07:00
Brandon Treston
8a670f1731 fix circular dependency (#19023) 2026-02-17 14:05:14 -05:00
Mike Amirault
c0e9678c06 [PM-31770] Fix Send expires text formatting (#18926)
* [PM-31770] Fix Send expires text formatting

* Address PR review comments
2026-02-17 10:49:30 -05:00
John Harrington
c415beb653 add password specific header (#18988) 2026-02-16 15:53:46 -07:00
bw-ghapp[bot]
22a6fb1e6d Autosync the updated translations (#19009)
Co-authored-by: bitwarden-devops-bot <106330231+bitwarden-devops-bot@users.noreply.github.com>
2026-02-16 11:42:43 +01:00
John Harrington
f5b1be7e62 add dynamic EV headers (#18949) 2026-02-13 14:14:31 -07:00
Jordan Aasen
323f30c8e9 [PM-29892] - fix bulk share in vault (#18601)
* fix bulk share in vault

* clean up types.

* remove unnecessary optional chain

* add back defensive programming. update restore

* fix searchableCollectionNodes

* add back optional chains
2026-02-13 11:36:39 -08:00
Jason Ng
10a20a43a3 [PM-31738] update archive toasts (#18923)
* update archive toast for all clients and trash archive restore toast, update archive cipher utilities spec
2026-02-13 13:53:11 -05:00
cyprain-okeke
f46511b3e8 [PM-30908]Correct Premium subscription status handling (#18475)
* Implement the required changes

* Fix the family plan creation for expired sub

* Resolve the pr comments

* resolve the resubscribe issue

* Removed redirectOnCompletion: true from the resubscribe

* Display the Change payment method dialog on the subscription page

* adjust the page reload time

* revert payment method open in subscription page

* Enable cancel premium see the subscription page

* Revert the removal of hasPremiumPersonally

* remove extra space

* Add can view subscription

* Use the canViewSubscription

* Resolve the tab default to premium

* use the subscription Instead of hasPremium

* Revert the changes on user-subscription

* Use the flag to redirect to subscription page

* revert the canViewSubscription change

* resolve the route issue with premium

* Change the path to

* Revert the previous iteration changes

* Fix the build error
2026-02-13 18:56:35 +01:00
Jared
b567fea7e7 [PM-29506] Rid of old feature flag for members feature flag (#18884)
* [PM-31750] Refactor members routing and user confirmation logic

* Simplified user confirmation process by removing feature flag checks.
* Updated routing to directly use the new members component without feature flagging.
* Removed deprecated members component references from routing modules.
* Cleaned up feature flag enum by removing unused entries.

* trigger claude

* [PM-31750] Refactor members component and remove deprecated files

* Renamed vNextMembersComponent to MembersComponent for consistency.
* Removed deprecated_members.component.ts and associated HTML files.
* Updated routing and references to use the new MembersComponent.
* Cleaned up related tests to reflect the component name change.

* Refactor import statements in security-tasks.service.ts for improved readability

* Update apps/web/src/app/admin-console/organizations/manage/user-confirm.component.ts

Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>

* Remove BaseMembersComponent and related imports from the admin console, streamlining member management functionality.

* Remove unused ConfigService import from UserConfirmComponent to clean up code.

* Implement feature flag logic for user restoration in MemberDialogComponent, allowing conditional restoration based on DefaultUserCollectionRestore flag.

---------

Co-authored-by: Thomas Rittson <trittson@bitwarden.com>
Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>
2026-02-13 11:38:35 -05:00
Brandon Treston
011f250684 [PM-32075] Fix self host bug due to type mismatch (#18919)
* fix self host bug with data model

* fix type issues

* fix types, make successful required
2026-02-13 10:02:36 -05:00
Daniel James Smith
69264c8841 [PM-32212] Migrate platform font icons to bit-icon (#18970)
* Changes on browser

* Changes on desktop

* Changes on web

* Fix chromatic story

---------

Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
2026-02-13 09:43:42 -05:00
bw-ghapp[bot]
412d1b541d Autosync the updated translations (#18963)
Co-authored-by: bitwarden-devops-bot <106330231+bitwarden-devops-bot@users.noreply.github.com>
2026-02-13 12:11:17 +01:00
Brad
8d3cbd3da6 [PM-31801] Fix: Allow admins/owners to edit all ciphers in reports when Org setting is enabled#18856
This PR fixes an issue where admins couldn't edit ciphers in organization reports when the "Allow Admin Access to All Collection Items" setting was enabled.

The fix adds a check for organization.allowAdminAccessToAllCollectionItems in the canManage() method across all organization report components. When this setting is enabled, admins/owners can now properly edit all ciphers regardless of collection membership.
2026-02-12 13:59:27 -08:00
Brad
1be55763a3 [PM-31689] Fix Org 2FA report: cipher names should always show #18927
Fix issue where ciphers appearing in the Org 2FA report would render without the cipher name shown. This was happening for all ciphers in Collections the active User did not have access to.
2026-02-12 11:17:09 -08:00
Jared
2e83244158 Update showDescription property in BasePolicyEditDefinition to false (#18915) 2026-02-12 13:02:11 -05:00
Alex
7342bf672f [PM-31161] reports scroll bug (#18769)
* Fix virtual scroll gap in exposed-passwords-report by setting rowSize to 54px

* Fix virtual scroll gap in weak-passwords-report by setting rowSize to 54px
2026-02-12 09:01:30 -08:00
Thomas Avery
4d93348a2e [PM-30812] Update userKey rotation to use saltForUser (#18697) 2026-02-12 10:51:31 -06:00
Jason Ng
30d3a36c7e [PM-31938] refactor archive btn logic in web view modal (#18874)
* refactor showArchiveBtn logic in web view modal
2026-02-11 17:32:35 -05:00
Brad
a9ccb421c4 [PM-30542] Conditionally render old Access Intelligence tabs, sub heading copy update (#18847)
First step of removing code for old Access Intelligence tabs. The old tabs should not appear when the milestone 11 feature flag is on. Once flipped in Production, the remainder of this ticket can be completed (old code entirely removed)

Also included in this change is a copy update for the sub heading of the page.
2026-02-11 09:00:14 -08:00
Nick Krantz
f20686cdf4 [PM-24978] Corrupt Attachment Keys (#17790)
* display translated content for attachments that cannot be downloaded

* consume decryption failure from the sdk for attachments

* add decryption errors from sdk

* only show fix attachment issues for when key is null and it does not have a decryption failure

* separate decryption failure state in view
2026-02-11 10:31:38 -06:00
Jared
3f3fc6f984 [PM-31937] Close drawer on navigation (#18852)
* Implement OnDestroy lifecycle hook in PoliciesComponent to close dialog on component destruction. Update dialog reference handling for improved resource management.

* Add documentation to dialogs.mdx so others can know how to prevent drawers staying open

* Fix for PR action test

* Update PoliciesComponent to use optional chaining for myDialogRef
2026-02-11 10:52:50 -05:00
Jason Ng
04b17816d7 [PM-31670] replace bulk archive toast message (#18877) 2026-02-11 09:47:48 -05:00
Brad
0f5163453e [PM-30540] Access Intelligence action button updates (mark critical, assign tasks) (#18730)
Updates the buttons available in the Access Intelligence "Applications" tab.

- The "Mark as critical" button appears when at least 1 row is selected in the table, and if all selected applications are already marked critical, changes to a "Mark as not critical" button. This functionality allows Admins to either bulk mark critical applications, or bulk unmark critical applications.
- "Assign tasks" has been moved into this tab view, and now is only enabled when there are critical ciphers found without assigned password change tasks. A tooltip appears when hovering on the disabled state, informing the Admin that all tasks have already been assigned.
2026-02-10 15:08:20 -08:00
Brandon Treston
1aef83b6e3 [PM-28262] Bulk re-invite UI improvements (#18754)
* implement dilogs and logic

* clean up, add tests

* add feature flag key

* product requested changes

* more product changes

* edit error message
2026-02-10 16:20:39 -05:00
Jared
3b535802db [PM-26020] Implement dynamic cipher creation permissions in vault header and new… (#18579)
* Implement dynamic cipher creation permissions in vault header and new cipher menu components

* Enhance new cipher menu button behavior and accessibility. Implement dynamic button label based on creation permissions, allowing direct collection creation when applicable. Update button trigger logic to improve user experience.

* Update apps/web/src/app/vault/individual-vault/vault-header/vault-header.component.ts

Co-authored-by: SmithThe4th <gsmith@bitwarden.com>

* Add canCreateCipher getter for improved readability

---------

Co-authored-by: SmithThe4th <gsmith@bitwarden.com>
2026-02-10 15:45:45 -05:00
Jackson Engstrom
6f1a618714 [PM-31732] Fix issue with user flow from vault-item-dialog 2026-02-10 11:46:03 -08:00