1
0
mirror of https://github.com/bitwarden/browser synced 2026-02-19 10:54:00 +00:00
Commit Graph

2074 Commits

Author SHA1 Message Date
Nick Krantz
e9b5055ba3 PM-24535 Web premium upgrade path for archive (#16854)
* add premium badge to web filter when the user does not have access to premium

* remove feature flag pass through in favor of showing/hiding archive vault observable

* refactor archive observable to be more generic

* add archive premium badge for the web

* show premium badge inline for archive filter

* show premium subscription ended message when user has archived ciphers

* fix missing refactor

* remove unneeded can archive check

* reference observable directly

* reduce the number of firstValueFroms by combining observables into a single stream

* fix failing tests

* add import to storybook

* update variable naming for premium filters

* pass event to `promptForPremium`

* remove check for organization

* fix footer variable reference

* refactor back to `hasArchiveFlagEnabled$` - more straight forward to the underlying logic

* update archive service test with new feature flag format
2026-02-17 09:24:45 -08:00
Bernd Schoolmann
37b8df2e18 [PM-18026] Implement forced, automatic KDF upgrades (#15937)
* Implement automatic kdf upgrades

* Fix kdf config not being updated

* Update legacy kdf state on master password unlock sync

* Fix cli build

* Fix

* Deduplicate prompts

* Fix dismiss time

* Fix default kdf setting

* Fix build

* Undo changes

* Fix test

* Fix prettier

* Fix test

* Update libs/angular/src/key-management/encrypted-migration/encrypted-migrations-scheduler.service.ts

Co-authored-by: Maciej Zieniuk <167752252+mzieniukbw@users.noreply.github.com>

* Update libs/common/src/key-management/master-password/abstractions/master-password.service.abstraction.ts

Co-authored-by: Maciej Zieniuk <167752252+mzieniukbw@users.noreply.github.com>

* Update libs/angular/src/key-management/encrypted-migration/encrypted-migrations-scheduler.service.ts

Co-authored-by: Maciej Zieniuk <167752252+mzieniukbw@users.noreply.github.com>

* Only sync when there is at least one migration

* Relative imports

* Add tech debt comment

* Resolve inconsistent prefix

* Clean up

* Update docs

* Use default PBKDF2 iteratinos instead of custom threshold

* Undo type check

* Fix build

* Add comment

* Cleanup

* Cleanup

* Address component feedback

* Use isnullorwhitespace

* Fix tests

* Allow migration only on vault

* Fix tests

* Run prettier

* Fix tests

* Prevent await race condition

* Fix min and default values in kdf migration

* Run sync only when a migration was run

* Update libs/common/src/key-management/encrypted-migrator/default-encrypted-migrator.ts

Co-authored-by: Maciej Zieniuk <167752252+mzieniukbw@users.noreply.github.com>

* Fix link not being blue

* Fix later button on browser

---------

Co-authored-by: Maciej Zieniuk <167752252+mzieniukbw@users.noreply.github.com>
2026-02-17 09:24:44 -08:00
Bryan Cunningham
56a634da68 Revert using tooltip in appA11yTitle directive (#17787)
* revert using tooltip in title directive

* add back tooltip delay from revert

* add back label to carousel buttons

* fix documentation that does not need reverted

* remove unnecessary label attr
2026-02-17 09:24:43 -08:00
cyprain-okeke
1a59a3b682 [PM-28258]Fix [Defect] New Organization creation without payment method succeeds without organization creation (#17719)
* Resolve the  payment validation issue

* remove the null error
2026-02-17 09:24:41 -08:00
Stephon Brown
adc7f5bc5b [PM-27600] Replace Hard-Coded Storage amount (#17393)
* feat(billing): add provided as a required property to premium response

* fix(billing): replace hard coded storage variables with retrieved plan

* tests(billing): add tests to pricing-summary service

* feat(billing): add optional property.

* fix(billing): update storage logic

* fix(billing): remove optional check

* fix(billing): remove optionality

* fix(billing): remove optionality

* fix(billing): refactored storage calculation logic

* feat(billing): add provided amounts to subscription-pricing-service

* fix(billing): update cloud premium component

* fix(billing): update desktop premium component

* fix(billing): update org plans component

* fix(billing) update stories and tests

* fix(billing): update messages

* fix(billing): replace storage sizes

* fix(billing): update messages

* fix(billing): update components

* fix(billing): update components for pricing and storage retrieval

* fix(billing): revert self-hosted change
2026-02-17 09:24:40 -08:00
Alex Morask
cc1ada036e Clear premium interest on upgrade dialog open (#17518) 2026-02-17 09:24:39 -08:00
Leslie Tilton
d850776acd Remove additional flag from organization layout html component (#17755) 2026-02-17 09:24:37 -08:00
Vicki League
05069422d4 [CL-717][PM-27966] Update to Angular 20 and Storybook 9 (#17638) 2026-02-17 09:24:37 -08:00
Bryan Cunningham
1d3e5fb623 [CL-910] Use tooltip in title directive (#17084)
* use tooltip in a11y directive

* remove commented code

* add deprecation warning to appA11yTitle directive

* use label for tooltip in carousel nav

* wait for timeout before assertion

* remove unnecessary title directive use

* fix private variable lint errors

* increase tooltip show delay

* fix spec delay and export as constant

* use delay constant

---------

Co-authored-by: Vicki League <vleague@bitwarden.com>
2026-02-17 09:24:35 -08:00
Brandon Treston
bd2479d2c2 [PM-28350] Refactor policies component (#17636)
* refactor policies component

* add tests

* cleanup

* clean up

* change trackBy to

* change detetction
2026-02-17 09:24:34 -08:00
Bernd Schoolmann
066ab2e0c8 [PM-28446] Log package types (#17496)
* User agent

* Update to use header

* Fix build on cli

* Replace unsandboxed with unknown

* Apply feedback

* Prevent sending null values
2026-02-17 09:24:29 -08:00
SmithThe4th
7293b463fa Switched to used cipher list view for vault filters, and added perfomance logs for cipher list views (#17688) 2026-02-17 09:24:29 -08:00
Vicki League
99ced43275 [CL-806] Focus main content after SPA navigation occurs (#17112) 2026-02-17 09:24:28 -08:00
Thomas Rittson
3f8c4b58ee [PM-25913] Fix owners unable to rename provider-managed organization (#17482)
Update to match new API: send null properties
for organization properties that are unchanged
2026-02-17 09:24:25 -08:00
Dave
cca7fe6a40 feat(user-decryption-options) [PM-26413]: Remove ActiveUserState from UserDecryptionOptionsService (#16894)
* feat(user-decryption-options) [PM-26413]: Update UserDecryptionOptionsService and tests to use UserId-only APIs.

* feat(user-decryption-options) [PM-26413]: Update InternalUserDecryptionOptionsService call sites to use UserId-only API.

* feat(user-decryption-options) [PM-26413] Update userDecryptionOptions$ call sites to use the UserId-only API.

* feat(user-decryption-options) [PM-26413]: Update additional call sites.

* feat(user-decryption-options) [PM-26413]: Update dependencies and an additional call site.

* feat(user-verification-service) [PM-26413]: Replace where allowed by unrestricted imports invocation of UserVerificationService.hasMasterPassword (deprecated) with UserDecryptionOptions.hasMasterPasswordById$. Additional work to complete as tech debt tracked in PM-27009.

* feat(user-decryption-options) [PM-26413]: Update for non-null strict adherence.

* feat(user-decryption-options) [PM-26413]: Update type safety and defensive returns.

* chore(user-decryption-options) [PM-26413]: Comment cleanup.

* feat(user-decryption-options) [PM-26413]: Update tests.

* feat(user-decryption-options) [PM-26413]: Standardize null-checking on active account id for new API consumption.

* feat(vault-timeout-settings-service) [PM-26413]: Add test cases to illustrate null active account from AccountService.

* fix(fido2-user-verification-service-spec) [PM-26413]: Update test harness to use FakeAccountService.

* fix(downstream-components) [PM-26413]: Prefer use of the getUserId operator in all authenticated contexts for user id provided to UserDecryptionOptionsService.

---------

Co-authored-by: bnagawiecki <107435978+bnagawiecki@users.noreply.github.com>
2026-02-17 09:24:23 -08:00
Nick Krantz
b520c13092 do not show copy password button on the web for users that do not have access (#17635) 2026-02-17 09:24:22 -08:00
Oscar Hinton
f91aebce86 Migrate org reports to standalone and remove from loose components (#15791) 2026-02-17 09:24:21 -08:00
Oscar Hinton
67af777d76 Enable directive-class-suffix (#17385) 2026-02-17 09:24:20 -08:00
Todd Martin
49ea6f8c5a chore(feature-flag): Removed pm-28325-remove-pm-22110-disable-alternate-login-methods flag 2026-02-17 09:24:19 -08:00
Nick Krantz
b5e724548b [PM-24505] Manually open extension error message (#17116)
* update manual open message to be more generic to cover more scenarios

* update error state when attempting to open the extension via button press
2026-02-17 09:24:19 -08:00
Dave
fa0a26ecbb fix(two-factor) [PM-21204]: Users without premium cannot disable premium 2FA (#17134)
* refactor(two-factor-service) [PM-21204]: Stub API methods in TwoFactorService (domain).

* refactor(two-factor-service) [PM-21204]: Build out stubs and add documentation.

* refactor(two-factor-service) [PM-21204]: Update TwoFactorApiService call sites to use TwoFactorService.

* refactor(two-fatcor) [PM-21204]: Remove deprecated and unused formPromise methods.

* refactor(two-factor) [PM-21204]: Move 2FA-supporting services into common/auth/two-factor feature namespace.

* refactor(two-factor) [PM-21204]: Update imports for service/init containers.

* feat(two-factor) [PM-21204]: Add a disabling flow for Premium 2FA when enabled on a non-Premium account.

* fix(two-factor-service) [PM-21204]: Fix type-safety of module constants.

* fix(multiple) [PM-21204]: Prettier.

* fix(user-verification-dialog) [PM-21204]: Remove bodyText configuration for this use.

* fix(user-verification-dialog) [PM-21204]: Improve the error message displayed to the user.
2026-02-17 09:24:18 -08:00
Jared Snider
85eacdacc3 PM-28506 - TwoFactorSetupYubikey - refactor yubikey form to be rows with 1 field per row to allow remove button to be visible again. (#17519) 2026-02-17 09:24:15 -08:00
Vijay Oommen
2516a1e4af [PM-27287] Items in My Items should show in Inactive 2FA report (#17434) 2026-02-17 09:24:14 -08:00
Stephon Brown
fb753ac9e6 [PM-26044] Update Offboarding Survey for User and Organization (#17472)
* feat(billing): update messages to add reasons

* feat(billing): update survey with switching reason based on param

* fix(billing): revert value of switching reasons

* fix(billing): revert removal of tooExpensive message

* fix(billing): Add plan type to params and update switching logic

* fix(billing): update to include logic

* fix(billing): PR feedback
2026-02-17 09:24:14 -08:00
Brandon Treston
b22c8c2708 fix copy (#17504) 2026-02-17 09:24:13 -08:00
Alex Morask
c8dfc70999 [PM-27925] Refactor StripeService to allow more than one instance (#17467)
* Refactor StripeService to allow more than one instance per scope

* Fix linting issue

* Claude's feedback
2026-02-17 09:24:11 -08:00
Brandon Treston
5659947475 fix error in console (#17468) 2026-02-17 09:24:11 -08:00
Oscar Hinton
f232192ad2 [PM-28231] Enable component-class-suffix (#17384)
* Enable component-class-suffix

* Rename file
2026-02-17 09:24:03 -08:00
Brandon Treston
f9b7763d6d [PM-28216] Add org ability check for one time dialog (#17372)
* add org ability check for one time dialog

* exclude providers (cautionary step) and add tests
2026-02-17 09:23:57 -08:00
Andreas Coroiu
73bc7bb76b [PM-18046] Implement session storage (#17346)
* feat: add support for IPC client managed session storage

* feat: update SDK

* fix: using undecorated service in jslib module directly

* feat: add test case for web

* chore: document why we use any type

* fix: `ipc` too short

* typo: omg

* Revert "typo: omg"

This reverts commit 559b05eb5a.

* Revert "fix: `ipc` too short"

This reverts commit 35fc99e10b.

* fix: use camelCase
2026-02-17 09:23:54 -08:00
Mark Youssef
b7c8469256 [CL-672] update mobile design of dialog (#14828)
---------

Co-authored-by: Vicki League <vleague@bitwarden.com>
2026-02-17 09:23:54 -08:00
Alex Morask
7076eb1f11 [PM-28173] Only send 1 seat in Families tax calculation (#17368)
* Fix family seat count in calculation

* Fix test
2026-02-17 09:23:51 -08:00
Thomas Avery
27b7372553 [PM-24107] Migrate KM's usage of getUserKey from the key service (#17117)
* Remove internal use of getUserKey in the key service

* Move ownership of RotateableKeySet and remove usage of getUserKey

* Add input validation to createKeySet
2026-02-17 09:23:50 -08:00
Maciej Zieniuk
418d03ce78 moving ownership of Auth vault timeout input component to KM (#17180)
(cherry picked from commit 5e595dabf71cdb312ae9e1e3bcc3121b3aebf19f)
2026-02-17 09:23:48 -08:00
cyprain-okeke
65bea1a00f [PM-26682] [Milestone 2d] Display discount on subscription page (#17229)
* The discount badge implementation

* Use existing flag

* Added the top spaces as requested

* refactor: move discount-badge to pricing library and consolidate discount classes

* fix: add CommonModule import to discount-badge component and simplify discounted amount calculation

- Add CommonModule import to discount-badge component for *ngIf directive
- Simplify discountedSubscriptionAmount to use upcomingInvoice.amount from server instead of manual calculation

* Fix the lint errors

* Story update

---------

Co-authored-by: Alex Morask <amorask@bitwarden.com>
2026-02-17 09:23:48 -08:00
Stephon Brown
e0bac2e4fe [PM-28034] Pre-Launch Payment Defect Solution (#17331)
* fix(billing): update to password manager to signal

* fix(billing): take first value so the dialog doesn't show again

* fix(billing): add families plan to request builder

* fix(billing): feedback and type update

* fix(billing): fix selectedplan call
2026-02-17 09:23:46 -08:00
Jordan Aasen
6de2126242 [PM-24066] - handle unknown ciphers in individual vault (#17323)
* handle unknown ciphers in individual vault

* handle in edit
2026-02-17 09:23:45 -08:00
Alex Morask
526f7854fa [PM-279699] Clear premium interest when user subscribes or closes dialog (#17221)
* Clear premium interest when user subscribes to premium or backs out of dialog

* Kyle's feedback
2026-02-17 09:23:45 -08:00
Kyle Denney
e0c0364064 [PM-27854] close dialog when redirecting to premium page (#17243) 2026-02-17 09:23:45 -08:00
Maciej Zieniuk
6cf791c753 [PM-26056] Consolidated session timeout component (#16988)
* consolidated session timeout settings component

* rename preferences to appearance

* race condition bug on computed signal

* outdated header for browser

* unnecessary padding

* remove required on action, fix build

* rename localization key

* missing user id

* required

* cleanup task

* eslint fix signals rollback

* takeUntilDestroyed, null checks

* move browser specific logic outside shared component

* explicit input type

* input name

* takeUntilDestroyed, no toast

* unit tests

* cleanup

* cleanup, correct link to deprecation jira

* tech debt todo with jira

* missing web localization key when policy is on

* relative import

* extracting timeout options to component service

* duplicate localization key

* fix failing test

* subsequent timeout action selecting opening without dialog on first dialog cancellation

* default locale can be null

* unit tests failing

* rename, simplifications

* one if else feature flag

* timeout input component rendering before async pipe completion
2026-02-17 09:23:44 -08:00
Vicki League
874fa41ee0 [PM-26984] Use medium instead of semibold or bold, and for headings (#17184) 2026-02-17 09:23:43 -08:00
SmithThe4th
8539aa079e Removed unused dependency (#17319) 2026-02-17 09:23:42 -08:00
Jordan Aasen
d09853ed9c Merge branch 'main' into PM-25685 2025-11-10 10:02:13 -08:00
Kyle Denney
e3acd27dec [PM-24284] - milestone 3 (#17230)
* first draft

# Conflicts:
#	apps/web/src/app/billing/individual/upgrade/upgrade-payment/services/upgrade-payment.service.ts
#	apps/web/src/app/billing/organizations/organization-plans.component.ts
#	libs/common/src/billing/services/subscription-pricing.service.ts
#	libs/common/src/enums/feature-flag.enum.ts

* more filtering for pricing cards

* prettier

* tests

* tests v2
2025-11-10 11:50:49 -06:00
Patrick-Pimentel-Bitwarden
e9e731ecba fix(beta-tag-removal): [PM-26457] Remove Beta Tag Passkey Login (#17226)
* fix(beta-tag-removal): [PM-26457] Remove Beta Tag Passkey Login - Removed beta tag and locale string for login with passkey.
2025-11-10 11:01:24 -05:00
Rui Tomé
cb863b44d5 [PM-26430] Remove Type property from PolicyRequestModel to use route parameter only (#16960)
* Remove Type property from PolicyRequestModel to use route parameter only

* Remove PolicyType property from policy update request in auto-confirm edit policy dialog

* Run prettier
2025-11-10 15:27:48 +00:00
Brandon Treston
19626d1b3e [PM-26363] Add one time setup dialog for auto confirm (#17104)
* add one time setup dialog for auto confirm

* add one time setup dialog for auto confirm

* fix copy, padding, cleanup observable logic

* cleanup

* cleanup

* refactor

* clean up

* more cleanup

* Fix deleted files

This reverts commit 7c18a5e512.
2025-11-07 15:58:39 -05:00
Bernd Schoolmann
4f9ae78598 [PM-27515] Fix 2fa settings not working after KDF change (#17070)
* Always derive authentication data fresh for UV

* Cleanup

* Add tests

* Fix remote UV

* Fix test

* Fix test

* Address feedback

* Fix build

* Update libs/common/src/auth/types/verification.ts

Co-authored-by: Maciej Zieniuk <167752252+mzieniukbw@users.noreply.github.com>

* Remove unused var

* Fix relative import

* Fix types

---------

Co-authored-by: Maciej Zieniuk <167752252+mzieniukbw@users.noreply.github.com>
2025-11-07 18:36:02 +01:00
Maximilian Power
e9a25d4e8c [PM-27722] Deprecate risk insights terminology and rename to access intelligence (#17170)
* Deprecate risk insights terminology and rename to access intelligence
2025-11-06 18:53:32 +00:00
Vicki League
c404ee210b [PM-26984] Use medium instead of semibold or bold (#17191) 2025-11-06 11:27:46 -05:00