* PM-19555 - LogoutService - build abstraction, default, and extension service and register with service modules
* PM-19555 - Lock Comp - use logoutService
* PM-19555 - LoginDecryptionOptions - Use logout service which removed need for extension-login-decryption-options.service
* PM-19555 - AccountSwitcher logic update - (1) Use logout service + redirect guard routing (2) Remove logout method from account switcher service (3) use new NewActiveUser type
* PM-19555 - Extension - Acct Switcher comp - clean up TODOs
* PM-19555 - Add TODOs for remaining tech debt
* PM-19555 - Add tests for new logout services.
* PM-19555 - Extension - LoginInitiated - show acct switcher b/c user is AuthN
* PM-19555 - Add TODO to replace LogoutCallback with LogoutService
* PM-19555 WIP
* PM-19555 - Extension App Comp - account switching to account in TDE locked state works now.
* PM-19555 - Extension App Comp - add docs
* PM-19555 - Extension App Comp - add early return
* PM-19555 - Desktop App Comp - add handling for TDE lock case to switch account logic.
* PM-19555 - Extension - Account Component - if account unlocked go to vault
* PM-19555 - Per PR feedback, clean up unnecessary nullish coalescing operator.
* PM-19555 - Extension - AppComponent - fix everHadUserKey merge issue
* PM-19555 - PR feedback - refactor switchAccount and locked message handling on browser & desktop to require user id. I audited all callsites for both to ensure this *shouldn't* error.
* Add comments to AuditService Abstraction
* Replace throttle usage with rxjs mergeMap with concurrent limit
* Add test cases for audit service
* Remove throttle
* add restricted item types service and apply it to filter web cipher
* code cleanup. add shareReplay
* account for multiple orgs when restricting item types
* restrict item types for specific orgs
* clean up logic. use policiesByType$
* track by item.type
* clean up filtering. prefer observable. do not exempt owners for restricted item types
* simplify in vault-filter. move item filter logic to vault. fix tests
* don't return early in filter-function
* Split up userkey rotation v2 and add tests
* Fix eslint
* Fix type errors
* Fix tests
* Clear up trusted key naming
* Split up getNewAccountKeys
* Add trim and lowercase
* Replace user.email with masterKeySalt
* Add wasTrustDenied to verifyTrust in key rotation service
* Move testable userkey rotation service code to testable class
* Fix build
* Undo changes
* Fix incorrect behavior on aborting key rotation and fix import
* Fix tests
* Make members of userkey rotation service protected
* Fix type error
* Cleanup and add injectable annotation
* Fix tests
* Update apps/web/src/app/key-management/key-rotation/user-key-rotation.service.ts
Co-authored-by: Thomas Avery <43214426+Thomas-Avery@users.noreply.github.com>
* Remove v1 rotation request
---------
Co-authored-by: Thomas Avery <43214426+Thomas-Avery@users.noreply.github.com>
* Refactor components to remove limitItemDeletion feature flag usage
This commit simplifies the logic in various components by removing the limitItemDeletion feature flag. The conditions for displaying restore and delete actions are now based solely on the cipher's permissions, enhancing code clarity and maintainability.
* Refactor cipher deletion logic to remove the feature flag and collection ID dependency
This commit updates the cipher deletion logic across multiple components and services by removing the unnecessary dependency on collection IDs. The `canDeleteCipher$` method now solely relies on the cipher's permissions, simplifying the code and improving maintainability.
* Remove LimitItemDeletion feature flag from feature-flag enum and default values
* Remove configService from ServiceContainer and MainBackground constructor parameters
* Remove configService from RestoreCommand instantiation in OssServeConfigurator and VaultProgram classes
* Relax UUID validation
* Remove unneeded word boundaries
* Compress given the duplicated three parts
* Revert "Added separate function for GUID validation for passkeys (#6806)"
* add generic `union-of-values` helper
* migrate `GeneratorDialogAction` to a constant
* migrate `VaultState` to a constant
* migrate `AtRiskCarouselDialogResult` to a constant
* migrate `CredentialGeneratorDialogAction` to a constant
* migrate `FolderAddEditDialogResult` to a constant
* migrate `ViewCipherDialogResult` to a constant
* migrate `VisibleVaultBanner` to a constant
* migrate `VaultFilterLabel` to a constant
* migrate `WebVaultGeneratorDialogResult` to a constant
* migrate `BulkDeleteDialogResult` to a constant
* migrate `BulkMoveDialogResult` to a constant
* migrate `AddEditCipherDialogResult` to a constant
* migrate `VaultItemDialogResult` to a constant
* migrate `BrowserPromptState` to a constant
* migrate `NudgeType` to a constant
* migrate `SecurityTaskStatus` to a constant
* migrate `CipherRepromptType` to a constant
* migrate `SecureNoteType` to a constant
* migrate `FieldType` to a constant
* migrate `LinkedIdType` to a constant
* migrate `CollectionAssignmentResult` to a constant
* migrate `AddEditFolderDialogResult` to a constant
* migrate `AttachmentDialogResult` to a constant
* fix CipherType in delete organization dialog
* fix `in` statement in VaultFilter
* Fix build errors across enum updates
* fix two more CipherType castings
* update CipherResponse `CipherType`
* define type for `fieldType` parameter
* refine how `cipherTypeNames` is generated and add utility function for grabbing cipher type name
* use `CipherType` rather than `number`
* add stricter typing for `FieldType`
* add fixme for `CipherType` to be ADR-0025 compliant
* remove error throw for `toCipherTypeName` and instead update typing to have `| undefined`
* add helpers for CipherType conversions
* prefer `undefined`
* PM-16653 remove idp auto submit login step 1
* remove config service mock
* remove configservice from main.ts
* edit test describes to be accurate
* Update apps/browser/src/autofill/background/auto-submit-login.background.ts
Co-authored-by: Jonathan Prusik <jprusik@users.noreply.github.com>
---------
Co-authored-by: Jonathan Prusik <jprusik@users.noreply.github.com>
Upgrade Angular to v19 using the update guide.
- Add `standalone: false` to any missed component in stories or tests.
- Update jest.config to follow the new best practices.
* Get userId from response if available
This is a small improvement for the Auth team which avoids inspection of the access token, sometimes.
* Initialize sdk clients with a userId
* return both Cipher and encryptedFor when encrypting a cipher
Update cipher api requests to include encryptedFor attribute
* Prefer named types with documentation
* Update sdk to latest
* Fixup types
* Fixup tests
* Revert getting userId from identity token response
---------
Co-authored-by: Shane <smelton@bitwarden.com>
* Draft optimization of getNestedCollectionTree
* Added feature flag to wrap nestedTraverse_vNext. added the old implementation back in for feature flagging.
* Correction from CR
* Copied tests over for the vNext method.
---------
Co-authored-by: Thomas Rittson <trittson@bitwarden.com>
Upgrades to Eslint v9. Since this is a major version there were breaking changes, but since we've previously migrated to flat configs in #12806 those were minimal.
* move `fullSync` contents to private methods in prep to storing the respective promise
* store in-flight sync so multiple calls to the sync service are avoided
* Revert "store in-flight sync so multiple calls to the sync service are avoided"
This reverts commit 233c8e9d4b.
* Revert "move `fullSync` contents to private methods in prep to storing the respective promise"
This reverts commit 3f686ac6a4.
* store inflight API calls for sync service
- This avoids duplicate network requests in a relatively short amount of time but still allows consumers to call `fullSync` if needed
* add debug log for duplicate sync
* first draft at an idea dependency graph
* ignore existing errors
* remove conflicting rule regarding internal platform logic in libs
* review: allow components to import from platform
* PM-20540 - TwoFactorAuthComponent - Refactor determineDefaultSuccessRoute to rely on user's auth status as the loginStrategyService's state is cleared after successful AuthN
* PM-20540 - DeepLinkGuard - Refactor to exempt login-initiated so that TDE + unlock with MP + deep link works.
* doc: Add documentation and change folder structure.
* test: add test for new excluded route.
---------
Co-authored-by: Jared Snider <jsnider@bitwarden.com>
* Add new encrypt service functions
* Undo changes
* Cleanup
* Fix build
* Fix comments
* Switch encrypt service to use SDK functions
* Add cose migration on userkey rotation
* Update sdk
* Set featureflag to default disabled
* Add tests
* Update sdk to build 168
* Make changes according to feedback