1
0
mirror of https://github.com/bitwarden/browser.git synced 2025-02-21 02:11:54 +01:00
Commit Graph

188 Commits

Author SHA1 Message Date
Patrick-Pimentel-Bitwarden
516246eab8
fix(active-user-state-refactor): [PM-18052] Jit Bug with SSO Service (#13292)
* fix(active-user-state-refactor): [PM-18052] Jit Bug with SSO Service - Fixed location of retrieving the active user id in one component.

* fix(active-user-state-refactor): [PM-18052] Jit Bug with SSO Service - Fixed up type safety.

* fix(active-user-state-refactor): [PM-18052] Jit Bug with SSO Service - Removed unnessesary subscriptions.

* fix(active-user-state-refactor): [PM-18052] Jit Bug with SSO Service - Fixed test.

* fix(active-user-state-refactor): [PM-18052] Jit Bug with SSO Service - Made code a little cleaner.
2025-02-06 16:06:26 -05:00
Bernd Schoolmann
2f8a7a95bd
[PM-15994] Move encrypt service to km ownership (#13220)
* Move encrypt service to km ownership

* Update imports for encrypt service abstraction and move bulk encrypt service abstraction

* Fix imports

* Fix further imports

* Fix imports

* Fix worker import
2025-02-05 17:39:11 +01:00
Patrick-Pimentel-Bitwarden
0523ce0b40
refactor(active-user-state-refactor): [PM-12040] Remove ActiveUserStatus For SSO Login Component (#13149)
* refactor(active-user-state-refactor): [PM-12040] Remove ActiveUserState from SSO Service - First pass of work to update the state. In the middle of testing.

* fix(active-user-state-refactor): [PM-12040] Remove ActiveUserState from SSO Service - Fix for jslib-services.module.ts

* fix(active-user-state-refactor): [PM-12040] Remove ActiveUserState from SSO Service - Fix main.background.ts

* test(active-user-state-refactor): [PM-12040] Remove ActiveUserState from SSO Service - Added simple tests

* fix(active-user-state-refactor): [PM-12040] Remove ActiveUserState from SSO Service - Tiny touchups.

* fix(active-user-state-refactor): [PM-12040] Remove ActiveUserState from SSO Service - Few fixes to resolve comments.

* fix(active-user-state-refactor): [PM-12040] Remove ActiveUserState from SSO Service - Changed place where userId is loaded.

* test(active-user-state-refactor): [PM-12040] Remove ActiveUserState from SSO Service - Fixed test.
2025-02-04 13:31:36 -05:00
Alec Rippberger
ec16efabf2
refactor(styles): [PM-17181] remove Bootstrap styles from UserVerificationFormInputComponent
Replace Bootstrap classes with Tailwind CSS equivalents to maintain consistent styling:
- Replace form-control with Tailwind input classes
- Replace btn and btn-outline-secondary with Tailwind button classes
- Replace d-block with tw-block
- Replace spacing and utility classes with tw- prefixed equivalents
- Replace box-content-row with Tailwind layout classes

[PM-17181]
2025-02-03 10:15:32 -06:00
Alec Rippberger
8e70d5b923
feat(auth): [PM-3953] generalize copy for login with device flows
Updates UI text and translations for the login with device feature to be more consistent and clear across desktop, browser and web clients. Changes include:

- Updated titles and content for login via auth request components
- Revised translations for device approval modal
- Updated notification titles and alert messages
- Simplified device management URL handling
- Added missing translations across platforms

Resolves PM-3953
2025-01-31 11:54:41 -06:00
Jared Snider
315e1338d5
PM-17466 - RegistrationFinishComp - Add call to loginSuccessHandlerService after successful login (#13059) 2025-01-24 13:25:51 -05:00
Alec Rippberger
aa1c0ca0ee
feat(auth): [PM-8221] implement device verification for unknown devices
Add device verification flow that requires users to enter an OTP when logging in from an unrecognized device. This includes:

- New device verification route and guard
- Email OTP verification component
- Authentication timeout handling

PM-8221
2025-01-23 12:57:48 -06:00
Patrick-Pimentel-Bitwarden
eb99eba284
refactor(email-verification-feature-flag): [PM-7882] Email Verificati… (#12718)
* refactor(email-verification-feature-flag): [PM-7882] Email Verification - Removed email feature flag.
2025-01-21 11:16:32 -05:00
Oscar Hinton
e5f83ff086
[PM-17031] Create UI-common (#12831)
Extract core functionality from `libs/angular` to allow teams to depend on `libs/ui-common` instead.

Moves the following functionality to `ui-common`.
- `I18nPipe`. `libs/angular` still has an old copy but `components` depends on the new variant from `ui-common`.
- `safeProvider`, `SafeProvider` and `SafeInjectionToken`. `libs/angular`re-exports these to avoid needing to update all consumers.
2025-01-17 10:42:31 -05:00
rr-bw
27e8a1f27c
fix(auth) [PM-17047] Change clientType expression to assignment (#12865)
Fixes a bug where we had an expression (`===`) that should be an assignment (`=`).

Feature Flag: UnauthenticatedExtensionUIRefresh
2025-01-14 11:23:51 -08:00
renovate[bot]
62e879940c
[deps] SM: Update typescript-eslint monorepo to v8 (major) (#10601)
* [deps] SM: Update typescript-eslint monorepo to v8

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Hinton <hinton@users.noreply.github.com>
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
2025-01-14 11:23:59 -05:00
Jared Snider
1fcdf25bf7
Auth/PM-16947 - Web - Device Management - Add Manage Auth Requests support (#12809)
* PM-16947 - JsLibServices - register default DefaultLoginApprovalComponentService

* PM-16947 - DeviceResponse - add interface for DevicePendingAuthRequest

* PM-16947 - Web translations - migrate all LoginApprovalComponent translations from desktop to web

* PM-16947 - LoginApprovalComp - (1) Add loading state (2) Refactor to return proper boolean results (3) Don't create race condition by trying to respond to the close event in the dialog and re-sending responses upon approve or deny click

* PM-16947 - DeviceManagementComponent - added support for approving and denying auth requests.

* PM-16947 - LoginApprovalComp - Add validation error

* PM-16947 - LoginApprovalComponent - remove validation service for now.

* PM-16947 - Re add validation

* PM-16947 - Fix LoginApprovalComponent tests
2025-01-13 14:39:48 -05:00
Oscar Hinton
db84ccf935
[PM-16838] Forbid imports containing /src/ (#12744)
Forbids bad imports containing /src/.
2025-01-10 10:37:34 -05:00
Oscar Hinton
653b730969
[PM-16872] Update libs to use explicit dependencies (#12770)
Update all libs to use explicit dependencies rather than relying on tsconfig.libs.json. This allows us to more easily understand the dependencies between libs and prevent users from accidentally adding new dependencies.

We still use tsconfig.libs (now renamed tsconfig.spec) for tests.
2025-01-10 11:21:38 +01:00
Thomas Avery
bb61b3df3a
[PM-15940] Add regen to SSO login (#12643)
* Add loginSuccessHandlerService to SSO login component

* Update regen service to handle SSO login
2025-01-08 16:41:02 -06:00
Thomas Avery
c0d3fe15d1
[PM-11528] Move Lock to KM ownership (#12407)
* update code owners

* Move lock component v2 to KM

* Add @bitwarden/key-management/angular to tsconfigs

* Move lock component service to KM

* Move lock component v1 to KM

* Update imports

* Move into @bitwarden/key-management

* Revert "Move into @bitwarden/key-management"

This reverts commit b7514fb8c2.

* Add to tsconfig.libs
2025-01-07 16:47:51 +01:00
Alec Rippberger
26f086368b
fix(auth): [PM-15987] improve email/master password entry back/forward navigation
- Fix back button behavior in Safari to reliably return to email entry screen
- Enable browser forward button after navigating back to email entry
- Move email validation to input event instead of blur
- Add continueClicked function to differentiate user clicks vs browser navigation
- Add email verification gate to SSO route
- Enhance master password validation logic
- Fix strict typing errors

Resolves PM-15987
2025-01-06 11:01:56 -08:00
rr-bw
d209da4c94
feat(auth): [PM-9674] Remove Deprecated LockComponents (#12453)
This PR deletes the legacy lock components from the Angular clients and also removes feature flag control from the routing. The lock component will now be based entirely on the new, recently refreshed LockComponent in libs/auth/angular.
2024-12-20 10:23:03 -08:00
rr-bw
ac13cf7ce6
feat(auth): [PM-15945] Add logout option to TDE approval page (#12445)
This PR adds a logout option to the TDE approval screen. A TDE user on this page cannot use the "Back" button or click the Bitwarden logo to navigate back to `/` because the user is currently authenticated, which means that navigating to the `/` route would activate the `redirectGuard` and simply route the user back to `/login-initiated`. So we must log the user out first before routing.

Feature Flags: `UnauthenticatedExtensionUIRefresh` ON
2024-12-17 12:48:37 -08:00
Thomas Avery
971c157f56
[PM-12700] Add private key regeneration process (#11829)
* add user asymmetric key api service

* Add user asymmetric key regen service

* add feature flag

* Add LoginSuccessHandlerService

* add loginSuccessHandlerService to BaseLoginViaWebAuthnComponent

* Only run loginSuccessHandlerService if webAuthn is used for vault decryption.

* Updates for TS strict

* bump SDK version

* swap to combineLatest

* Update abstractions
2024-12-16 12:00:17 -06:00
Alec Rippberger
edf90e62e7
fix(auth): [PM-15987] handle browser back button on login screen
Intercepts browser back button press on the login screen to properly 
transition back to email entry portion instead of unexpected navigation.

Resolves PM-15987
2024-12-16 09:22:15 -06:00
Ike
407a571e31
fix: show toast for other 400 errors (#12409) 2024-12-13 16:10:07 -08:00
rr-bw
8ec75613dc
fix(passkeys): [PM-13932] Fix passkey flow incorrect routing (#12363)
This PR fixes a bug in the LockComponent refresh that affected the setup/save and use passkey flows. The user was wrongly directly to the /vault after unlock instead of to /fido2 (the passkey screen).

Feature Flag: ExtensionRefresh ON
2024-12-12 13:10:54 -08:00
Alec Rippberger
0df7b53bb4
feat(sso): [PM-8114] implement SSO component UI refresh
Consolidates existing SSO components into a single unified component in
libs/auth, matching the new design system. This implementation:

- Creates a new shared SsoComponent with extracted business logic
- Adds feature flag support for unauth-ui-refresh
- Updates page styling including new icons and typography
- Preserves web client claimed domain logic
- Maintains backwards compatibility with legacy views

PM-8114

---------

Co-authored-by: Jared Snider <116684653+JaredSnider-Bitwarden@users.noreply.github.com>
Co-authored-by: Jared Snider <jsnider@bitwarden.com>
2024-12-12 10:28:30 -06:00
Matt Gibson
9c1e2ebd67
Typescript-strict-plugin (#12235)
* Use typescript-strict-plugin to iteratively turn on strict

* Add strict testing to pipeline

Can be executed locally through either `npm run test:types` for full type checking including spec files, or `npx tsc-strict` for only tsconfig.json included files.

* turn on strict for scripts directory

* Use plugin for all tsconfigs in monorepo

vscode is capable of executing tsc with plugins, but uses the most relevant tsconfig to do so. If the plugin is not a part of that config, it is skipped and developers get no feedback of strict compile time issues. These updates remedy that at the cost of slightly more complex removal of the plugin when the time comes.

* remove plugin from configs that extend one that already has it

* Update workspace settings to honor strict plugin

* Apply strict-plugin to native message test runner

* Update vscode workspace to use root tsc version

* `./node_modules/.bin/update-strict-comments` 🤖

This is a one-time operation. All future files should adhere to strict type checking.

* Add fixme to `ts-strict-ignore` comments

* `update-strict-comments` 🤖

repeated for new merge files
2024-12-09 20:58:50 +01:00
Alec Rippberger
69800d01ab
revert: [PR-13659] remove 2FA timeout logging and fix attempts
This reverts two previous commits:
- PM-13659 - 2FA Timeout Log All the things (#12275)
- Auth/PM-13659 - 2FA Timeout - Attempted Fix (#12263)
2024-12-06 13:42:32 -06:00
Jared Snider
9fcc4f0543
PM-13659 - 2FA Timeout Log All the things (#12275) 2024-12-06 12:43:17 -05:00
Jared Snider
8d68a2dd58
Auth/PM-13659 - 2FA Timeout - Attempted Fix (#12263)
fix(auth): attempt to resolve 2FA session timeout issue
2024-12-05 20:22:13 -05:00
Alec Rippberger
c073e91f17
feat(auth): [PM-13659] implement 2FA timeout handling across clients
Add timeout state management for two-factor authentication flows in web, desktop,
and browser extension clients. Includes:

- New timeout screen component with 5-minute session limit
- Updated UI elements and styling
- Comprehensive test coverage

Refs: PM-13659
2024-12-03 13:55:40 -06:00
rr-bw
820b03dd49
fix(biometrics): [PM-13901] Bugfix for "Ask for biometrics on launch does not auto prompt biometrics" (#12144)
This PR ensures that, on the Chrome browser extension, biometrics gets auto-prompted when the user selects "Ask for biometrics on launch" by resetting the `isInitialLockScreen` to `true` on active account change.

Feature flag: `ExtensionRefresh` ON.
2024-11-25 11:34:53 -08:00
Jared Snider
493f81a017
Auth/PM-15115 - New LoginComponent - Remove Captcha (#12077)
* PM-15115 - Captcha being deprecated so remove from new UI refreshed login component + start putting deprecated comments on some things.

* PM-15115 - Add Jira ticket to TODOs per best practice
2024-11-22 15:50:31 -05:00
Alec Rippberger
02ea368446
[PM-4816] Create shared LoginApprovalComponent (#11982)
* Stub out dialog

* Genericize LoginApprovalComponent

* update ipc mocks

* Remove changes to account component

* Remove changes to account component

* Remove debug

* Remove test component

* Remove added translations

* Fix failing test

* Run lint and prettier

* Rename LoginApprovalServiceAbstraction to LoginApprovalComponentServiceAbstraction

* Add back missing "isVisible" check before calling loginRequest

* Rename classes to contain "Component" in the name

* Add missing space between "login attempt" and fingerprint phrase

* Require email
2024-11-22 12:55:26 -06:00
rr-bw
9f99454b37
feat(auth): [PM-9693] Refresh LoginDecryptionOptionsComponent (#11782)
Creates a refreshed and consolidated `LoginDecryptionOptionsComponent` for use on all visual clients, which will be used when the `UnauthenticatedExtensionUIRefresh` feature flag is on.
2024-11-21 13:31:20 -08:00
Bernd Schoolmann
38c4eeb27d
[PM-14542] Move kdf to km ownership (#11877)
* Move kdf to km ownership

* Fix duplicate import

* Remove whitespace

* Fix double imports

* Fix desktop build

* Fix test error

* Fix imports

* Move ownership of kdftype to km

* Fix imports

---------

Co-authored-by: Matt Bishop <mbishop@bitwarden.com>
2024-11-21 13:45:28 +01:00
rr-bw
9429ae1d06
feat(auth): [PM-9723] Refresh LoginViaAuthRequestComponent (#11545)
Creates a refreshed and consolidated LoginViaAuthRequestComponent for use on all visual clients, which will be used when the UnauthenticatedExtensionUIRefresh feature flag is on.
2024-11-19 14:53:01 -08:00
Todd Martin
0308e6e180
Remove showPasswordless conditionals (#11928)
Co-authored-by: Matt Bishop <mbishop@bitwarden.com>
2024-11-15 12:34:02 -05:00
rr-bw
204eb3105b
update anon-layout and extension-anon-layout spacing (#11869) 2024-11-13 10:17:23 -08:00
rr-bw
7ef1d01401
[PM-13822] Password Hint UI tweaks (#11867)
* update env selector label

* update icon colors

* re-upload SVG with viewBox and correct classes
2024-11-13 09:46:58 -08:00
Alec Rippberger
f5e6fc8ed5
[PM-5237] Clients, Self Hosted: Login - Hide "Create account" when registration disabled (#11811)
* Add server settings model and service.

* Inject ServerSettingsService into the login-secondary-content component.

* Fix merge conflict

* Add server settings to old views

* Remove server settings from desktop/mobile

* Cleanup unused code

* Remove changes to default config

* Conditionally show/hide HR element

* Add tests

* PM-5237 - Move ServerSettingsService to jslib-services.module so it is the same across all clients and to solve NullInjectorErrors on desktop & browser extension

* Remove change to v1 components

* Rename ServerSettingsService to DefaultServerSettingsService

* Remove unnecessary map call

* Remove server interface in favor of using ServerSettings class

* Add back HR element

---------

Co-authored-by: Jared Snider <jsnider@bitwarden.com>
2024-11-06 17:57:07 -05:00
Alec Rippberger
1afb2f7769
Wrap login component email and MP entry states with invisible divs (#11884)
- Allows autofill to fill both email and password
2024-11-06 15:38:17 -06:00
Alec Rippberger
619651ca55
[PM-13818] Allow user to edit self-hosted url during registration (#11790)
* Trigger self hosted settings dialog on select close

* Simplify triggering self hosted env config dialog

* Always emit selected value

* Update variable naming of lastSelectedValue to userSelectedValue to better reflect purpose

* Add comment for userSelectedValue variable

* Remove userSelectedValue and simply emit a closed event

* Remove passing selectedRegion in closed event
2024-11-06 13:17:59 -06:00
Jared Snider
b5450227da
PM-14424 - LoginComponents should listen for unauthUiRefresh flag changes and forcibly change the UI on browser & desktop to make for a seamless experience without having to refresh. (#11830) 2024-11-05 14:02:51 -05:00
Todd Martin
a049b553a6
Update decryptUserKeyWithMasterKey to requireUserId (#11560)
* Updated decryptUserKeyWithMasterKey to requireUserId

* Removed unintended extra character.

* Added dependency to LogService.

* Fixed unlock command.
2024-11-01 11:21:18 -04:00
Jared Snider
4de7cb8012
BEEEP - Auth AccountService Improvements (#11779)
* BEEEP Adjacent - AccountService misc improvements - (1) prefer null over undefined and (2) add new Account type

* LockCompV2 - Fix activeAccount type per PR feedback

* AccountService - update getUserId per PR feedback.
2024-10-30 17:54:39 -04:00
Bernd Schoolmann
912ff886bc
[PM-12806] Fix minimum KDF validation (#11786)
* Fix minimum KDF validation

* Add better error messages

* Fix tests

* Fix tests
2024-10-30 17:35:15 +01:00
Alec Rippberger
9da80a6cba
[PM-8115] Desktop, Extension UI Refresh: Self-hosted Setup Dialog (#11597)
* Reimplement RegistrationSelfHostedEnvConfigDialogComponent

* Update EnvironmentSelectorComponent text based on feature flag.

* Initialize RegistrationSelfHostedEnvConfigDialog with existing values if self hosted

* Cleanup debug

* Add comment

* Remove changes to home and login components

* Remove changes to desktop login component

* Remove changes to browser home component

* Simplify accessing string.

* Add environment selector service.

* Cleanup unused imports in environment-selector

* Launch new env selector dialog from desktop

* Fix lint errors

* Address PR feedback: move dialog component, remove EnvironmentSelectorService, remove unused translation string

* Remove changes to AnonLayout

* PM-8115 - Export Re-usable component from Libs/auth for clean import elsewhere in clients.

* Remove unused accessingString variable

* Add success toast

---------

Co-authored-by: Jared Snider <jsnider@bitwarden.com>
2024-10-28 16:12:57 -05:00
Alec Rippberger
a3375dd5b8
Show master password error inline (#11740) 2024-10-28 11:30:20 -05:00
Bernd Schoolmann
e83dca529b
[PM-12607] Move key rotation to km ownership (#11709)
* Move key rotation to km ownership

* Fix build

* Move userkey rotation data provider abstraction to km ownership

* Move userkey rotation data provider abstraction to km ownership

* Fix linting

* Fix CODEOWNERS for key-management web

* Remove incorrect export

* Fix import error
2024-10-26 13:47:40 +02:00
Jared Snider
877d379f86
Auth/PM-8111 - LoginComponent Refactor Bug - Fix Extension SSO (#11699)
* PM-8111 - LoginComponent Refactor - I broke the browser SSO flow - fixing it as clientId doesn't persist unless it is in state qParam.

* PM-8111 - Fix DefaultLoginComponentService tests
2024-10-24 19:02:10 -04:00
Jared Snider
1fb1be56b3
Auth/PM-12613 - Registration with Email Verification - Provider Invite Flow (#11635)
* PM-12613 - AcceptProviderComp - Add support for new registration with email verification flow.

* PM-12613 - AcceptProviderComp - Reduce required params for finish registration to minimum

* PM-12613 - RegistrationFinish - Add passthrough logic for provider invite token

* PM-12613 - Update DefaultRegistrationFinishService finishRegistration tests to assert that all web only inputs are undefined on the outgoing request model

* PM-12613 - DefaultRegistrationFinishService - finishRegistration - Add missed mapping of optional properties into buildRegisterRequest

* PM-12613 - WebRegistrationFinishService - Add tests for additional token flows.
2024-10-24 17:21:06 -04:00