* PM-7467 - Login Strategy bug - VaultTimeoutSettings will be undefined before the account is activated unless you pass in user ids to retrieve the data. This resulted in refresh tokens always being set into secure storage regardless of a user's vault timeout settings (logout should translate to memory)
* PM-7467 - TokenSvc - Fix bug in getRefreshToken which would retrieve the user's refresh token from secure storage even if the user had changed their vault timeout setting to log out which moved the refresh token into memory. Includes a migration to remove the no longer required REFRESH_TOKEN_MIGRATED_TO_SECURE_STORAGE state provider flag.
* PM-7467 - Per PR feedback, use IRREVERSIBLE for rollback.
Co-authored-by: Jake Fink <jfink@bitwarden.com>
* PM-7467 - fix tests
* PM-7467 - Fix migrator based on PR feedback.
* PM-7467 - Bump migration version
---------
Co-authored-by: Jake Fink <jfink@bitwarden.com>
Introduces a state manager that buffers data until an observed dependency signals it should
overwrite another state manager with the buffered data. It can be used to implement
migrations of encrypted data, edit-apply loops (such as used for save operations), and to
map between encryption keys/formats.
* OrgSvc - add new observable returning getAll$ method which accepts a required user id
* OrgSvc - make user id optional
* PolicySvc - getAll$ should use the new OrgSvc.getAll$ method so that it doesn't hang if there isn't an active user yet but a user id was passed in.
* Fix policy service tests
* remove active account unlocked from state service
* Remove status from account service `AccountInfo`
* Fixup lingering usages of status
Fixup missed factories
* Fixup account info usage
* fixup CLI build
* Fixup current account type
* Add helper for all auth statuses to auth service
* Fix tests
* Uncomment mistakenly commented code
* Rework logged out account exclusion tests
* Correct test description
* Avoid getters returning observables
* fixup type
* fixed issue with clearing search index state
* Decrease snap description character length to reach 128 limit (#8687)
* clear user index before account is totally cleaned up
* [AC-2436] Fix flashing unassigned items banner (#8689)
* Fix flashing banner for users who shouldn't see it
* Emit the right value the first time
* simplify further
* restore comment
* added logout clear on option
* removed redundant clear index from logout
---------
Co-authored-by: Joseph Flinn <58369717+joseph-flinn@users.noreply.github.com>
Co-authored-by: Thomas Rittson <31796059+eliykat@users.noreply.github.com>
* Boostrap basic banner, show for all admins
* Remove UI banner, fix method calls
* Invert showBanner -> hideBanner
* Add api call
* Minor tweaks and wording
* Change to active user state
* Add tests
* Fix mixed up names
* Simplify logic
* Add feature flag
* Do not clear on logout
* Show banner in browser as well
* Update apps/browser/src/_locales/en/messages.json
* Update copy
---------
Co-authored-by: Addison Beck <github@addisonbeck.com>
Co-authored-by: Addison Beck <hello@addisonbeck.com>
* Boostrap basic banner, show for all admins
* Remove UI banner, fix method calls
* Invert showBanner -> hideBanner
* Add api call
* Minor tweaks and wording
* Change to active user state
* Add tests
* Fix mixed up names
* Simplify logic
* Add feature flag
* Do not clear on logout
* Update apps/web/src/locales/en/messages.json
---------
Co-authored-by: Addison Beck <github@addisonbeck.com>
* refactored injector of services on the browser service module
* refactored the search and popup serach service to use state provider
* renamed back to default
* removed token service that was readded during merge conflict
* Updated search service construction on the cli
* updated to use user key definition
* Reafctored all components that refernce issearchable
* removed commented variable
* added uncommited code to remove dependencies not needed anymore
* added uncommited code to remove dependencies not needed anymore
* create mp and kdf service
* update mp service interface to not rely on active user
* rename observable methods
* update crypto service with new MP service
* add master password service to login strategies
- make fake service for easier testing
- fix crypto service tests
* update auth service and finish strategies
* auth request refactors
* more service refactors and constructor updates
* setMasterKey refactors
* remove master key methods from crypto service
* remove master key and hash from state service
* missed fixes
* create migrations and fix references
* fix master key imports
* default force set password reason to none
* add password reset reason observable factory to service
* remove kdf changes and migrate only disk data
* update migration number
* fix sync service deps
* use disk for force set password state
* fix desktop migration
* fix sso test
* fix tests
* fix more tests
* fix even more tests
* fix even more tests
* fix cli
* remove kdf service abstraction
* add missing deps for browser
* fix merge conflicts
* clear reset password reason on lock or logout
* fix tests
* fix other tests
* add jsdocs to abstraction
* use state provider in crypto service
* inverse master password service factory
* add clearOn to master password service
* add parameter validation to master password service
* add component level userId
* add missed userId
* migrate key hash
* fix login strategy service
* delete crypto master key from account
* migrate master key encrypted user key
* rename key hash to master key hash
* use mp service for getMasterKeyEncryptedUserKey
* fix tests
* fix user key decryption logic
* add clear methods to mp service
* fix circular dep and encryption issue
* fix test
* remove extra account service call
* use EncString in state provider
* fix tests
* return to using encrypted string for serialization
* Use UserKeys in biometric state
* Remove global clear todo. Answer is never
* User UserKeys in crypto state
* Clear userkey on both lock and logout via User Key Definitions
* Use UserKeyDefinitions in environment service
* Rely on userKeyDefinition to clear org keys
* Rely on userKeyDefinition to clear provider keys
* Rely on userKeyDefinition to clear user keys
* Rely on userKeyDefinitions to clear user asym key pair
Remove old compile flags which should no longer be required, and may even cause issues. secretsManager: false hides the app switcher which is now used for more than just secrets manager.
* Replacing state service with state provider
* Documentation indicating the differences between the 2 states used.
* Creating key definition, updating comments, and modifying test cases
* Adding the key definitions tests
* Documenting the observables
* Fixing the test issue with the awaitAsync import
* Removing browser state service stuff for merge fix
* no need to redefine interface members
* Renaming to DefaultBrowserStateService
* Specify user clear events for event upload
* Specify generator clear events
* Specify clear events for user send data
* Specify generic clear on logout for encrypted secret state
* Allow `clearOn`event to be passed into secret state
* Match current data persistence rules
* Clear ui memory on lock + logout
Unit tests trim vertical pipes when appear in the data packer's JSON data, but electron is not as forgiving. It throws errors in this situation. This fixes the error by trimming the pipes before b64 decoding the result.
* create mp and kdf service
* update mp service interface to not rely on active user
* rename observable methods
* update crypto service with new MP service
* add master password service to login strategies
- make fake service for easier testing
- fix crypto service tests
* update auth service and finish strategies
* auth request refactors
* more service refactors and constructor updates
* setMasterKey refactors
* remove master key methods from crypto service
* remove master key and hash from state service
* missed fixes
* create migrations and fix references
* fix master key imports
* default force set password reason to none
* add password reset reason observable factory to service
* remove kdf changes and migrate only disk data
* update migration number
* fix sync service deps
* use disk for force set password state
* fix desktop migration
* fix sso test
* fix tests
* fix more tests
* fix even more tests
* fix even more tests
* fix cli
* remove kdf service abstraction
* add missing deps for browser
* fix merge conflicts
* clear reset password reason on lock or logout
* fix tests
* fix other tests
* add jsdocs to abstraction
* use state provider in crypto service
* inverse master password service factory
* add clearOn to master password service
* add parameter validation to master password service
* add component level userId
* add missed userId
* migrate key hash
* fix login strategy service
* delete crypto master key from account
* migrate master key encrypted user key
* rename key hash to master key hash
* use mp service for getMasterKeyEncryptedUserKey
* fix tests
In https://github.com/bitwarden/clients/pull/8133 the premium state changed to
be derived from observables, which means we can get rid of the `purchasePremium`
messages that are sent and instead rely directly on the observable to distribute
the state.
* introduce legacy generators
* introduce generator navigation service
* Introduce default options. These accept a userId so that they can be policy-defined
* replace `GeneratorOptions` with backwards compatible `GeneratorNavigation`
* [PM-2871] Submenu UI elements cannot be navigated through keyboard when screen reader is active
* [PM-2871] Adding an aria-hidden value to menu divider elements
Fix environment selector being broken on desktop. When selecting self-hosted and filling in a url, the selector fails to update when returning and instead produces the following console error.