1
0
mirror of https://github.com/bitwarden/browser.git synced 2024-11-25 12:15:18 +01:00
Commit Graph

1305 Commits

Author SHA1 Message Date
Thomas Rittson
6830e471bb
Remove unused i18n strings (#10220) 2024-07-25 14:02:42 -04:00
Ike
b3f7bad4b2
added feature flag, and services for tokenable when adding Authenticator two factor; (#10261) 2024-07-25 08:13:57 -07:00
renovate[bot]
b9eb4003a1
[deps] Autofill: Update prettier to v3.3.3 (#10228)
* [deps] Autofill: Update prettier to v3.3.3

* prettier formatting changes

* fix SyntaxError for literal @ inline html

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jonathan Prusik <jprusik@classynemesis.com>
2024-07-25 11:11:55 -04:00
cd-bitwarden
5180ec44e0
Creating a landing page for SM, where user can request access from ad… (#9504)
* Creating a landing page for SM, where user can request access from admins

* moving files to better folder, also fixing UI

* updating file paths

* cleaning up the code

* Updating API request to be the new one, and fixing HTML

* Adding coowners

* Updating OrganizaitonId in the request model to be a Guid

* Update apps/web/src/app/secrets-manager/secrets-manager-landing/request-sm-access.component.ts

Co-authored-by: Thomas Avery <43214426+Thomas-Avery@users.noreply.github.com>

* Update apps/web/src/app/layouts/product-switcher/navigation-switcher/navigation-switcher.component.ts

Co-authored-by: Maciej Zieniuk <167752252+mzieniukbw@users.noreply.github.com>

* Update apps/web/src/app/layouts/product-switcher/navigation-switcher/navigation-switcher.component.ts

Co-authored-by: Maciej Zieniuk <167752252+mzieniukbw@users.noreply.github.com>

* Suggested changes from Maceij and Thomas

* fixing merge issues

* fixing issues

* Fixing logic to match top bar

* updating file name to not start with a capital letter

* renaming folder

* updating names

* Getting around the lint issue

* fixing lint issues

* Changes requested by Vicky

* Maciej suggested changes

* Fixing comments

* Update apps/web/src/app/secrets-manager/secrets-manager-landing/sm-landing-api.service.ts

Thomas's suggested improvement

Co-authored-by: Thomas Avery <43214426+Thomas-Avery@users.noreply.github.com>

* ui fixes

* New awesome changes, to include the scenario where a Provider user is logged in, and to handle if an admin needs instructions to enable SM for themselves

* renaming fuctions and variables

---------

Co-authored-by: Thomas Avery <43214426+Thomas-Avery@users.noreply.github.com>
Co-authored-by: Maciej Zieniuk <167752252+mzieniukbw@users.noreply.github.com>
2024-07-25 11:03:57 -04:00
rr-bw
9355a9bb43
[PM-7330] Create SetPasswordComponent (email verification) (#9810)
* setup SetPassword component

* accept query params

* add InputPasswordComponent to template

* add route

* add dynamic translation with org name

* feature flag route

* setup onInit

* add set password logic

* move to libs

* remove comments

* update AuthGuard routing

* use ToastService

* replace deprecated methods

* replace orgId input with policy input

* use getter for msg instead of ngOnInit

* cleanup

* refactor to use services

* more refactoring of service

* address browser routing and translations

* add desktop service

* simplify queryParam handler

* remove ngOnDestroy

* small edits

* use inject()

* add jsdocs

* create basic tests

* add success toasts on successfuly set password

* add tests

* update feature-flag

* move model to service

* refactor client services to override setPassword()

* add error handling to setPassword()

* move auto enroll logic to service

* update tests

* fix test

* adjust padding on password-callout list

* revert refactor of auto enroll logic

* refactor keyPair generation to own method

* update page title and button text

* update pageSubtitle and translations

* fix test
2024-07-25 07:42:32 -07:00
Nick Krantz
61713e5fe4
[PM-9951] Assignment Collections copy (part 2) (#10244)
* add back disc bullet for assignment collections

* add singular and plural versions of bulk collection assignment description
2024-07-24 13:28:33 -05:00
Jordan Aasen
fc55082148
[PM-8386] - Add section header to import page (#10153)
* first pass section header in import data component

* change layout

* fix desktop bg

* revert chnage to default config

* update translation key

* revert change to background color
2024-07-24 07:27:28 -07:00
Alex Morask
768b5393e9
Null check provider in organization management check (#10233) 2024-07-24 10:13:03 -04:00
aj-rosado
9a6b37d019
Restructued is-enterprise-org.guard to be a function. (#10134)
Added test cases for IsEnterpriseOrgGuard

Co-authored-by: Tom <ttalty@bitwarden.com>
Co-authored-by: Tom <144813356+ttalty@users.noreply.github.com>
2024-07-24 11:08:33 +02:00
Nick Krantz
3093566f01
[PM-9951] Assign to Collection copy (#10205)
* refactor "Assign collections" to "Assign to collections"

* show singular or plural version of collection assignment success message

* update singular and plural warning text

* refactor switch to be an `if`
2024-07-23 21:21:39 -05:00
SmithThe4th
91aa475766
[PM-6992] Refactor VaultComponent (#10126)
* Added function to return cipherview observable and trigger the decryption process if the cipherviews$ observable returns empty

* Updated the vault component to use getCipherViews$ observable function

* converted vault banner to standalone component

* converted vault header to standalone component

* fixed unawaited promises

converted component to standalone component

* cleaned up vault module

* fixed imports

* refactored getCipherView$ observable

* refactored onVaultItemsEvent to switch case

* Refactored to use toast service instead of platform utils service for toast

* Added function to return cipherview observable and trigger the decryption process if the cipherviews$ observable returns empty

* Updated the vault component to use getCipherViews$ observable function

* converted vault banner to standalone component

* converted vault header to standalone component

* fixed unawaited promises

converted component to standalone component

* cleaned up vault module

* fixed imports

* refactored getCipherView$ observable

* refactored onVaultItemsEvent to switch case

* Refactored to use toast service instead of platform utils service for toast

* merged with main and fixed conflicts

* reordered standalone property

* converted components to standalone

* cleaned up ng module for org vault

* cleaned up vault module individual vault

* fixed conflicts

* Replaced deprecated toast service

* refactored to use switch case for org vault

* fixed comments and fixed failing tests

reverted to use getAllDecrypted
2024-07-23 16:47:54 -04:00
aj-rosado
2ea2045686
Added option to through queryParams pre select the desired upgrade option on the subscription page (#10145) 2024-07-23 13:56:21 +02:00
Jordan Aasen
b2d4d1bec2
[PM-4963] Migrate breach report components (#10045)
* WIP - migrate exposed passwords report components

* lint fix

* migrate components in reports

* migrate breach and unsecured websites reports

* undo change routing

* revert changes to reports

* revert changes

* migrate breach report component

* update form

* revert back to text input

* revert change to logic

* layout fixes

* add spec

* fix typo

* undo changes to exposed passowords report

* fix test

---------

Co-authored-by: jordan-bite <jordan@bite-interactive.com>
2024-07-19 17:23:02 -07:00
Tom
087440989e
Fixing the test for unsecured reports (#10185) 2024-07-19 11:27:23 -04:00
Bernd Schoolmann
05e8b45edb
[PM-7084] 6/6: Introduce shared duo two-factor component (#9772)
* Add shared duo component

* Fix duo import

* Fix wrong i18n service DI in duo desktop component

* Remove duo v2

* Add override to functions

* Remove web duo implementation

* Update apps/browser/src/auth/popup/two-factor-auth-duo.component.ts

Co-authored-by: Ike <137194738+ike-kottlowski@users.noreply.github.com>

* Update apps/desktop/src/auth/two-factor-auth-duo.component.ts

Co-authored-by: Ike <137194738+ike-kottlowski@users.noreply.github.com>

* Update libs/angular/src/auth/components/two-factor-auth/two-factor-auth-duo.component.ts

Co-authored-by: Ike <137194738+ike-kottlowski@users.noreply.github.com>

* Fix missing service on duo components

* Fix missing service on base duo auth component

* Fix constructor super calls in duo auth component

* Fix duo auth components incorrectly extending base class

---------

Co-authored-by: Ike <137194738+ike-kottlowski@users.noreply.github.com>
2024-07-19 16:29:24 +02:00
Tom
bc1ee0a169
Modifying the unsecured reports to check for proper permissions (#10038) 2024-07-19 09:18:30 -04:00
github-actions[bot]
1cdc701328
Autosync the updated translations (#10177)
Co-authored-by: bitwarden-devops-bot <106330231+bitwarden-devops-bot@users.noreply.github.com>
2024-07-19 11:14:22 +00:00
SmithThe4th
c27657eb82
[PM-8050] Deleting one folder deletes all other folders (#10165)
* removed the use of deletepromise from folder edit dialog on web

* resolved fix me

* return folders if folder is not found with folder id
2024-07-18 18:28:25 -04:00
Jared Snider
56f5dba444
Auth/PM-6198 - Registration with Email Verification - Call email clicked endpoint (#10139)
* PM-6198 - Majority of client work done; WIP on registration finish comp

* PM-6198 - Registration Finish - Add registerVerificationEmailClicked logic

* PM-6198 - RegistrationLinkExpired component; added translations on other clients just in case we use the component on other clients in the future.

* PM-6198 - Clean up comment
2024-07-18 17:37:22 -04:00
Jared Snider
8be11b174c
Registration start - update copy per product request. (#10169) 2024-07-18 17:10:32 -04:00
Jordan Aasen
9dd80c92c8
[PM-4968] Migrate unsecured websites report components (#10046)
* WIP - migrate exposed passwords report components

* lint fix

* migrate components in reports

* migrate breach and unsecured websites reports

* undo change routing

* revert changes to reports

* revert changes

* migrate unsecured websites report component

* fix icon and padding in unsecured websites report

* undo changes to exposed passwords report

---------

Co-authored-by: jordan-bite <jordan@bite-interactive.com>
2024-07-18 23:04:50 +02:00
Shane Melton
f75c1ab02d
[PM-8524] Cipher Form - Edit Login Details Section (#10081)
* [PM-8524] Introduce login details section component

* [PM-8524] Add ability to remove passkey

* [PM-8524] Introduce TotpCaptureService and the Browser implementation

* [PM-8524] Tweak storybook

* [PM-8524] Add note regarding existing login view references

* [PM-8524] Fix clone mode so that a new cipher is created

* [PM-8524] Add support for generating usernames/passwords and auditing passwords

* [PM-8524] Migrate password/username generation to CipherFormGenerationService

* [PM-8524] Add optional passwordInput to BitPasswordInputToggle to support conditionally rendered password toggle buttons

* [PM-8524] Add LoginDetailsSection tests

* [PM-8524] Add BrowserTotpCaptureService tests

* Revert "[PM-8524] Add optional passwordInput to BitPasswordInputToggle to support conditionally rendered password toggle buttons"

This reverts commit e76a0ccfe8.

* [PM-8524] Add null check to password input toggle
2024-07-18 09:38:55 -07:00
Nick Krantz
9bfd838da6
[PM-8381] Assign collections (#9854)
* initial add of assign collections component

* grab cipherId from query params

* add organization selection for moving a cipher

* add multi-select for collections

* add transfer of cipher to an organization

* temp: do not show assign collections while a cipher already has an organization

* account for initial collections for a cipher

* block assign-collections route with feature flag

* replace hardcoded string with i18n

* separate out async calls to switchMap to avoid async subscribe

* use local cipher rather than decrypting again

* use anchor for better semantics

* migrate form submission to bitSubmit directive

* swap to "assign" rather than "save"

* integrate with base AssignCollections component

* clean up messages file

* remove unneeded takeUntilDestroyed

* remove unneeded bitFormButton

* remove unused translations

* lint fix

* refactor assign-collections component to take in a button reference

- This allows consuming components to not have to worry about loading/disabled states
- The base AssignCollections component will change the submit button when supplied
2024-07-18 08:53:53 -05:00
Bernd Schoolmann
84b719d797
[PM-4154] Introduce Bulk Encrypt Service for Faster Unlock Times (#6465)
* Implement multi-worker encryption service

* Fix feature flag being flipped and check for empty input earlier

* Add tests

* Small cleanup

* Remove restricted import

* Rename feature flag

* Refactor to BulkEncryptService

* Rename feature flag

* Fix cipher service spec

* Implement browser bulk encryption service

* Un-deprecate browserbulkencryptservice

* Load browser bulk encrypt service on feature flag asynchronously

* Fix bulk encryption service factories

* Deprecate BrowserMultithreadEncryptServiceImplementation

* Copy tests for browser-bulk-encrypt-service-implementation from browser-multithread-encrypt-service-implementation

* Make sure desktop uses non-bulk fallback during feature rollout

* Rename FallbackBulkEncryptService and fix service dependency issue

* Disable bulk encrypt service on mv3

* Change condition order to avoid expensive api call

* Set default hardware concurrency to 1 if not available

* Make getdecrypteditemfromworker private

* Fix cli build

* Add check for key being null
2024-07-18 08:56:22 -04:00
Addison Beck
9b50e5c496
Disable a button during page load (#10148)
The people screen has a button that can be clicked to open a modal for
inviting new users to an organization. This modal depends on data from
the people list for conditional logic, like whether or not the seat count
cor the organization has been reached. If the modal is opened before the
people list loads these conditions can not process correctly, causing
bugs.

This commit disabled the button until the people list loads to prevent
this kind of behavior.
2024-07-18 10:17:53 +01:00
Alex Morask
e27d698d4b
[AC-2860] Revise unassigned and purchased seat warning for CB (#10077)
* Rework create-client-dialog seat warning

* Rework manage-client-subscription-dialog seat warning

* Fix create client purchased seats label

* Fix manage client subscription purchased seats label logic

* Another manage subscription purchased seats fix
2024-07-17 10:12:40 -04:00
Bernd Schoolmann
a1c5cc6dbf
Fix key rotation being broken due to master key validation (#10135) 2024-07-17 14:13:03 +02:00
Bernd Schoolmann
69a37a884f
Add shared webauthn component (#9771) 2024-07-16 10:46:37 -04:00
Oscar Hinton
d852a5ff07
[PM-97089] [Bootstrap] Convert remaining sr-only to tw-sr-only (#10094)
We're still using sr-only in multiple places. This is a bootstrap utility class and needs to be migrated to tw-sr-only.
2024-07-16 11:59:04 +01:00
Oscar Hinton
bc7c6dd04e
[PM-9710] [Bootstrap] Hide file inputs when not using bootstrap (#10095)
When removing boostrap it seems the hidden attribute to the file inputs stops working. This implements a "quick" fix by just adding the tw-hidden class.
2024-07-15 13:09:25 -05:00
Ike
d2685e1bc5
[PM-9618] Show toast when AuthUrl is null (#10108)
* Added toast message if AuthUrl is null

* added toast to desktop and browser

* fixed tests
2024-07-15 09:04:15 -07:00
Alex Morask
e7b50e790a
[AC-2828] Add provider portal members page behind FF (#9949)
* Add provider portal members page behind a FF

* Fix reinvite issue

* Import scrolling module

* Add deprecations to old classes

* Move members.component init to constructor

* Rename new-base.people.component to base.members.component

* Hide bulk reinvite when no users can be re-invited on AC members page

* Rename events() to openEventsDialog()

* Fix return type for members component getUsers()

* Make table headers sortable

* Extract row height class to ts file

* Convert open methods to static methods for bulk dialogs

* Rename and refactor member-dialog.component

* Prevent event emission for searchControl and set filter in members component constructor

* use featureFlaggedRoute rather than using FF in components

* Add BaseBulkConfirmComponent for use in both web and bit-web

* Add BaseBulkRemoveComponent for use in both web and bit-web

* Thomas' feedback on base confirm/remove

* Remaining feedback
2024-07-15 11:56:11 -04:00
Jordan Aasen
4edbd65faf
[PM-3197] "Pay with PayPal" button moves on screen after loading (#10083)
* hide duplicate iframe

* add comment

* Moved braintree styling to plugins.scss

* Moved next to other braintree-sheet

---------

Co-authored-by: Conner Turnbull <cturnbull@bitwarden.com>
2024-07-15 11:47:30 -04:00
Bernd Schoolmann
5a46c7d5cc
[PM-7084] 4/6: Introduce shared email two-factor component (#9770)
* Add shared email two-factor component

* Update apps/browser/src/auth/popup/two-factor-auth-email.component.ts

Co-authored-by: Jake Fink <jfink@bitwarden.com>

---------

Co-authored-by: Jake Fink <jfink@bitwarden.com>
2024-07-15 09:59:39 -04:00
github-actions[bot]
a1667e5603
Autosync the updated translations (#10118)
Co-authored-by: bitwarden-devops-bot <106330231+bitwarden-devops-bot@users.noreply.github.com>
2024-07-15 11:00:21 +00:00
Jordan Aasen
fb311bfb4b
[PM-4964] migrate exposed passwords report components (#9952)
* WIP - migrate exposed passwords report components

* lint fix

* migrate components in reports

* migrate breach and unsecured websites reports

* undo change routing

* revert changes to reports

* revert changes

* fix icon and padding in exposed passwords report

* fix icon and padding in exposed passwords report

* fix exposed passwords report cipher state

* [PM-4965] Migrate inactive two factor report (#10043)

* migrate inactive two factor report

* fix icon and padding in inactive two factor report

* [PM-4967] Migrate reused passwords report components (#10044)

* migrate components in reused passwords report

* fix icon and padding in reused passwords report

* [PM-4969] Migrate weak passwords report components (#10048)

* migrate weak passwords report component

* migrate weak passwords report component

* Revert "migrate weak passwords report component"

This reverts commit 0e453aafc1.

* Revert "migrate weak passwords report component"

This reverts commit e8e9b01997.

* Revert "Revert "migrate weak passwords report component""

This reverts commit 8cd2421cb0.

* fix padding and icon size in weak passwords report

---------

Co-authored-by: jordan-bite <jordan@bite-interactive.com>
2024-07-15 12:26:11 +02:00
cyprain-okeke
410d1c6394
Fix the zip core error on trial initiation (#10100) 2024-07-13 07:19:46 +01:00
Oscar Hinton
06cf849b18
[PM-9707] [Boostrap] Fix avatar and customize placement (#10093)
The Avatar customize button appeared below the avatar after removing Boostrap. This resolves it by adding flex, it also has the added benefit of aligning the button vertically as it's currently slightly misaligned.
2024-07-12 15:48:59 -07:00
SmithThe4th
7588e06d2b
fix blank titles on menu options button (#10099) 2024-07-12 12:16:54 -04:00
Vincent Salucci
bce6e77514
[AC-2520] Remove Unassigned Items Banner (#10042)
* chore: remove UnassignedItemsBanner feature flag, refs AC-2520

* chore: remove unassignedItemsBanner from web-header component, refs AC-2520

* chore: delete unassigned items banner service/api/spec, refs AC-2520

* chore: remove unassigned items banner messages (web), refs AC-2520

* chore: remove unassigned items banner messages (browser), refs AC-2520

* chore: remove unassigned items banner code from current tab (browser), refs AC-2520

* chore: remove state definition for unassigned items banner, refs AC-2520

* chore: revert state-definition removal, refs AC-2520
2024-07-12 11:06:02 -05:00
github-actions[bot]
8e0e6fdaff
Autosync the updated translations (#10088)
Co-authored-by: bitwarden-devops-bot <106330231+bitwarden-devops-bot@users.noreply.github.com>
2024-07-12 11:07:34 +00:00
SmithThe4th
050f8f4bdc
[PM-7624] [PM-7625] Bulk management actions on individual vault (#9507)
* fixed issue with clearing search index state

* clear user index before account is totally cleaned up

* added logout clear on option

* removed redundant clear index from logout

* added feature flag

* added new menu drop down and put behind feature flag

* added permanentlyDeleteSelected to the menu

* added permanentlyDeleteSelected to the menu

* wired up logic to show to hide menu drop down items

* modified the bulk collection assignment to work with end user vault

* wired up delete and move to folder

* merged bulk management actions header into old leveraging the feature flag

* added ability to move personal items to an organization and set active collection when user is on a collection

* made collection required by default

* handled organization cipher share when personal items and org items are selected

* moved logic to determine warning text to component class

* moved logic to determine warning text to component class

* Improved hide or show logic for menu

* added bullet point to bulk assignment dialog content

* changed description for move to folder

* Fixed issue were all collections are retrived instead of only can manage, and added logic to get collections associated with a cipher

* added inline assign to collections

* added logic to disable three dot to template

* Updated logic to retreive shared collection ids between ciphers

* Added logic to make attachment view only, show or hide

* Only show menu options when there are options available

* Comments cleanup

* update cipher row to disable menu instead of hide

* Put add to folder behind feature flag

* ensured old menu behaviour is shown when feature flag is turned off

* refactored code base on code review suggestions

* fixed bug with available collections

* Made assign to collections resuable

made pluralize a pipe instead

* Utilized the resuable assign to collections component on the web

* changed description message for collection assignment

* fixed bug with ExpressionChangedAfterItHasBeenCheckedError

* Added changedetectorref markForCheck

* removed redundant startwith as seed value has been added

* made code review suggestions

* fixed bug where assign to collections shows up in trash filter

* removed bitInput

* refactored based on code review comments

* added reference ticket

* [PM-9341] Cannot assign to collections when filtering by My Vault (#9862)

* Add checks for org id myvault

* made myvault id a constant

* show bulk move is set by individual vault and it is needed so assign to collections does not show up in trash filter (#9876)

* Fixed issue where selectedOrgId is null (#9879)

* Fix bug introduced with assigning items to a collection (#9897)

* [PM-9601] [PM-9602] When collection management setting is turned on view only collections and assign to collections menu option show up (#10047)

* Only show collections with edit access on individual vault

* remove unused arguments
2024-07-11 17:39:49 -04:00
Thomas Rittson
a723038b44
Remove OrganizationUserType.Manager (#10060) 2024-07-12 06:14:08 +10:00
Jake Fink
9c66b5bf9f
[PM-4917, PM-8707, PM-9119] Persist login email memory through 2fa on browser (#9811)
* persist email memory through 2fa on browser

* fix tests

* fix desktop
2024-07-11 14:51:06 -04:00
aj-bw
4f3760beae
PM-1935/vault-locked-message-fix (#10078) 2024-07-11 14:39:29 -04:00
cyprain-okeke
cc206d4c3f
[AC-1102]Automatic Sync is visible for self hosted Families Orgs (#9565)
* Add the changes to remove automasync for family org

* Remove changes to the form field file

* Rename productType to productTierType

* Add Upload license and License file

* Hide the License and upload License label

* Resolve the issue of Validation required for family org
2024-07-11 18:05:17 +01:00
Oscar Hinton
39eed02904
[PM-8517] Create web specific layout (#9209)
We currently duplicate some logic between our layouts. In an effort to streamline our experience I'm exploring if we can create a web specific layout that handles some of this.
2024-07-11 12:20:56 -04:00
aj-rosado
ea76760782
[AC-2508][AC-2511] member access report view and export logic (#10011)
* 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

* Added report-utils class with generic functions to support report operations

* Added member access report mock

* Added member access report specific logic

* Splitted code into different classes that explained their objective.

* fixed member access report service test cases

* Addressed PR feedback

* Creating a service to return the data for the member access report

* added missing ExportHelper on index.ts

* Corrected property names on member access report component view

* removed duplicated service
2024-07-11 17:11:05 +01:00
cyprain-okeke
a08cbf30d9
Resolve the error on license upload (#10057) 2024-07-11 16:18:48 +01:00
Bernd Schoolmann
9eddbfc6e7
[PM-7084]: 3/6 Introduce shared yubikey two-factor component (#9769)
* Add shared two-factor-options component

* Add new refactored two-factor-auth component and totp auth componnet behind feature flag

* Add yubico yubikey otp shared two-fa component
2024-07-11 10:28:55 -04:00