* Require init in i18n service.
this is needed to load translations and set translation locale
* No longer need to cast i18n
* Expose user preferred locale in i18nService
This is for correctly displaying `default` when no locale has been set in preferences components. The `locale$` observable should always resolve to the currently locale currently being translated to.
* create domain settings state provider
* replace callsites for defaultUriMatch and neverDomains with DomainSettingsService equivalents
* replace callsites for equivalentDomains with DomainSettingsService equivalents and clean up unused AccountSettingsSettings
* add migrations for domain settings state
* do not use enum for URI match strategy constants and types
* add getUrlEquivalentDomains test
* PR suggestions/cleanup
* refactor getUrlEquivalentDomains to return an observable
Co-authored-by: Justin Baur <19896123+justindbaur@users.noreply.github.com>
Co-authored-by: ✨ Audrey ✨ <ajensen@bitwarden.com>
* update tests
* add UriMatchStrategy docs notes
* service class renames
* use service abstraction at callsites previously using service class directly
---------
Co-authored-by: Justin Baur <19896123+justindbaur@users.noreply.github.com>
Co-authored-by: ✨ Audrey ✨ <ajensen@bitwarden.com>
* Use state provider to store preferred language
* migrate preferred language
* Use new i18n provider to get LOCAL_ID
* Fix preloaded english i18n
This is a mock service that forces english translations, it doesn't need the i18n interface that allows changing of locales.
* PR improvements
* Fixup merge
* Fix invite member dialog not submitting on enter
updateOn: onBlur is unnecessary with component library forms
and was preventing the form from being submitted without deselecting
the email field
* Simplify name for validator
* Revert "[PM-5277] Migrate Sync Service to State Provider (#7680)"
This reverts commit 78008a9e1e.
Includes a noop migration builder that allows us to bridge over the deleted migration
* Prefer revert migrations to noop
this revert avoids the need to change behavior between released vs unreleased migrations and keeps some dangerous code out of the repo :success:
* Update ordering of badge settings migrator to be consistent with `rc`, which was cut with only up to version 25
* Fix missing type import
* Sent initiation path for organization and user signups
* Rename organizationQueryParameter > organizationTypeQueryParameter
* Jared's feedback
* Split PM & SM initiation path
* create auth request service
* copy methods from auth crypto service
* register new auth request service
* remove refs to auth request crypto service
* remove auth request crypto service
* remove passwordless login method from login strategy service
* add docs to auth request service
* [AC-2195] Update canEditAnyCipher permission to make an exception for Custom users with editAnyCollection permission
* [AC-2195] Update V1 FC flag check to include check for an organization's FC status
* [AC-2195] Remove redundant collection management setting check that was hiding the restricted access message for custom users with deleteAnyCollection
* [AC-2195] Ensure users with canEditAnyCollections can edit all collections
* WIP admin console layout
* Update icons
* Migrate more things
* Migrate the last pages
* Move header to web
* Fix story not working
* Convert header component to standalone
* Migrate org layout to standalone
* Enable org switcher
* Add AC to product switcher
* Migrate provider portal to vertical nav
* Migrate PM
* Prettier fixes
* Change AC and PP to use secondary variant layout & update logos
* Remove full width setting
* Remove commented code
* Add header to report pages
* Add provider portal banner
* Fix banner for billing pages
* Move vault title to header
* Prevent scrollbar jumping
* Move send button to header
* Replace search input with bit-search
* Remove unused files and css
* Add banner
* Tweak storage option
* Fix duplicate nav item after merge
* Migrate banner state to state provider framework
* [AC-2078] Fix device approvals header
* [PM-5861] Hide AC from product switcher for users that do not have access
* [PM-5860] Fix Vault and Send page headers
* [AC-2075] Fix missing link on reporting nav group
* [AC-2079] Hide Payment Method and Billing History pages for self-hosted instances
* [AC-2090] Hide reports/event log nav items for users that do not have permission
* [AC-2092] Fix missing provider portal option in product switcher on page load
* Add null check for organization in org layout component
* [AC-2094] Fix missing page header for new client orgs page
* [AC-2093] Update New client button styling
* Fix failing test after merge
* [PM-2087] Use disk-local for web layout banner
* [PM-6041] Update banner copy to read "web app"
* [PM-6094] Update banner link to marketing URL
* [PM-6114] add CL container component to VVR pages (#7802)
* create bit-container component
* add container to all page components
* Fix linting errors after merge with main
* Fix product switcher stories
* Fix web-header stories
* mock org state properly in product switcher stories (#7956)
* refactor: move web layout migration banner logic into a service (#7958)
* make CL codeowner of web header files
* move migration banner logic to service; update stories
* [PM-5862] Ensure a sync has run before hiding navigation links
* Remove leftover banner global state
* Re-add dropped selfHosted ngIf
* Add rel noreferrer
* Remove comment
---------
Co-authored-by: Shane Melton <smelton@bitwarden.com>
Co-authored-by: Will Martin <contact@willmartian.com>
* Fix nextMock arguments
* Add state for biometric prompts
* Use biometric state for prompts
* Migrate biometric prompt data
* wire up biometric state to logouts
* Add migrator to migrate list
* Remove usages of prompt automatically
Explicitly list non-nulled state as intentional
* `npm run prettier` 🤖
* Fix web lock component
* [AC-2193] Hide collection access restricted state when there are visible sub-collections
* [AC-2193] Undo change to showCollectionAccessRestricted
* [AC-2193] Update not items and access restricted views to only show if there are both no collections or items available
* update collection service to use new state provider framework, remove stateservice from collection service, update collections state provider with migrate file and unit test
* enable duo for desktop
* added missing return path in main.ts
* updated logic in component
* removed switch added await; updated logic in main.
* addressed subscription concerns in main; updated formatting in 2fa component
* Update Duo case in locales
* Create MigrationRunner
- Create MigrationRunner Service for running migrations in StateService
- Create web override so that migrations also run against `localStorage`
* Fix Web StateService
* Fix WebMigrationRunner
* Fix CLI
* Fix ElectronStateService
* Update Comment
* More Common Scenarios
* Move libs/exporter into libs/tools/*
Migrating all files from libs/exporter over to libs/tools/export/vault-export/vault-export-core
Rename package to vault-export-core
Fix all file paths
* Update libs and tsconfig imports
* Fix client imports
* Fix eslint, jest and package-lock.json
* Update CODEOWNERS
* Add README.md to whitelist-capital-letters
* Fix vault-export-service tests not running
* Update libs/tools/export/vault-export/README.md
Co-authored-by: Vincent Salucci <26154748+vincentsalucci@users.noreply.github.com>
* Fix types imports
* Export types from vault-export-core
* Fixed content of README
---------
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
Co-authored-by: Vincent Salucci <26154748+vincentsalucci@users.noreply.github.com>
* Removed passwordless-login feature flag
* Removed conditional on login component.
* Added back reference accidentally deleted.
* Fixed initialization of the service in tests.
* Removed unused private variable.
* Updated DI to remove configService
* Undid changes to workspace file.
* Undid all changes to workspace file
* Undid merge changes to collection dialog
* Linting
* [AC-1124] Add getManyFromApiForOrganization to cipher.service.ts
* [AC-1124] Use getManyFromApiForOrganization when a user does not have access to all ciphers
* [AC-1124] Vault changes
- Show new collection access restricted view
- Include unassigned ciphers for restricted admins
- Restrict collections when creating/cloning/editing ciphers
* [AC-1124] Update edit cipher on page navigation to check if user can access the cipher
* [AC-1124] Hide ciphers from restricted collections
* [AC-1124] Ensure providers are not shown collection access restricted view
* [AC-1124] Modify add-edit component to call the correct endpoint when a restricted admin attempts to add-edit a cipher
* [AC-1124] Fix bug after merge with main
* [AC-1124] Use private this._organization
* [AC-1124] Fix broken builds
* create sso service
* rename sso service to sso-login service
* rename service
* add references to sso login service and update state calls
* fix browser
* fix desktop
* return promises
* remove sso state from account and global objects
* more descriptive org sso identifier method names
* fix sso tests
* fix tests
* [AC-1899] Only take the first emission of feature flags and organizations to avoid overwriting form values
* [AC-1899] Fix flexibleCollections flag to update when selected org changes
* [AC-1899] Prettier
* [PM-5277] Introduce lastSync state via State Providers
* [PM-5277] Add migrator and tests
* [PM-5277] Use memory for web storage location
* [PM-5277] Remove lastSync methods from state service
* [PM-5277] Remove lastSync from AccountProfile
* [PM-5277] Use string instead of Date to fix serialization for chrome.storage API in Browser
* [PM-5277] Only set account if lastSync was deleted during migration
* [PM-5277] Fix spec file
* added state definitionand key definition for folder service
* added data migrations
* created folder to house key definitions
* deleted browser-folder-service and added state provider to the browser
* exposed decrypt function so it can be used by the key definition, updated folder service to use state provider
* removed memory since derived state is now used
* updated test cases
* updated test cases
* updated migrations after merge conflict fix
* added state provider to the folder service constructor
* renamed migration file
* updated comments
* updated comments
* removed service registartion from browser service module and removed unused set and get encrypted folders from state service
* renamed files
* added storage location overides and removed extra methods
* refactor login strategies into own service
* create login service factory
* replaces instances of authService with loginStrategyService
* replace more instances of authService
* move logout back to auth service
* add browser dependencies
* fix desktop dependencies
* fix cli dependencies
* fix lint and test files
* fix anonymous hub deps
* fix webauthn-login service deps
* add loginstrategyservice to bg
* move login strategy service and models to auth folder
* revert changes to tsconfig
* use alias for imports
* fix path
---------
Co-authored-by: rr-bw <102181210+rr-bw@users.noreply.github.com>
* [PM-5368] Open Duo auth url. Add BroadcastChannel listener for duo result.
* [PM-5368] Remove debug line. Use PlatformUtilService to launch Uri.
* PM-5368 - Some progress on getting new frameless duo implementation in place
* PM-5368 - Base2FAComp - Save off duoFramelessUrl for use later on as user must be given the option to remember the device before launching the duo frameless flow in the new tab.
* PM-5368 - Web - 2FA Comp - (1) Only show larger width when showing backwards compatible duo (2) Stack buttons per new design (3) selectedProviderType === providerType.OrganizationDuo is correct check for when org requires DUO
* PM-5368 - Web - 2FA Comp - translate duo stuff
* PM-4613 - Browser 2FA - Get most of DUO frameless in place. WIP. Must figure out how to transfer state from popup to popout + add popout logic to auth-popout-windows.ts. Converted existing useAnotherTwoStepMethod button to use new comp lib bitButton per design.
* PM-4613 - Browser 2FA Comp - (1) HTML - add margin around duo frameless text to match figma (2) Get popout extension logic working properly - now closes existing popup
* PM-4613 - TODO figure out communication between web and browser as broadcast channel will not work.
* PM-5368 - Base comp + web changes - (1) Base component now has a setupDuoResultListener method for child classes to override (2) Web overrides setupDuoResultListener and cleans up broadcast channel once a duo result comes through.
* PM-4613 - Browser - (1) Add window message handling to content-message-handler content script to pass along the duo result message to the browser extension (2) 2FA comp - override setupDuoResultListener and use browserMessagingApi to listen to duoResult and submit when it comes through.
* PM-5368 - Web - 2FA comp - only clean up duo result channel on ngDestroy so that user can re-submit if an error occurs.
* PM-5368 and PM-4613 - (1) Update base 2FA comp to only initialize duo result listener once as init is called any time the user changes 2FA option if multiple are present (duo org and duo personal) (2) Each client now will only create a listener once even if it is called more than once (3) On web, only try to clean up the duoResultChannel if it was created to avoid erroring on other 2FA methods.
* PM-5368 - Base 2FA comp - add TODO to remove duo SDK handling once we remove the duo-redirect flag
* PM-5368 - Per PR feedback, avoid repetition of duo provider check by using a new public property for isDuoProvider
* PM-4613 - Per PR feedback: (1) Deconstruct code out of data (2) Add test for duoResult.
---------
Co-authored-by: André Bispo <abispo@bitwarden.com>
* [PM-5976] Safari Browser SSO Initialization Race Condition Attempted Fix 3
* [PM-5976] Safari Browser SSO Initialization Race Condition Attempted Fix 3
* [PM-5976] Removing usage of pinging system and keeping reworked top-level registration of window message listener events
* [PM-5976] Pulling the implementation of the static content script delcaration for the content-message-handler file to the top of the list of content_scripts
* [PM-5976] Pulling the implementation of the static content script delcaration for the content-message-handler file to the top of the list of content_scripts
* [PM-5976] Removing the useCapture value within the window message event listener
* Implementing pinging system for SSO to address issue on Safari with race condition
* Implementing pinging system for SSO to address issue on Safari with race condition
* [PM-5976] Updating references within sso.ts
---------
Co-authored-by: Cesar Gonzalez <cgonzalez@bitwarden.com>
* PM-5976 - Only try to initiate browser SSO when document is ready to avoid race condition between browser content script message listener being registered and the browser sso initiating message being sent.
* PM-5976 - adjust initiateBrowserSsoIfDocumentReady per PR feedback
* Got trial page working without the form set up
* Set up the form to create SM subscription
* Add free SM trial page and sign up
* Conner's changes
* fixed imports
* Set isFromSecretsManagerTrial
* Fixed OrgKey location
* Add isFromSecretsManager prop to free org create
* Add LTO callout
* Switch LTO to background box
* Defect: AC-2081
* Fixed typo "Secrets Manger" to "Secrets Manager"
* Removed discount price logic for storage and secrets manager prices since they don't apply
---------
Co-authored-by: Conner Turnbull <133619638+cturnbull-bitwarden@users.noreply.github.com>
Co-authored-by: Conner Turnbull <cturnbull@bitwarden.com>
* Added logic to only return organisations where user has import permissions and collections that he manages on Import
* Changed the UnassignedCollections validation logic
* Added validation to check if the user is coming from AdminConsole on the import component
* Added import collection service abstraction to allow get admin collections
* Corrected feature flag reads on import component
* Refactor import component methods ngOnInit and performImport to improve codescene
Using FeatureFlag Observable
* Modified validation to allow import if user has organizations to import into
* Using the new organization flexiblecollections property on import
* Created collection-admin-import.service to return all the org collections to the import on Admin Console
* Small changes on import flexible collections
* Fix linting issues
* changed canAccessImport rules and deprecated canAccessImportExport
* Validating if user canAccessImportExport instead of admin before calling the handleOrganizationImportInit.
* AC-2095 - Corrected getAllAdminCollections from ImportCollectionAdminService to properly get all the collections on AdminConsole
* Reverting AC-2095
---------
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
* Split export service into vault and org export service
* Changed CLI logic to use split export logic
* correct unit tests
* Created individual export service, export service making the calls for org and ind vault
* Improved code readability
* Merged PasswordProtectedExport with Export methods to simplify calls
* Some small refactor
* [AC-1492] Managed collections export (#7556)
* Added managed collections export method
Added logic to show orgs on export that the user can export from
* Merge branch 'tools/AC-1492/split-export-services' into tools/AC-1492/export-flexible-collections
# Conflicts:
# apps/web/src/app/admin-console/organizations/tools/vault-export/org-vault-export.component.ts
# apps/web/src/app/tools/vault-export/export.component.ts
* Change export to use new organization.flexiblecollection flag
* Little refactor changing parameter names and reduzing the size of export.component.ts ngOnInit
* Removed unused service from export constructor and removed unnecessary default value from org export service parameter
* Simplified organizations selection for vault export to only verify if it has flexiblecollections
* removed unecessary services from ExportComponent constructor on popup
* Fixed possible race condition on managed export