* Wire organization ID into AttachmentsV2Component for org-based ciphers
* Enhance AttachmentsV2Component to accept organization ID for improved handling of org-based ciphers
* Integrate organization ID into VaultComponent for AttachmentsV2Component to enhance org-based cipher handling
* Add unit tests for CipherAttachmentsComponent to validate attachment saving behavior for admins
- Introduced mocks for ApiService and OrganizationService in the test setup.
- Updated tests to check `saveAttachmentWithServer` calls with the correct parameters, including an `isAdmin` flag for admin API usage.
* Fix unit tests for AttachmentsV2Component by adding mocks for ApiService and OrganizationService
* Fix AttachmentsV2Component tests
* remove old add-edit-custom-fields component
- Also removes the individual vault add-edit-component where the custom fields component was used
- All of these components were unused
* remove unused translations for web
* Remove restriction from account security component
* Add the ability to manage pop-out to the LockComponentService
* Have the Firefox extension pop-out on biometric auto-prompt unlock
* adds aria-hidden to bit-icon when no aria-label provided
* add ariaLabel to logo svg usages
* add ariaLabel documentation
* default ariaLable value to undefined
* add logo label to translations
* adds i18n pipe to component
* Add binding to example docs
* [PM-13128] Enable Breadcrumb Policies
* [PM-13128] Enable Breadcrumb Policies
* [PM-13128] wip
* [PM-13128] wip
* [PM-13128] wip
* [PM-13128] wip
* remove dead code
* wip
* wip
* wip
* refactor
* Fix for providers
* revert to functional auth guard
* change prerequisite to info variant
* address comment
* r
* r
* r
* tests
* r
* r
* fix tests
* feedback
* fix tests
* fix tests
* Rename upselling to breadcrumbing
* Address feedback
* Fix build & tests
* Make the guard callback use Observable instead of a promise
* Pm 13128 suggestions (#14041)
* Rename new enum value
* Show the upgrade button when breadcrumbing is enabled
* Show mouse pointer when cursor is hovered above badge
* Do not make the dialogs overlap
* Align badge middle
* Gap
* Badge should be a `button` instead of `span`
* missing button@type
---------
Co-authored-by: Thomas Rittson <31796059+eliykat@users.noreply.github.com>
Co-authored-by: Alex Morask <amorask@bitwarden.com>
* Added nav item for f4e in org admin console
* shotgun surgery for adding "useAdminSponsoredFamilies" feature from the org table
* Resolved issue with members nav item also being selected when f4e is selected
* Separated out billing's logic from the org layout component
* Removed unused observable
* Moved logic to existing f4e policy service and added unit tests
* Resolved script typescript error
* Resolved goofy switchMap
* Add changes for the issue orgs
* Added changes for the dialog
* Rename the files properly
* Remove the commented code
* Change the implement to align with design
* Add todo comments
* Remove the comment todo
* Fix the uni test error
* Resolve the unit test
* Resolve the unit test issue
* Resolve the pr comments on any and route
* remove the any
* remove the generic validator
* Resolve the unit test
* Resolve the wrong message
* Resolve the duplicate route
---------
Co-authored-by: Conner Turnbull <cturnbull@bitwarden.com>
Co-authored-by: Conner Turnbull <133619638+cturnbull-bitwarden@users.noreply.github.com>
* Added nav item for f4e in org admin console
* shotgun surgery for adding "useAdminSponsoredFamilies" feature from the org table
* Resolved issue with members nav item also being selected when f4e is selected
* Separated out billing's logic from the org layout component
* Removed unused observable
* Moved logic to existing f4e policy service and added unit tests
* Resolved script typescript error
* Resolved goofy switchMap
---------
Co-authored-by: cyprain-okeke <108260115+cyprain-okeke@users.noreply.github.com>
* [PM-18707] Use different BroadcasterSubscriptionId in base view component to avoid collision with desktop view component
* [PM-18707] Use userId instead of payloadUserId for cipher notification syncs
* [PM-19032] Live Sync on Desktop (#13851)
* migrate the vault-items to an observables rather than async/promises
- this helps keep data in sync with the service state and avoids race conditions
* migrate the view component to an observables rather than async/promises
- this helps keep data in sync with the service state and avoids race conditions
* decrypt saved cipher from server
* bump timeout for upserting ciphers
* mark `go` as async in desktop vault
- previously it was a floating promise
* Revert "mark `go` as async in desktop vault"
This reverts commit fd28f40b18.
* Revert "bump timeout for upserting ciphers"
This reverts commit e963acc377.
* move vault utilities to `common` rather than `lib` to avoid circular dependencies
* use `perUserCache$` for `cipherViews$` to avoid new subscriptions from being created
* use userId from observable rather than locally set to be the most up to date
* [PM-18707] Add clearBuffer$ input to perUserCache$ helper so that the internal share replay buffers can be cleared
* [PM-18707] Rework forceCipherViews$ to clearBuffer$ refactor
- Add dependency for cipherDecryptionKeys$ for the cipherViews so that decryption is never attempted without keys
* [PM-18707] Add overload to perUserCache to satisfy type checker
* [PM-18707] Fix overloads
* [PM-18707] Add check for empty failed to decrypt ciphers
* [PM-18707] Mark vault component for check after observable emits.
The cipherViews$ observable now persists between subscriptions, meaning that updates via the sync push notifications can occur outside the AngularZone causing delays in updating the view.
---------
Co-authored-by: Nick Krantz <125900171+nick-livefront@users.noreply.github.com>
Co-authored-by: Nick Krantz <nick@livefront.com>
Fix issue where modal was not displayed when clicking Manage option for 2FA on Organizations. This adds the OrganizationDuo case to the dialogTitle method to properly handle this provider type.
PM-20180
* fix(PM-18888) : Create more strict checking of redirectURL to protect against open redirect attacks using regex.
* fix : modify comments and check for embedded credentials.
* feat : add testability to duo-redirect connector
* fix : fixing strict typing; Removed styling from duo-redirect.ts which allows us to test without adding additional files and configurations for jest.
* fix : remove duo-redirect.scss
- Remove Bootstrap styles from two-factor-setup component and replace with Tailwind equivalents
- Convert two factor components to standalone components to move away from LooseComponents
- Replace ul/li list with bit-item-group and bit-item components
- Integrate with the bit design system
---------
Co-authored-by: Oscar Hinton <Hinton@users.noreply.github.com>
Co-authored-by: Jared Snider <116684653+JaredSnider-Bitwarden@users.noreply.github.com>
* Add setupBusinessUnit to OrganizationBillingApiService
* Add setup-business-unit.component
* Updated designs and cleanup work
* Update existing logos for Provider Portal and Admin Console
* Fix broken test
* Add ssoExternalId to OrganizationUserAdminView and OrganizationUserDetailsResponse
- Updated OrganizationUserAdminView to include ssoExternalId property.
- Enhanced OrganizationUserDetailsResponse constructor to initialize ssoExternalId from response data.
* Add SSO External ID copy to messages.json
* Implement SSO External ID field in member dialog
- Added a new input field for ssoExternalId in the member dialog component.
- Introduced visibility logic for both externalId and ssoExternalId based on feature flags.
- Updated form control initialization to include ssoExternalId.
* feat: add foreground ipc service
* refactor: create abstract ipc service in libs
* wip: remove IPC service complexity
The code was making some wrong assumptions about how IPC is going to work. I'm removing everything and starting the content-script instead
* feat: working message sending from page to background
* refactor: move into common
* feat: somewhat complete web <-> browser link
* wip: ping command from web
* fix: import path
* fix: wip urls
* wip: add console log
* feat: successfull message sending (not receiving)
* feat: implement IPC using new refactored framework
* wip: add some console logs
* wip: almost working ping/pong
* feat: working ping/pong
* chore: clean-up ping/pong and some console logs
* chore: remove unused file
* fix: override lint rule
* chore: remove unused ping message
* feat: add tests for message queue
* fix: adapt to name changes and modifications to SDK branch
* fix: missing import
* fix: remove content script from manifest
The feature is not ready for prodution code yet. We will add dynamic injection with feature-flag support in a follow-up PR
* fix: remove fileless lp
* fix: make same changes to manifest v2
* fix: initialization functions
Add missing error handling, wait for the SDK to load and properly depend on the log service
* feat: use named id field
* chore: update sdk version to include IPC changes
* fix: remove messages$ buffer
* fix: forgot to commit package-lock
* feat: add additional destination check
* feat: only import type in ipc-message
* fix: typing issues
* feat: check message origin
Updates the InputPasswordComponent so that it can eventually be used in multiple set/change password scenarios.
Most importantly, this PR adds an InputPasswordFlow enum and @Input so that parent components can dictate which UI elements to show.