* add restricted item types to legacy vault components
* filter out restricted item types from new menu item in desktop
* use CIPHER_MENU_ITEMS
* use CIPHER_MENU_ITEMS. move restricted cipher service to common
* use move restricted item types service to libs. re-use cipher menu items
* add shareReplay. change variable name
* move restricted filter to search service. remove unecessary import
* add reusable service method
* clean up spec
* add optional chain
* remove duplicate import
* move isCipherViewRestricted to service module
* fix logic
* fix logic
* remove extra space
---------
Co-authored-by: SmithThe4th <gsmith@bitwarden.com>
* Added service to get restricted cipher and used that to hide in autofill settings
* Referenced files from the work done on web
* Fixed restrictedCardType$ observable
* Created resuseable cipher menu items type
(cherry picked from commit 34be7f7ffef135aea2449e11e45e638ebaf34ee8)
* Updated new item dropdown to filter out restricted type and also render the menu items dynamically
(cherry picked from commit 566099ba9f3dbd7f18077dbc5b8ed44f51a94bfc)
* Updated service to have cipher types as an observable
(cherry picked from commit 6848e5f75803eb45e2262c617c9805359861ad14)
* Refactored service to have use CIPHER MENU ITEMS type and filter restricted rypes and return an observable
(cherry picked from commit e25c4eb18af895deac762b9e2d7ae69cc235f224)
* Fixed type enum
* Referenced files from the work done on web
* Referenced change from the work done on web
* Remove comment
* Remove cipher type from autofill suggestion list when enabled
* revert autofillcipher$ change
* Fixed test
* Added sharereplay to restrictedCardType$ observable
* Added startwith operator
* Add organization exemptions to restricted filter
* 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)"
* feat(nx): add basic-lib generator for streamlined library creation
This adds a new nx-plugin library with a generator for creating "common" type
Bitwarden libs. It is set up to accept a lib name, description, team, and
directory. It then
- Creates a folder in the directory (default to libs)
- Sets up complete library scaffolding:
- README with team ownership
- Build, lint and test task configuration
- Test infrastructure
- Configures TypeScript path mapping
- Updates CODEOWNERS with team ownership
- Runs npm i
This will make library creation more consistent and reduce manual boilerplate setup.
The plugin design itself was generated by `npx nx g plugin`. This means we
used a plugin to generate a plugin that exports generators. To create our
generator generator, we first needed a generator.
* fix(dirt/card): correct tsconfig path in jest configuration
Fix the relative path to tsconfig.base in the dirt/card library's Jest config.
The path was incorrectly using four parent directory traversals (../../../../)
when only three (../../../) were needed to reach the project root.
* chore(codeowners): clarify some nx ownership stuff
* 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`
* remove margin bottom from empty vault nudge
* update page title to vault options
* show badge on import of vault settings
* add margin between no items title and icon
* add mock to test
* add comment for destroying vault settings page
* fix logic for manage/create collection
* account for deleted ciphers when showing the import nudge
* refactor name of vault import nudge