* Run side-effects in sdk unlock service
* Revert feature flag
* Tests and fix cli
* Set user ever had user key and add comment
* Update sdk
* Prettier
* Cleanup
* Only set biometric unlock when biometric enabled
* Clean up tests
* Fix DI
* Cleanup
* Cleanup
* Prettier
* Add test coverage and rename
* Cleanup tests
* Prettier
* Cleanup
* Refactor: Remove ConfigService dependency from auto-confirm related components
- Eliminated ConfigService from MainBackground, AutoConfirmPolicy, UserLayoutComponent, WebVaultPromptService, and organizationPolicyGuard.
- Updated logic to directly use organization properties instead of feature flags for auto-confirm functionality.
- Adjusted tests in DefaultAutomaticUserConfirmationService to reflect the removal of feature flag checks.
- Cleaned up unused imports related to ConfigService across various files.
* Refactor: Update date handling in tests and remove unused feature flag checks
- Changed date calculation in WebVaultExtensionPromptService tests to use milliseconds for accuracy.
- Removed unused feature flag checks from WebVaultPromptService tests, simplifying the logic and improving clarity.
* Refactor: Update organizationPolicyGuard to include ConfigService in feature callback
- Modified the organizationPolicyGuard to accept ConfigService as an additional parameter in the feature callback.
- Adjusted the SendComponent route to align with the updated guard implementation.
* Fix: Adjust date calculation in WebVaultExtensionPromptService tests for accuracy
- Updated the test to set the exact date to 30 days prior using setDate method for clarity and to avoid potential issues with DST boundaries.
* allow consumers of upload service to input block size
* implement progress bar for cipher attachment uploads
* refactor to use a constant for available block sizes
* rework tests to use AzureUploadBlockSize
* update cipher attachments to ensure 100% is shown for all attachments
* do not allocate real memory in test
* update file uploads to use `XMLHttpRequest` when possible to track progress
* remove unused block size
* update tests + make options optional
* fix unit tests to align with single block approach
* add optional chaining for optional parameter
* remove duplicate import
* catch error from xhr send
* remove redundant try/catch block
* use if/else syntax in attachment template
* add `applyPlatformHeaders` to consolidate header creations between methods.
* add feature flag for file upload changes for progress
* update constructor parameters
* only pass object when feature flag is enabled
* fix(saltForUser) [PM-33524] Update saltForUser$ for transition states
- e.g., TDE offboarding: user will have neither a master password nor
salt during transition. This is not a failure to make unlock data, it
is a gap in user state. A default salt should be provided to enable
the state transition.
* test(saltForUser) [PM-33524] Add test cases for user transition states
* docs(email-to-salt) [PM-33524] Annotate emailToSalt callsites with changes planned for Stage 3.
* docs(master-password-service) [PM-33524] Reintroduce/modify comments after main merge.
* implement multi-step policy ui framework
* policy wip
* Refactor organization data ownership policy component to use multi-step dialog and signals. Remove deprecated dialog component and update related tests. Add organizationId input to base policy edit component and implement save logic in the new dialog structure.
* Update multi-step policy edit dialog to handle loading state and improve template initialization. Adjust button disable logic to account for loading status and modify ViewChild static property for proper change detection.
* Refactor policy confirmation logic in base policy edit component. Remove deprecated confirm method and update policy edit dialog to handle confirmation checks dynamically. Adjust organization data ownership policy component to align with new confirmation structure.
* Update apps/web/src/app/admin-console/organizations/policies/policy-edit-definitions/auto-confirm-policy.component.html
Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>
* Refactor multi-step policy dialog component and remove legacy confirm method
- Deleted the multi-step policy plan documentation.
- Introduced a new `MultiStepPolicyEditDialogComponent` to handle multi-step workflows.
- Updated `BasePolicyEditComponent` to support multi-step configurations and removed the deprecated `confirm()` method.
- Enhanced `PolicyStep` type to include optional `disableSave` and `bodyContent` properties.
- Adjusted HTML templates to utilize signals for dynamic content rendering.
- Refactored existing policy components to integrate with the new multi-step dialog structure.
* Refactor AutoConfirmPolicy component constructor to use readonly modifier for firstTimeDialog parameter
* Update multi-step policy edit dialog template to ensure proper rendering of policy form before lifecycle hooks. Added comment for clarity on rendering behavior.
* Update apps/web/src/app/admin-console/organizations/policies/policy-edit-definitions/auto-confirm-policy.component.html
Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>
* Add confirmation step before policy submission in dialog component
- Introduced an optional `confirm` method in `BasePolicyEditComponent` to allow components to implement a confirmation step before saving.
- Updated `PolicyEditDialogComponent` to call the `confirm` method and handle user confirmation.
- Added new test files for `AutoConfirmPolicyEditComponent` and `MultiStepPolicyEditDialogComponent` to ensure proper functionality and behavior of the new confirmation logic.
* Update apps/web/src/app/admin-console/organizations/policies/policy-edit-definitions/vnext-organization-data-ownership.component.ts
Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>
* Refactor policy edit components to streamline side effects and improve save logic
- Moved side effect logic from inline definitions to dedicated methods in AutoConfirmPolicyEditComponent.
- Updated vNextOrganizationDataOwnershipPolicyComponent to remove unused template references.
- Adjusted PolicyStep type to allow for side effects returning void.
- Enhanced save button logic in MultiStepPolicyEditDialogComponent to utilize a computed signal for save state management.
* Enhance MultiStepPolicyEditDialogComponent tests and update references
- Refactored tests in multi-step policy edit dialog to improve saveDisabled logic and ensure accurate state management.
- Updated references from AutoConfirmPolicyDialogComponent to MultiStepPolicyEditDialogComponent in web-vault-prompt service tests for consistency.
* Refactor auto-confirm policy component template and update imports
- Improved readability of the auto-confirm policy component template by formatting the button element.
- Cleaned up import statements in the auto-confirm policy component test file for consistency.
* Update WebVaultPromptService tests to validate firstTimeDialog property
- Added assertion to ensure the firstTimeDialog property is correctly passed in the policy data during dialog closure in WebVaultPromptService tests.
* Refactor policy edit components to support migration to new policy steps
- Added TODO comments in BasePolicyEditComponent and PolicyEditDialogComponent to indicate the removal of the confirm method when the `MigrateMyVaultToMyItems` feature flag is deprecated.
- Updated vNextOrganizationDataOwnershipPolicyComponent to ensure proper handling of organizationId.
- Enhanced MultiStepPolicyEditDialogComponent template for improved subtitle handling and readability.
* Refactor policy edit components to utilize Angular's input function
- Replaced traditional @Input() properties with the new input() function in BasePolicyEditComponent for better reactivity.
- Updated policy edit dialog component to set inputs using the new method for improved clarity and consistency.
- Adjusted various policy components to ensure compatibility with the new input handling, enhancing overall code maintainability.
* fix(policy-edit): update policy access method to use function call syntax
Changed the way policy properties are accessed in the auto-confirm policy component template, ensuring compatibility with the updated policy structure.
* refactor(session-timeout): update policyResponse handling in component and tests
Modified the SessionTimeoutPolicyComponent to use function call syntax for accessing policyResponse. Updated corresponding unit tests to reflect this change, ensuring consistent handling of policy data across the component and its tests.
* refactor(policy-edit-dialog): simplify test structure and improve saveDisabled logic
Updated the unit tests for MultiStepPolicyEditDialogComponent to eliminate the use of fakeAsync and detectChanges, replacing them with direct state manipulation and TestBed.flushEffects(). This change enhances test clarity and reliability. Additionally, refactored the account age calculation in WebVaultExtensionPromptService to use UTC midnight for accurate day counting, addressing potential off-by-one errors.
* Fix change to prompt service which was unneeded
* refactor(policy-edit): enhance savePolicy method and inject dependencies
Updated the BasePolicyEditComponent to inject AccountService, KeyService, and PolicyApiServiceAbstraction. Refactored the savePolicy method to streamline the policy saving process, ensuring proper handling of organization keys and error management. Adjusted AutoConfirmPolicyEditComponent and vNextOrganizationDataOwnershipPolicyComponent to utilize the new savePolicy implementation.
* refactor(policy-edit): remove unused AccountService dependency
Removed the AccountService dependency from MasterPasswordPolicyComponent and ResetPasswordPolicyComponent as it was not utilized. Added a getter for autoConfirmPolicy in AutoConfirmPolicyEditComponent to enhance code clarity.
* refactor(policy-edit): update sideEffect callbacks in AutoConfirmPolicyEditComponent
Modified the sideEffect properties in the AutoConfirmPolicyEditComponent to use arrow functions, ensuring proper context binding for the savePolicy and navigateToExtensionPromptStep methods.
* refactor(policy-edit): update sideEffect to use arrow function in vNextOrganizationDataOwnershipPolicyComponent
Changed the sideEffect property in the vNextOrganizationDataOwnershipPolicyComponent to use an arrow function for the savePolicy method, ensuring proper context binding.
* Fixes tests for PR
* refactor(vault): improve account age calculation to use UTC boundaries
Updated the account age calculation in WebVaultExtensionPromptService to utilize UTC midnight boundaries, preventing issues with Daylight Saving Time skewing the day count.
* Refactor PolicyEditDialogComponent to improve signal usage for save button state management
- Changed saveDisabled property to use a private signal for better encapsulation.
- Updated template bindings to call loading() and saveDisabled() as functions for correct state handling.
- Enhanced observables management for save button disable logic to ensure proper state updates.
* Fix optional chaining in policy confirmation and add policy steps to vNext organization data ownership component
* Update tests for vNext organization data ownership component to use fixture inputs and add missing service mocks
---------
Co-authored-by: Brandon <btreston@bitwarden.com>
Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>
* [PM-33580] fix: skip change-password notification when no ciphers exist for URL
* [PM-33580] consolidate password-only notification branches into single block
---------
Signed-off-by: Ben Brooks <bbrooks@bitwarden.com>
* check for open popup with polling to allow for more deviation in browser behavior
* firefox bug has been resolved, remove check for firefox
* add check for `getContexts` returning `undefined` rather than a promise in MV2 scenarios
* remove old tests
* fix merge conflict mistake
- Updates the line labels for the "applications" view in the trend chart. Now matches Figma design
- Right aligns the chart's period selector dropdown items. Now matches Figma design
- Chart wraps period selector and shrinks view selector button at small screen sizes, fixes overflow issue.
* fix(bug): Admin/Owner viewing and editing ciphers from within health reports
* Change check for unassigned ciphers to include default collection check
* Remove unnecessary typecasting