* PM-2060 Update Two Factor Yubikey Dialog
* PM-2060 Removed old code
* PM-2060 Added event emitter to capture enabled status
* PM-2060 Addressed review comments
* PM-2060 Change in html file for existing key options
* PM-2060 Addressed the latest comments
* PM-2060 Updated remove method as per comments
* PM-2060 Added throw error to enable and disbale in base component
* tailwind updates to yubikey two factor settings
* fixing imports
* remove disable dialog when keys are null to use the error toast
* PM-2060 Addressed the review comments and fixed conflicts
* Removed super.enable removed extra emitter from component class.
* fixing adding multiple keys in one session of a dialog.
* removed thrown error
---------
Co-authored-by: Ike Kottlowski <ikottlowski@bitwarden.com>
Co-authored-by: Ike <137194738+ike-kottlowski@users.noreply.github.com>
* Migrate vault lock screen to component library
* Remove unnecessary divs
* Remove card from trial
* Migrate to standalone component
* refactor to use AnonLayout
* revert login component
* migrate web component to bitSubmit
* remove class
* use inject
* update web pageTitle translation
* validate on submit, not on blur
---------
Co-authored-by: rr-bw <102181210+rr-bw@users.noreply.github.com>
* Added new report card and FeatureFlag for MemberAccessReport
* Add new "isEnterpriseOrgGuard"
* Add member access icon
* Show upgrade organization dialog for enterprise on member access report click
* verify member access featureflag on enterprise org guard
* add comment with TODO information for follow up task
* Initial member access report component
* Improved readability, removed path to wrong component and refactored buildReports to use the productType
* finished MemberAccessReport layout and added temporary service to provide mock data
* Moved member-access-report files to bitwarden_license/
Removed unnecessary files
* Added new tools path on bitwarden_license to the CODEOWNERS file
* added member access description to the messages.json
* layout changes to member access report
* Created new reports-routing under bitwarden_license
Moved member-access-report files to corresponding subfolder
* Added search logic
* Removed routing from member-access-report BL component on OSS.
Added member-access-report navigation to organizations-routing on BL
* removed unnecessary ng-container
* Added OrganizationPermissionsGuard and canAccessReports validation to member-access-report navigation
* replaced deprecated search code with searchControl
* Address PR feedback
* removed unnecessary canAccessReports method
* Add shared two-factor-options component
* Add new refactored two-factor-auth component and totp auth componnet behind feature flag
* Fix default value for twofactorcomponentrefactor featureflag
* create onload() for qrious as well as error messaging if QR code cannot be displayed
* button and message updates and formpromise removal
* load QR script async
* rename and reorder methods
* PM-7321 - Temp add input password
* PM-7321 - update input password based on latest PR changes to test.
* PM-7321 - Progress on testing input password component + RegistrationFinishComponent checks
* PM-7321 - more progress on registration finish.
* PM-7321 - Wire up RegistrationFinishRequest model + AccountApiService abstraction + implementation changes for new method.
* PM-7321 - WIP Registration Finish - wiring up request building and API call on submit.
* PM-7321 - WIP registratin finish
* PM-7321 - WIP on creating registration-finish service + web override to add org invite handling
* PM-7321 - (1) Move web-registration-finish svc to web (2) Wire up exports (3) wire up RegistrationFinishComponent to call registration finish service
* PM-7321 - Get CLI building
* PM-7321 - Move all finish registration service and content to registration-finish feature folder.
* PM-7321 - Fix RegistrationFinishService config
* PM-7321 - RegistrationFinishComponent- handlePasswordFormSubmit - error handling WIP
* PM-7321 - InputPasswordComp - Update to accept masterPasswordPolicyOptions as input instead of retrieving it as parent components in different scenarios will need to retrieve the policies differently (e.g., orgInvite token in registration vs direct call via org id post SSO on set password)
* PM-7321 - Registration Finish - Add web specific logic for retrieving master password policies and passing them into the input password component.
* PM-7321 - Registration Start - Send email via query param to registration finish page so it can create masterKey
* PM-7321 - InputPassword comp - (1) Add loading input (2) Add email validation to submit logic.
* PM-7321 - Registration Finish - Add submitting state and pass into input password so that the rest of the registration process keeps the child form disabled.
* PM-7321 - Registration Finish - use validation service for error handling.
* PM-7321 - All register routes must be dynamic and change if the feature flag changes.
* PM-7321 - Test registration finish services.
* PM-7321 - RegisterRouteService - Add comment documenting why the service exists.
* PM-7321 - Add missing input password translations to browser & desktop
* PM-7321 - WebRegistrationFinishSvc - apply PR feedback
* remove infinite scroll, use virtual scroll instead
* use TableDataSource for search
* allow sorting by name
* replacing PlatformUtilsService.showToast with ToastService
* misc FIXMEs
* Guard Organization Info route - Owners only
* Guard TwoFactor route - Owners only and Organization must be able to use 2FA
* Update guards to use function syntax
---------
Co-authored-by: Addison Beck <hello@addisonbeck.com>
* Add empty state for invoices
* Make cards on create client dialog tabbable
* Add space in $ / month per member
* Mute text, remove (Monthly) and right align menu on clients table
* Made used seats account for all users and fixed column sort for used/remaining
* Resize pricing cards
* Rename assignedSeats to occupiedSeats
* Document the `org-permissions` guard in code
* Restructure the `org-permissions` guard to be Angular 17+ compliant
* Update the `org-permissions` guard to use `ToastService`
* Simplify callback function sigantures
* Remove unused test object
* Fix updated route from merge
* Document that `is-paid-org` guard in code
* Remove unused `MessagingService` dependency
* Make assertions about the way the is-paid-org guard should behave
* Restructure the `is-paid-org` guard to be Angular 17+ compliant
* Random commit to get the build job moving
* Undo previous commit
* Document the `org-redirect` guard in code
* Make assertions about the way the `org-redirect` guard should behave
* Restructure the `org-redirect` guard to be Angular 17+ compliant
* Convert data parameter to function parameter
* Convert a data parameter to a function parameter that was missed
* Pass redirect function to default organization route
* Introduce `verificationType`
* Update template to use `verificationType`
* Implement a path for `verificationType = 'custom'`
* Delete `clientSideOnlyVerification`
* Update `EnrollMasterPasswordResetComponent` to include a server-side hash check
* Better describe the custom scenerio through comments
* Add an example of the custom verficiation scenerio
* Move execution of verification function into try/catch
* Migrate existing uses of `clientSideOnlyVerification`
* Use generic type option instead of casting
* Change "given" to "determined" in a comment
* Replace PlatformUtilsService with ToastService
* Remove unneeded templates
* Implement table filtering function
* Move member-only methods from base class to subclass
* Move utility functions inside new MemberTableDataSource
* Rename PeopleComponent to MembersComponent
* Move vault-timeout-input to @bitwarden/auth/angular
Move vault-timeout-input.component.ts to @bitwarden/auth/angular/vault-timeout-input
Expose via barrel file
Fix imports on clients
* Add dependencies to package.json
Not necessary right now, but good practice for once we move to building each package independently
* Make VaultTimeoutInputComponent a standalone component
* Update selector to present team ownership
* Use new standalone on web
Move vault-timeout-input.component.html to @bitwarden/auth/angular/vault-timeout-input/
Delete old vault-timeout-input.component on web
Register new component on loose-components-module
Update used selector in preferences.component
* Remove unneeded export of VaultTimeoutInputComponent
---------
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
* migrating two factor duo component
* migrating two factor duo component
* two factor duo component migration
* two factor duo component migration
* removed null check from two-factor-setup
* cleanup duo changes
* remove ikey and skey references
* clean up
---------
Co-authored-by: Jake Fink <jfink@bitwarden.com>
* Add export-web.component
Introduce new export-web component
Delete old component
export.module - With export-web being standalone there's no need for a importModule
Change routing to load new component
* Prepare export.component to receive a orgId via the hosting-component
* Remove unused onSaved as it's replaced by onSuccessfulExport
* Refactor org-vault-export.component
Introduce new org-vault-export.component.html as the old component relied on the markup from password manager
Refactor org-vault-export.component
Retrieve organizationId from Route and pass it into the shared export.component
Ensure when exporting from AC to include all data from the selected org
org-vault-export.module - With the new component being standalone there's no need for a importModule
Change routing to load new org-vault-export component
* PM-8641 - Add success toast to base-export component
This ensures a success toast is shown on all clients consistently
Add missing entries into clients messages.json
---------
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
* PM-2059 Update Two Factor Webauth Dialog
* PM-2059 Added event emitter for enabled status
* PM-2059 Addressed review comments
* convert to arrow function
* PM-2059 Latest comments addressed
* PM-2059 Updated disable method by adding a condition to capture simple dialog in base component
---------
Co-authored-by: rr-bw <102181210+rr-bw@users.noreply.github.com>
* utilizing locale service in duo
* refactor launchDuoUri method
* Add cookie information back in ext. and desktop to support backwards compatibility
* Update duo-redirect.ts
fixing comment
* finish key rotation distribution and fix legacy user
* add ticket to TODO
* PR feedback: docs and renaming
* fix webauthn tests
* add test for send service
* add await to test
* Removed - button on passkeys and uris when user has view only access, disabled cog button and made input fields on uris readonly when user has view only access
(cherry picked from commit 077edd77c1)
* switched to use viewonly to hide remove button
(cherry picked from commit dbd854494f)
* Migrate all tools owned toasts to use CL ToastService instead of PlatformUtilsService
* Fix test that was missing a mock
* Fix double checking file and file-content selection
---------
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
* Added new report card and FeatureFlag for MemberAccessReport
* Add new "isEnterpriseOrgGuard"
* Add member access icon
* Show upgrade organization dialog for enterprise on member access report click
* verify member access featureflag on enterprise org guard
* add comment with TODO information for follow up task
* Improved readability, removed path to wrong component and refactored buildReports to use the productType
* added TODO to remove the feature flag on cleanup
* changing ProductType to ProductTierType on isEnterpriseOrgGuard
* turn on enableCipherKeyEncryption flag
* turn enableCipherKeyEncryption flag on in desktop config
---------
Co-authored-by: bnagawiecki <107435978+bnagawiecki@users.noreply.github.com>
* setup for InputPasswordComponent and basic story
* add all input fields
* add translated error messages
* update validation
* add password-callout
* update hint text
* use PolicyService in component
* setup SetPasswordComponent
* remove div
* add default button text
* add mocks for InputPassword storybook
* simplify ngOnInit
* change param and use PolicyApiService
* check for breaches and validate against policy
* user toastService
* use useValue for mocks
* hash before emitting
* validation cleanup and use PreloadedEnglishI18nModule
* add ngOnDestroy
* create validateFormInputsDoNotMatch fn
* update validateFormInputsComparison and add deprecation jsdocs
* rename validator fn
* fix bugs in validation fn
* cleanup and re-introduce services/logic
* toggle password inputs together
* update hint help text
* remove SetPassword test
* remove master key creation / hashing
* add translations to browser/desktop
* mock basic password-strength functionality
* add check for controls
* hash before emitting
* type the EventEmitter
* use DEFAULT_KDF_CONFIG
* emit master key
* clarify comment
* update password mininum help text to match org policy requirement
* PM-8482 Change KDF Confirmation no longer has browser validation
* PM-8482 - ChangeKdfConfirmationComponent - use form invalid instead of manual form valid check
---------
Co-authored-by: Jared Snider <jsnider@bitwarden.com>
* PM-7324 - Register new registration start comp at signup route on web
* PM-7324 - Add registerSendVerificationEmail logic in API service layer.
* PM-7324 - Update registration start comp to actually send information to API and trigger email.
* PM-7324 - progress on opt in for marketing emails redesign.
* PM-7324 - Add feature flag and feature flag guard to sign up route.
* PM-7324 - RegistrationEnvSelector - emit initial value
* PM-7324 - Registration Start comp - wire up setReceiveMarketingEmailsByRegion logic.
* PM-7324 - Registration start html - use proper link for email pref management.
* PM-7324 - Translate text
* PM-7324 - Design pass
* PM-7324 - design pass v2
* PM-7324 - Update Tailwind config to add availability of anon layout to desktop and browser extension
* PM-7324 - Desktop - AppRoutingModule - Add new signup route protected by the email verification feature flag.
* PM-7324 - BrowserExtension - AppRoutingModule - Add signup route protected by feature flag
* PM-7324 - Feature flag all register page navigations to redirect users to the new signup page.
* PM-7324 - Update AnonLayoutWrapperComponent constructor logic to avoid passing undefined values into I18nService.t method
* PM-7324 - Accept org invite web comp - adjust register url and qParams
* PM-7324 - Add AnonLayoutWrapperData to desktop & browser since we don't need titleId.
* PM-7324 - Revert anon layout wrapper comp changes as they were made separately and merged to main.
* PM-7234 - Fix registration start component so the login route works for the browser extension.
* PM-7324 - Registration start story now building again + fix storybook warning around BrowserAnimationsModule
* PM-7324 - Registration Start - add missing tw-text-main to fix dark mode rendering.
* PM-7324 - Update storybook docs
* PM-7324 - Get stub of registration finish component so that the verify email has something to land on.
* PM-7324 - Registration start - receive marketing materials should never be required.
* PM-7324 - Add finish signup route + required translations to desktop & browser.
* PM-7324 - AnonLayoutWrapperComponent - Resolve issues where navigating to a sibling anonymous route wouldn't update the AnonLayoutWrapperData.
* PM-7324 - Remove unnecessary array
* PM-7324 - Per PR feedback, improve setReceiveMarketingEmailsByRegion
* PM-7324 - Per PR feedback, inject login routes via route data
* PM-7324 - Document methods in account api service
* PM-7324 - PR feedback - jsdoc tweaks
* wait until a sync is complete to render the product switcher content
* refactor unneeded observables into their own variable
* do not show product switcher button until content is loaded
* use `ReplaySubject` to ensure that `syncCompleted$` last value is always used