passbolt-styleguide 3.6.2 → 3.7.0-alpha1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -6
- package/build/css/help.min.css +3 -7
- package/build/css/public.min.css +3 -16
- package/build/css/themes/default/api_authentication.min.css +3 -3
- package/build/css/themes/default/api_cloud.min.css +3 -3
- package/build/css/themes/default/api_main.min.css +3 -12
- package/build/css/themes/default/api_reports.min.css +3 -12
- package/build/css/themes/default/api_webinstaller.min.css +3 -12
- package/build/css/themes/default/ext_app.min.css +3 -12
- package/build/css/themes/default/ext_authentication.min.css +3 -3
- package/build/css/themes/default/ext_external.min.css +2 -2
- package/build/css/themes/default/ext_in_form_cta.min.css +3 -3
- package/build/css/themes/default/ext_in_form_menu.min.css +3 -3
- package/build/css/themes/default/ext_quickaccess.min.css +3 -3
- package/build/css/themes/midgar/api_authentication.min.css +3 -3
- package/build/css/themes/midgar/api_main.min.css +3 -12
- package/build/css/themes/midgar/api_reports.min.css +3 -12
- package/build/css/themes/midgar/ext_app.min.css +3 -12
- package/build/css/themes/midgar/ext_authentication.min.css +3 -3
- package/build/css/themes/midgar/ext_in_form_cta.min.css +3 -3
- package/build/css/themes/midgar/ext_in_form_menu.min.css +3 -3
- package/build/css/themes/midgar/ext_quickaccess.min.css +3 -3
- package/build/js/dist/api-account-recovery.js +1 -1
- package/build/js/dist/api-app.js +1 -1
- package/build/js/dist/api-app.js.LICENSE.txt +25 -1
- package/build/js/dist/api-recover.js +1 -1
- package/build/js/dist/api-setup.js +1 -1
- package/build/js/dist/api-triage.js +1 -1
- package/build/js/dist/api-vendors.js +1 -1
- package/build/js/dist/api-vendors.js.LICENSE.txt +43 -7
- package/i18next-parser.config.js +22 -0
- package/package.json +8 -5
- package/src/img/og/og_image.png +0 -0
- package/src/locales/de-DE/common.json +308 -173
- package/src/locales/en-UK/common.json +155 -175
- package/src/locales/es-ES/common.json +955 -0
- package/src/locales/fr-FR/common.json +308 -174
- package/src/locales/ja-JP/common.json +292 -172
- package/src/locales/lt-LT/common.json +985 -0
- package/src/locales/nl-NL/common.json +329 -194
- package/src/locales/pl-PL/common.json +337 -172
- package/src/locales/sv-SE/common.json +307 -172
- package/src/public-website-sign-in/PublicWebsiteSignInBootstrap.js +25 -0
- package/src/public-website-sign-in/lib/SignIn/SignInManager.js +85 -0
- package/src/public-website-sign-in/lib/SignIn/SignInManager.test.data.js +45 -0
- package/src/public-website-sign-in/lib/SignIn/SignInManager.test.js +59 -0
- package/src/public-website-sign-in/lib/SignIn/SignInManager.test.page.js +67 -0
- package/src/react-extension/ExtBootstrapAccountRecovery.js +17 -0
- package/src/react-extension/ExtBootstrapApp.js +17 -0
- package/src/react-extension/ExtBootstrapLogin.js +17 -0
- package/src/react-extension/ExtBootstrapRecover.js +17 -0
- package/src/react-extension/ExtBootstrapSetup.js +17 -0
- package/src/react-extension/components/AccountRecovery/AccountRecoveryInviteUserSettingPreferenceDialog/AccountRecoveryInviteUserSettingPreferenceDialog.test.stories.js +1 -1
- package/src/react-extension/components/AccountRecovery/HandleAccountRecoveryUserSettingsRoute/HandleAccountRecoveryUserSettingsRoute.js +1 -9
- package/src/react-extension/components/AccountRecovery/HandleReviewAccountRecoveryRequestWorkflow/HandleReviewAccountRecoveryRequestWorkflow.js +1 -9
- package/src/react-extension/components/AccountRecovery/ManageAccountRecoveryUserSettings/ManageAccountRecoveryUserSettings.js +1 -1
- package/src/react-extension/components/AccountRecovery/ManageAccountRecoveryUserSettings/ManageAccountRecoveryUserSettings.test.stories.js +1 -1
- package/src/react-extension/components/AccountRecovery/ReviewAccountRecoveryRequest/ReviewAccountRecoveryRequest.js +1 -1
- package/src/react-extension/components/AccountRecovery/ReviewAccountRecoveryRequest/ReviewAccountRecoveryRequest.test.stories.js +1 -1
- package/src/react-extension/components/Administration/ConfirmSaveAccountRecoverySettings/ConfirmSaveAccountRecoverySettings.js +6 -3
- package/src/react-extension/components/Administration/ConfirmSaveAccountRecoverySettings/ConfirmSaveAccountRecoverySettings.test.data.js +10 -7
- package/src/react-extension/components/Administration/ConfirmSaveAccountRecoverySettings/ConfirmSaveAccountRecoverySettings.test.stories.js +1 -1
- package/src/react-extension/components/Administration/DisplayAdministrationMenu/DisplayAdministrationMenu.js +2 -15
- package/src/react-extension/components/Administration/DisplayAdministrationWorkspaceActions/DisplayAdministrationAccountRecoveryAction/DisplayAdministrationAccountRecoveryActions.js +2 -12
- package/src/react-extension/components/Administration/DisplayAdministrationWorkspaceActions/DisplayAdministrationWorkspaceActions.js +2 -11
- package/src/react-extension/components/Administration/DisplayAdministrationWorkspaceBreadcrumb/DisplayAdministrationWorkspaceBreadcrumb.js +1 -1
- package/src/react-extension/components/Administration/DisplayAdministrationWorkspaceBreadcrumb/DisplayAdministrationWorkspaceBreadcrumb.test.js +1 -1
- package/src/react-extension/components/Administration/DisplayEmailNotificationsAdministration/DisplayEmailNotificationsAdministration.js +1 -9
- package/src/react-extension/components/Administration/DisplayEmailNotificationsAdministration/DisplayEmailNotificationsAdministration.test.stories.js +1 -1
- package/src/react-extension/components/Administration/DisplayInternationalizationAdministration/DisplayInternationalizationAdministration.js +1 -9
- package/src/react-extension/components/Administration/DisplayInternationalizationAdministration/DisplayInternationalizationAdministration.test.page.js +1 -1
- package/src/react-extension/components/Administration/DisplayInternationalizationAdministration/DisplayInternationalizationAdministration.test.stories.js +12 -6
- package/src/react-extension/components/Administration/DisplayLoadingDialog/DisplayLoadingDialog.js +2 -11
- package/src/react-extension/components/Administration/DisplayMfaAdministration/DisplayMfaAdministration.js +6 -6
- package/src/react-extension/components/Administration/DisplayMfaAdministration/DisplayMfaAdministration.test.stories.js +1 -1
- package/src/react-extension/components/Administration/DisplaySimulateSynchronizeUserDirectoryAdministration/DisplaySimulateSynchronizeUserDirectoryAdministration.js +25 -1
- package/src/react-extension/components/Administration/DisplaySimulateSynchronizeUserDirectoryAdministration/DisplaySimulateSynchronizeUserDirectoryAdministration.test.js +1 -1
- package/src/react-extension/components/Administration/DisplaySimulateSynchronizeUserDirectoryAdministration/DisplaySimulateSynchronizeUserDirectoryAdministration.test.stories.js +1 -1
- package/src/react-extension/components/Administration/DisplaySubscriptionKey/DisplaySubscriptionKey.test.stories.js +1 -1
- package/src/react-extension/components/Administration/DisplaySynchronizeUserDirectoryAdministration/DisplaySynchronizeUserDirectoryAdministration.js +25 -1
- package/src/react-extension/components/Administration/DisplaySynchronizeUserDirectoryAdministration/DisplaySynchronizeUserDirectoryAdministration.test.js +1 -1
- package/src/react-extension/components/Administration/DisplaySynchronizeUserDirectoryAdministration/DisplaySynchronizeUserDirectoryAdministration.test.stories.js +1 -1
- package/src/react-extension/components/Administration/DisplayTestUserDirectoryAdministration/DisplayTestUserDirectoryAdministration.js +12 -2
- package/src/react-extension/components/Administration/DisplayTestUserDirectoryAdministration/DisplayTestUserDirectoryAdministration.test.js +1 -1
- package/src/react-extension/components/Administration/DisplayTestUserDirectoryAdministration/DisplayTestUserDirectoryAdministration.test.stories.js +1 -1
- package/src/react-extension/components/Administration/DisplayUserDirectoryAdministration/DisplayUserDirectoryAdministration.js +24 -24
- package/src/react-extension/components/Administration/DisplayUserDirectoryAdministration/DisplayUserDirectoryAdministration.test.stories.js +1 -1
- package/src/react-extension/components/Administration/EditSubscriptionKey/EditSubscriptionKey.js +1 -1
- package/src/react-extension/components/Administration/EditSubscriptionKey/EditSubscriptionKey.test.stories.js +1 -1
- package/src/react-extension/components/Administration/ManageAccountRecoveryAdministrationSettings/ManageAccountRecoveryAdministrationSettings.js +6 -3
- package/src/react-extension/components/Administration/ManageAccountRecoveryAdministrationSettings/ManageAccountRecoveryAdministrationSettings.test.data.js +20 -5
- package/src/react-extension/components/Administration/ManageAccountRecoveryAdministrationSettings/ManageAccountRecoveryAdministrationSettings.test.stories.js +1 -1
- package/src/react-extension/components/Administration/ProvideAccountRecoveryOrganizationKey/ProvideAccountRecoveryOrganizationKey.js +1 -11
- package/src/react-extension/components/Administration/ProvideAccountRecoveryOrganizationKey/ProvideAccountRecoveryOrganizationKey.test.stories.js +1 -1
- package/src/react-extension/components/Administration/SelectAccountRecoveryOrganizationKey/DownloadOrganizationKey.js +1 -9
- package/src/react-extension/components/Administration/SelectAccountRecoveryOrganizationKey/DownloadOrganizationKey.test.stories.js +1 -1
- package/src/react-extension/components/Administration/SelectAccountRecoveryOrganizationKey/GenerateOrganizationKey.js +90 -46
- package/src/react-extension/components/Administration/SelectAccountRecoveryOrganizationKey/GenerateOrganizationKey.test.js +61 -17
- package/src/react-extension/components/Administration/SelectAccountRecoveryOrganizationKey/ImportOrganizationKey.js +1 -1
- package/src/react-extension/components/Administration/SelectAccountRecoveryOrganizationKey/SelectAccountRecoveryOrganizationKey.js +1 -9
- package/src/react-extension/components/Administration/SelectAccountRecoveryOrganizationKey/SelectAccountRecoveryOrganizationKey.test.page.js +14 -0
- package/src/react-extension/components/Administration/SelectAccountRecoveryOrganizationKey/SelectAccountRecoveryOrganizationKey.test.stories.js +1 -1
- package/src/react-extension/components/Announcement/AnnouncementWrapper/AnnouncementWrapper.js +3 -2
- package/src/react-extension/components/Announcement/HandleSubscriptionAnnouncement/DisplayExpiredSubscriptionAnnouncement.js +3 -3
- package/src/react-extension/components/Announcement/HandleSubscriptionAnnouncement/DisplayGoingToExpireSubscriptionAnnouncement.js +3 -2
- package/src/react-extension/components/Announcement/HandleSubscriptionAnnouncement/DisplayInvalidSubscriptionAnnouncement.js +3 -3
- package/src/react-extension/components/Authentication/AskForAuthenticationHelpCredentialLost/AskForAuthenticationHelpCredentialLost.js +2 -2
- package/src/react-extension/components/Authentication/AskForAuthenticationHelpCredentialLost/AskForAuthenticationHelpCredentialLost.test.stories.js +1 -1
- package/src/react-extension/components/Authentication/CheckAccountRecoveryEmail/CheckAccountRecoveryEmail.js +2 -2
- package/src/react-extension/components/Authentication/CheckAccountRecoveryEmail/CheckAccountRecoveryEmail.test.stories.js +1 -1
- package/src/react-extension/components/Authentication/CheckMailBox/CheckMailBox.js +2 -12
- package/src/react-extension/components/Authentication/CheckMailBox/CheckMailbox.test.stories.js +1 -1
- package/src/react-extension/components/Authentication/CheckPassphrase/CheckPassphrase.js +88 -41
- package/src/react-extension/components/Authentication/CheckPassphrase/CheckPassphrase.test.stories.js +1 -1
- package/src/react-extension/components/Authentication/ChooseAccountRecoveryPreference/ChooseAccountRecoveryPreference.js +2 -2
- package/src/react-extension/components/Authentication/ChooseAccountRecoveryPreference/ChooseAccountRecoveryPreference.test.stories.js +11 -1
- package/src/react-extension/components/Authentication/ChooseSecurityToken/ChooseSecurityToken.js +2 -2
- package/src/react-extension/components/Authentication/ChooseSecurityToken/ChooseSecurityToken.test.stories.js +1 -1
- package/src/react-extension/components/Authentication/CreateGpgKey/CreateGpgKey.js +24 -14
- package/src/react-extension/components/Authentication/CreateGpgKey/CreateGpgKey.test.js +2 -2
- package/src/react-extension/components/Authentication/CreateGpgKey/CreateGpgKey.test.stories.js +1 -1
- package/src/react-extension/components/Authentication/DisplayAlreadyLoggedInError/DisplayAlreadyLoggedInError.js +2 -2
- package/src/react-extension/components/Authentication/DisplayAlreadyLoggedInError/DisplayAlreadyLoggedInError.test.stories.js +1 -1
- package/src/react-extension/components/Authentication/DisplayBrowserNotSupported/DisplayBrowserNotSupported.js +2 -2
- package/src/react-extension/components/Authentication/DisplayBrowserNotSupported/DisplayBrowserNotSupported.test.stories.js +1 -1
- package/src/react-extension/components/Authentication/DisplayExpiredTokenError/DisplayExpiredTokenError.js +2 -2
- package/src/react-extension/components/Authentication/DisplayExpiredTokenError/DisplayExpiredTokenError.test.stories.js +1 -1
- package/src/react-extension/components/Authentication/DisplayRequireInvitationError/DisplayRequireInvitationError.js +2 -2
- package/src/react-extension/components/Authentication/DisplayRequireInvitationError/DisplayRequireInvitationError.test.stories.js +1 -1
- package/src/react-extension/components/Authentication/DisplayUnexpectedError/DisplayUnexpectedError.js +3 -3
- package/src/react-extension/components/Authentication/DisplayUnexpectedError/DisplayUnexpectedError.test.stories.js +1 -1
- package/src/react-extension/components/Authentication/DownloadRecoveryKit/DownloadRecoveryKit.js +2 -2
- package/src/react-extension/components/Authentication/DownloadRecoveryKit/DownloadRecoveryKit.test.stories.js +1 -1
- package/src/react-extension/components/Authentication/EnterNameForm/EnterNameForm.js +6 -6
- package/src/react-extension/components/Authentication/EnterNameForm/EnterNameForm.test.stories.js +1 -1
- package/src/react-extension/components/Authentication/EnterUsernameForm/EnterUsernameForm.js +1 -1
- package/src/react-extension/components/Authentication/EnterUsernameForm/EnterUsernameForm.test.stories.js +1 -1
- package/src/react-extension/components/Authentication/ImportGpgKey/ImportGpgKey.js +34 -7
- package/src/react-extension/components/Authentication/ImportGpgKey/ImportGpgKey.test.data.js +2 -1
- package/src/react-extension/components/Authentication/ImportGpgKey/ImportGpgKey.test.js +20 -1
- package/src/react-extension/components/Authentication/ImportGpgKey/ImportGpgKey.test.page.js +4 -0
- package/src/react-extension/components/Authentication/ImportGpgKey/ImportGpgKey.test.stories.js +1 -1
- package/src/react-extension/components/Authentication/InstallExtension/InstallExtension.js +2 -2
- package/src/react-extension/components/Authentication/InstallExtension/InstallExtension.test.stories.js +4 -1
- package/src/react-extension/components/Authentication/IntroduceExtension/IntroduceExtension.js +2 -2
- package/src/react-extension/components/Authentication/IntroduceExtension/IntroduceExtension.test.stories.js +1 -1
- package/src/react-extension/components/Authentication/NotifyExpiredSession/NotifyExpiredSession.js +1 -9
- package/src/react-extension/components/Authentication/NotifyExpiredSession/NotifyExpiredSession.test.stories.js +1 -1
- package/src/react-extension/components/Authentication/RequestAccountRecovery/RequestAccountRecovery.js +2 -2
- package/src/react-extension/components/Authentication/RequestAccountRecovery/RequestAccountRecovery.test.stories.js +6 -1
- package/src/react-extension/components/AuthenticationAccountRecovery/DisplayExpiredTokenError/DisplayExpiredTokenError.js +2 -2
- package/src/react-extension/components/AuthenticationAccountRecovery/DisplayExpiredTokenError/DisplayExpiredTokenError.test.stories.js +1 -1
- package/src/react-extension/components/AuthenticationAccountRecovery/DisplayRestartFromScratchError/DisplayRestartFromScratchError.js +2 -2
- package/src/react-extension/components/AuthenticationAccountRecovery/DisplayRestartFromScratchError/DisplayRestartFromScratchError.test.stories.js +1 -1
- package/src/react-extension/components/AuthenticationAccountRecovery/OrchestrateAccountRecovery/OrchestrateAccountRecovery.js +2 -2
- package/src/react-extension/components/AuthenticationLogin/AcceptLoginServerKeyChange/AcceptLoginServerKeyChange.js +2 -2
- package/src/react-extension/components/AuthenticationLogin/AcceptLoginServerKeyChange/AcceptLoginServerKeyChange.test.stories.js +1 -1
- package/src/react-extension/components/AuthenticationLogin/Login/Login.js +1 -9
- package/src/react-extension/components/AuthenticationLogin/Login/Login.test.stories.js +1 -1
- package/src/react-extension/components/AuthenticationLogin/OrchestrateLogin/OrchestrateLoginBoxFooter.js +2 -2
- package/src/react-extension/components/AuthenticationLogin/OrchestrateLogin/OrchestrateLoginBoxMain.js +2 -2
- package/src/react-extension/components/AuthenticationPassphrase/InputPassphrase/InputPassphrase.js +1 -1
- package/src/react-extension/components/AuthenticationPassphrase/InputPassphrase/InputPassphrase.test.stories.js +1 -1
- package/src/react-extension/components/AuthenticationRecover/RecoverAuthentication/RecoverAuthentication.js +3 -2
- package/src/react-extension/components/AuthenticationSetup/SetupAuthentication/SetupAuthentication.js +3 -3
- package/src/react-extension/components/Common/ActionFeedback/DisplayActionFeedbacks.test.stories.js +1 -1
- package/src/react-extension/components/Common/ActionFeedback/ShareActionFeedback.js +2 -2
- package/src/react-extension/components/Common/Autocomplete/Autocomplete.js +8 -2
- package/src/react-extension/components/Common/Avatar/UserAvatar.test.data.js +6 -4
- package/src/react-extension/components/Common/Avatar/UserAvatar.test.stories.js +3 -2
- package/src/react-extension/components/Common/Button/Button.test.stories.js +5 -5
- package/src/react-extension/components/Common/Checkbox/Checkbox.test.stories.js +1 -1
- package/src/react-extension/components/Common/ContextualMenu/ContextualMenu.test.stories.js +1 -1
- package/src/react-extension/components/Common/ContextualMenu/ContextualMenuWrapper.js +10 -8
- package/src/react-extension/components/Common/Dialog/DialogCloseButton/DialogCloseButton.js +2 -1
- package/src/react-extension/components/Common/Dialog/DialogWrapper/DialogFooter.test.stories.js +2 -2
- package/src/react-extension/components/Common/Dialog/DialogWrapper/DialogWrapper.js +2 -2
- package/src/react-extension/components/Common/Dialog/DialogWrapper/DialogWrapper.test.stories.js +1 -1
- package/src/react-extension/components/Common/DragInfo/DragInfo.test.stories.js +10 -8
- package/src/react-extension/components/Common/Error/NotifyError/NotifyError.js +3 -11
- package/src/react-extension/components/Common/Error/NotifyError/NotifyError.test.stories.js +6 -1
- package/src/react-extension/components/Common/Footer/Footer.js +3 -13
- package/src/react-extension/components/Common/Inputs/Autocomplete/Autocomplete.js +16 -7
- package/src/react-extension/components/Common/Inputs/Autocomplete/AutocompleteItemLoading.js +4 -0
- package/src/react-extension/components/Common/Inputs/FormSubmitButton/FormCancelButton.js +3 -12
- package/src/react-extension/components/Common/Inputs/FormSubmitButton/FormSubmitButton.js +2 -2
- package/src/react-extension/components/Common/Internationalisation/TranslationProvider.js +0 -1
- package/src/react-extension/components/Common/Link/Link.test.stories.js +1 -1
- package/src/react-extension/components/Common/Loading/LoadingBar/LoadingBar.test.stories.js +1 -1
- package/src/react-extension/components/Common/Loading/LoadingSpinner/LoadingSpinner.test.stories.js +1 -1
- package/src/react-extension/components/Common/Menu/DisplayMainMenu.js +2 -11
- package/src/react-extension/components/Common/Navigation/Search/SearchBar.js +7 -7
- package/src/react-extension/components/Common/Navigation/Search/SearchBar.test.stories.js +1 -1
- package/src/react-extension/components/Common/Progress/DisplayProgress/DisplayProgress.js +2 -11
- package/src/react-extension/components/Common/Progress/DisplayProgress/DisplayProgress.test.stories.js +1 -1
- package/src/react-extension/components/Common/RadioButton/RadioButton.test.stories.js +1 -1
- package/src/react-extension/components/Common/Select/Select.js +44 -12
- package/src/react-extension/components/Common/Select/Select.test.stories.js +1 -1
- package/src/react-extension/components/Common/Text/Text.test.stories.js +1 -1
- package/src/react-extension/components/Common/TextField/TextField.test.stories.js +1 -1
- package/src/react-extension/components/Common/Toggle/Toggle.test.stories.js +1 -1
- package/src/react-extension/components/Common/Tooltip/Tooltip.test.stories.js +2 -2
- package/src/react-extension/components/Internationalisation/ChangeLocale/ChangeLocale.test.page.js +1 -1
- package/src/react-extension/components/Resource/CreateResource/CreateResource.js +9 -9
- package/src/react-extension/components/Resource/CreateResource/CreateResource.test.stories.js +1 -1
- package/src/react-extension/components/Resource/DeleteResource/DeleteResource.js +3 -3
- package/src/react-extension/components/Resource/DeleteResource/DeleteResource.test.page.js +1 -1
- package/src/react-extension/components/Resource/DeleteResource/DeleteResource.test.stories.js +1 -1
- package/src/react-extension/components/Resource/DisplayResourcesList/DisplayResourcesList.js +4 -4
- package/src/react-extension/components/Resource/DisplayResourcesList/DisplayResourcesList.test.stories.js +1 -1
- package/src/react-extension/components/Resource/DisplayResourcesWorkspace/DisplayResourcesWorkspace.js +1 -9
- package/src/react-extension/components/Resource/DisplayResourcesWorkspace/DisplayResourcesWorkspaceMainMenu.js +8 -17
- package/src/react-extension/components/Resource/DisplayResourcesWorkspace/DisplayResourcesWorkspaceMainMenu.test.js +2 -2
- package/src/react-extension/components/Resource/DisplayResourcesWorkspace/DisplayResourcesWorkspaceMainMenu.test.stories.js +1 -1
- package/src/react-extension/components/Resource/DisplayResourcesWorkspace/DisplayResourcesWorkspaceMenu.js +6 -6
- package/src/react-extension/components/Resource/DisplayResourcesWorkspace/DisplayResourcesWorkspaceMenu.test.stories.js +1 -1
- package/src/react-extension/components/Resource/EditResource/EditResource.js +8 -8
- package/src/react-extension/components/Resource/EditResource/EditResource.test.stories.js +1 -1
- package/src/react-extension/components/Resource/ExportResources/ExportResources.js +9 -10
- package/src/react-extension/components/Resource/ExportResources/ExportResources.test.stories.js +1 -1
- package/src/react-extension/components/Resource/ExportResources/ExportResourcesCredentials.js +1 -1
- package/src/react-extension/components/Resource/ExportResources/ExportResourcesCredentials.test.stories.js +1 -1
- package/src/react-extension/components/Resource/FilterResourcesByBreadcrumb/FilterResourcesByBreadcrumb.test.stories.js +1 -1
- package/src/react-extension/components/Resource/FilterResourcesByFolders/FilterResourcesByFolders.js +2 -11
- package/src/react-extension/components/Resource/FilterResourcesByFolders/FilterResourcesByFolders.test.stories.js +1 -1
- package/src/react-extension/components/Resource/FilterResourcesByFolders/FilterResourcesByFoldersItemContextualMenu.js +2 -11
- package/src/react-extension/components/Resource/FilterResourcesByFolders/FilterResourcesByRootFolderContextualMenu.js +2 -11
- package/src/react-extension/components/Resource/FilterResourcesByGroups/FilterResourcesByGroups.js +2 -11
- package/src/react-extension/components/Resource/FilterResourcesByGroups/FilterResourcesByGroups.test.stories.js +1 -1
- package/src/react-extension/components/Resource/FilterResourcesByShortcuts/FilterResourcesByShortcuts.js +4 -13
- package/src/react-extension/components/Resource/FilterResourcesByShortcuts/FilterResourcesByShortcuts.test.js +1 -1
- package/src/react-extension/components/Resource/FilterResourcesByShortcuts/FilterResourcesByShortcuts.test.stories.js +1 -1
- package/src/react-extension/components/Resource/FilterResourcesByTags/FilterResourcesByTags.test.js +1 -1
- package/src/react-extension/components/Resource/FilterResourcesByTags/FilterResourcesByTags.test.stories.js +1 -1
- package/src/react-extension/components/Resource/FilterResourcesByTags/FilterResourcesByTagsContextualMenu.js +2 -11
- package/src/react-extension/components/Resource/FilterResourcesByTags/FilterResourcesByTagsList.js +2 -11
- package/src/react-extension/components/Resource/FilterResourcesByTags/FilterResourcesByTagsListContextualMenu.js +3 -12
- package/src/react-extension/components/Resource/FilterResourcesByText/FilterResourcesByText.test.stories.js +1 -1
- package/src/react-extension/components/Resource/ImportResources/ImportResources.test.stories.js +1 -1
- package/src/react-extension/components/Resource/ImportResources/ImportResourcesKeyUnlock.js +1 -1
- package/src/react-extension/components/Resource/ImportResources/ImportResourcesKeyUnlock.test.stories.js +1 -1
- package/src/react-extension/components/Resource/ImportResources/ImportResourcesResult.test.stories.js +1 -1
- package/src/react-extension/components/ResourceComment/AddResourceComment/AddResourceComment.test.stories.js +5 -3
- package/src/react-extension/components/ResourceComment/ConfirmResourceCommentDeletion/ConfirmResourceCommentDeletion.js +1 -1
- package/src/react-extension/components/ResourceComment/ConfirmResourceCommentDeletion/ConfirmResourceCommentDeletion.test.stories.js +1 -1
- package/src/react-extension/components/ResourceComment/DeleteResourceComment/DeleteComment.js +2 -1
- package/src/react-extension/components/ResourceComment/DisplayResourceCommentList/DisplayResourceCommentList.js +1 -9
- package/src/react-extension/components/ResourceComment/DisplayResourceCommentList/DisplayResourceCommentList.test.stories.js +5 -3
- package/src/react-extension/components/ResourceDescription/EditResourceDescription/EditResourceDescription.js +2 -2
- package/src/react-extension/components/ResourceDescription/EditResourceDescription/EditResourceDescription.test.stories.js +5 -3
- package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetails.js +3 -3
- package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetailsActivity.test.stories.js +2 -2
- package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetailsComment.js +2 -11
- package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetailsDescription.js +2 -10
- package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetailsDescription.test.stories.js +1 -1
- package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetailsInformation.js +1 -1
- package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetailsInformation.test.data.js +1 -1
- package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetailsPermission.js +2 -10
- package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetailsTag.js +3 -12
- package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetailsTag.test.stories.js +1 -1
- package/src/react-extension/components/ResourceFolder/CreateResourceFolder/CreateResourceFolder.js +1 -1
- package/src/react-extension/components/ResourceFolder/CreateResourceFolder/CreateResourceFolder.test.stories.js +1 -1
- package/src/react-extension/components/ResourceFolder/DefineResourceFolderMoveStrategy/DefineResourceFolderMoveStrategy.test.stories.js +1 -1
- package/src/react-extension/components/ResourceFolder/DeleteResourceFolder/DeleteResourceFolder.js +1 -1
- package/src/react-extension/components/ResourceFolder/DeleteResourceFolder/DeleteResourceFolder.test.stories.js +1 -1
- package/src/react-extension/components/ResourceFolder/RenameResourceFolder/RenameResourceFolder.js +1 -1
- package/src/react-extension/components/ResourceFolder/RenameResourceFolder/RenameResourceFolder.test.stories.js +1 -1
- package/src/react-extension/components/ResourceFolderDetails/DisplayResourceFolderDetails/DisplayResourceFolderDetails.js +1 -1
- package/src/react-extension/components/ResourceFolderDetails/DisplayResourceFolderDetails/DisplayResourceFolderDetailsActivity.test.stories.js +1 -1
- package/src/react-extension/components/ResourceFolderDetails/DisplayResourceFolderDetails/DisplayResourceFolderDetailsInformation.js +1 -9
- package/src/react-extension/components/ResourceFolderDetails/DisplayResourceFolderDetails/DisplayResourceFolderDetailsInformation.test.stories.js +1 -1
- package/src/react-extension/components/ResourceFolderDetails/DisplayResourceFolderDetails/DisplayResourceFolderDetailsPermissions.test.stories.js +1 -1
- package/src/react-extension/components/ResourcePassword/GenerateResourcePassword/ConfigurePassphraseGenerator.js +10 -7
- package/src/react-extension/components/ResourcePassword/GenerateResourcePassword/ConfigurePassphraseGenerator.test.stories.js +1 -1
- package/src/react-extension/components/ResourcePassword/GenerateResourcePassword/ConfigurePasswordGenerator.js +12 -9
- package/src/react-extension/components/ResourcePassword/GenerateResourcePassword/ConfigurePasswordGenerator.test.stories.js +1 -1
- package/src/react-extension/components/ResourcePassword/GenerateResourcePassword/GenerateResourcePassword.js +10 -7
- package/src/react-extension/components/ResourcePassword/GenerateResourcePassword/GenerateResourcePassword.test.stories.js +1 -1
- package/src/react-extension/components/ResourceTag/DeleteResourceTag/DeleteResourceTag.js +2 -2
- package/src/react-extension/components/ResourceTag/DeleteResourceTag/DeleteResourceTag.test.stories.js +1 -1
- package/src/react-extension/components/ResourceTag/EditResourceTag/EditResourceTag.js +1 -1
- package/src/react-extension/components/ResourceTag/EditResourceTag/EditResourceTag.test.stories.js +1 -1
- package/src/react-extension/components/ResourceTag/EditResourceTags/EditResourceTags.js +2 -2
- package/src/react-extension/components/ResourceTag/EditResourceTags/EditResourceTagsItemViewer.js +2 -11
- package/src/react-extension/components/Share/ShareDialog.js +124 -22
- package/src/react-extension/components/Share/ShareDialog.test.data.js +25 -1
- package/src/react-extension/components/Share/ShareDialog.test.js +87 -36
- package/src/react-extension/components/Share/ShareDialog.test.page.js +1 -1
- package/src/react-extension/components/Share/ShareDialog.test.stories.js +1 -1
- package/src/react-extension/components/Share/SharePermissionDeleteButton.js +2 -1
- package/src/react-extension/components/Share/SharePermissionItem.js +56 -0
- package/src/react-extension/components/Share/ShareVariesDetails.js +2 -11
- package/src/react-extension/components/User/ConfirmDisableUserMFA/ConfirmDisableUserMFA.js +1 -1
- package/src/react-extension/components/User/ConfirmDisableUserMFA/ConfirmDisableUserMFA.test.stories.js +1 -1
- package/src/react-extension/components/User/CreateUser/CreateUser.js +9 -9
- package/src/react-extension/components/User/CreateUser/CreateUser.test.stories.js +1 -1
- package/src/react-extension/components/User/DeleteUser/DeleteUser.js +1 -1
- package/src/react-extension/components/User/DeleteUser/DeleteUser.test.stories.js +1 -1
- package/src/react-extension/components/User/DeleteUser/DeleteUserWithConflicts.js +3 -3
- package/src/react-extension/components/User/DeleteUser/DeleteUserWithConflicts.test.stories.js +1 -1
- package/src/react-extension/components/User/DisplayExpiredAccountRecovery/DisplayExpiredAccountRecovery.js +1 -9
- package/src/react-extension/components/User/DisplayExpiredAccountRecovery/DisplayExpiredAccountRecovery.test.stories.js +1 -1
- package/src/react-extension/components/User/DisplayUserBadgeMenu/DisplayUserBadgeMenu.js +8 -17
- package/src/react-extension/components/User/DisplayUserBadgeMenu/DisplayUserBadgeMenu.test.stories.js +1 -1
- package/src/react-extension/components/User/DisplayUserWorkspaceActions/DisplayUserWorkspaceActions.js +3 -3
- package/src/react-extension/components/User/DisplayUserWorkspaceActions/DisplayUserWorkspaceActions.test.stories.js +1 -1
- package/src/react-extension/components/User/DisplayUserWorkspaceMainActions/DisplayUserWorkspaceMainActions.js +8 -17
- package/src/react-extension/components/User/DisplayUserWorkspaceMainActions/DisplayUserWorkspaceMainActions.test.js +4 -4
- package/src/react-extension/components/User/DisplayUsers/DisplayUsers.js +1 -1
- package/src/react-extension/components/User/DisplayUsers/DisplayUsers.test.stories.js +1 -1
- package/src/react-extension/components/User/DisplayUsersContextualMenu/DisplayUsersContextualMenu.test.stories.js +1 -1
- package/src/react-extension/components/User/EditUser/EditUser.js +9 -9
- package/src/react-extension/components/User/EditUser/EditUser.test.stories.js +1 -1
- package/src/react-extension/components/User/FilterUsersByBreadcrumb/FilterUsersByBreadcrumb.test.stories.js +1 -1
- package/src/react-extension/components/User/FilterUsersByGroups/DisplayGroupContextualMenu.js +2 -11
- package/src/react-extension/components/User/FilterUsersByGroups/FilterUsersByGroup.test.stories.js +1 -1
- package/src/react-extension/components/User/FilterUsersByGroups/FilterUsersByGroupContextualMenu.js +2 -11
- package/src/react-extension/components/User/FilterUsersByShortcut/FilterUsersByShortcut.js +3 -12
- package/src/react-extension/components/User/FilterUsersByShortcut/FilterUsersByShortcut.test.stories.js +1 -1
- package/src/react-extension/components/User/FilterUsersByText/FilterUsersByText.js +1 -9
- package/src/react-extension/components/User/FilterUsersByText/FilterUsersByText.test.stories.js +1 -1
- package/src/react-extension/components/UserDetails/DisplayUserDetails/DisplayUserDetails.js +3 -3
- package/src/react-extension/components/UserDetails/DisplayUserDetailsAccountRecovery/DisplayUserDetailsAccountRecovery.js +1 -9
- package/src/react-extension/components/UserDetails/DisplayUserDetailsAccountRecovery/DisplayUserDetailsAccountRecovery.test.data.js +1 -1
- package/src/react-extension/components/UserDetails/DisplayUserDetailsAccountRecovery/DisplayUserDetailsAccountRecovery.test.stories.js +1 -1
- package/src/react-extension/components/UserDetails/DisplayUserDetailsActivity/DisplayUserDetailsActivity.js +1 -9
- package/src/react-extension/components/UserDetails/DisplayUserDetailsActivity/DisplayUserDetailsActivity.test.stories.js +1 -1
- package/src/react-extension/components/UserDetails/DisplayUserDetailsGroups/DisplayUserDetailsGroups.test.stories.js +1 -1
- package/src/react-extension/components/UserDetails/DisplayUserDetailsInformation/DisplayUserDetailsInformation.js +1 -1
- package/src/react-extension/components/UserDetails/DisplayUserDetailsInformation/DisplayUserDetailsInformation.test.stories.js +22 -83
- package/src/react-extension/components/UserDetails/DisplayUserDetailsPublicKey/DisplayUserDetailsPublicKey.js +8 -1
- package/src/react-extension/components/UserDetails/DisplayUserDetailsPublicKey/DisplayUserDetailsPublicKey.test.data.js +20 -2
- package/src/react-extension/components/UserDetails/DisplayUserDetailsPublicKey/DisplayUserDetailsPublicKey.test.js +25 -1
- package/src/react-extension/components/UserDetails/DisplayUserDetailsPublicKey/DisplayUserDetailsPublicKey.test.stories.js +28 -26
- package/src/react-extension/components/UserGroup/CreateUserGroup/CreateUserGroup.js +85 -57
- package/src/react-extension/components/UserGroup/CreateUserGroup/CreateUserGroup.test.js +21 -6
- package/src/react-extension/components/UserGroup/CreateUserGroup/CreateUserGroup.test.stories.js +1 -1
- package/src/react-extension/components/UserGroup/DeleteUserGroup/DeleteUserGroup.js +1 -1
- package/src/react-extension/components/UserGroup/DeleteUserGroup/DeleteUserGroup.test.stories.js +1 -1
- package/src/react-extension/components/UserGroup/DeleteUserGroup/DeleteUserGroupWithConflicts.js +2 -2
- package/src/react-extension/components/UserGroup/DeleteUserGroup/DeleteUserGroupWithConflicts.test.stories.js +1 -1
- package/src/react-extension/components/UserGroup/DisplayUserGroupDetails/DisplayUserGroupDetails.js +1 -1
- package/src/react-extension/components/UserGroup/DisplayUserGroupDetailsInformation/DisplayUserGroupDetailsInformation.test.stories.js +1 -1
- package/src/react-extension/components/UserGroup/DisplayUserGroupDetailsMembers/DisplayUserGroupDetailsMembers.js +4 -13
- package/src/react-extension/components/UserGroup/DisplayUserGroupDetailsMembers/DisplayUserGroupDetailsMembers.test.stories.js +1 -1
- package/src/react-extension/components/UserGroup/DisplayUserGroupDetailsMembers/DisplayUserGroupDetailsMembersGroupMember.js +1 -9
- package/src/react-extension/components/UserGroup/EditUserGroup/EditUserGroup.js +132 -151
- package/src/react-extension/components/UserGroup/EditUserGroup/EditUserGroup.test.js +8 -1
- package/src/react-extension/components/UserGroup/EditUserGroup/EditUserGroup.test.page.js +37 -14
- package/src/react-extension/components/UserGroup/EditUserGroup/EditUserGroup.test.stories.js +5 -2
- package/src/react-extension/components/UserGroup/EditUserGroup/EditUserGroupItem.js +209 -0
- package/src/react-extension/components/UserSetting/ChangeUserPassphrase/ConfirmPassphrase.js +1 -1
- package/src/react-extension/components/UserSetting/ChangeUserPassphrase/DisplayChangePassphraseIntroduction.js +2 -3
- package/src/react-extension/components/UserSetting/ChangeUserPassphrase/DownloadRecoveryKit.js +2 -2
- package/src/react-extension/components/UserSetting/ChangeUserPassphrase/EnterNewPassphrase.js +25 -12
- package/src/react-extension/components/UserSetting/ChangeUserPassphrase/EnterNewPassphrase.test.js +5 -1
- package/src/react-extension/components/UserSetting/ChangeUserPassphrase/EnterNewPassphrase.test.page.js +7 -0
- package/src/react-extension/components/UserSetting/ChangeUserSecurityToken/ChangeUserSecurityToken.js +2 -10
- package/src/react-extension/components/UserSetting/ChangeUserSecurityToken/ChangeUserSecurityToken.test.stories.js +1 -1
- package/src/react-extension/components/UserSetting/DisplayUserAccountRecovery/DisplayAccountRecoveryUserSettings.js +1 -1
- package/src/react-extension/components/UserSetting/DisplayUserAccountRecovery/DisplayAccountRecoveryUserSettings.test.stories.js +1 -1
- package/src/react-extension/components/UserSetting/DisplayUserGpgInformation/DisplayUserGpgInformation.js +9 -2
- package/src/react-extension/components/UserSetting/DisplayUserGpgInformation/DisplayUserGpgInformation.test.stories.js +58 -35
- package/src/react-extension/components/UserSetting/DisplayUserProfile/DisplayUserProfile.js +1 -1
- package/src/react-extension/components/UserSetting/DisplayUserProfile/DisplayUserProfile.test.stories.js +1 -1
- package/src/react-extension/components/UserSetting/DisplayUserSettingWorkspaceActions/DisplayUserSettingWorkspaceActions.js +2 -11
- package/src/react-extension/components/UserSetting/DisplayUserSettingsWorkspaceBreadcrumb/DisplayUserSettingsWorkspaceBreadcrumb.js +2 -2
- package/src/react-extension/components/UserSetting/DisplayUserSettingsWorkspaceBreadcrumb/DisplayUserSettingsWorkspaceBreadcrumb.test.stories.js +1 -1
- package/src/react-extension/components/UserSetting/DisplayUserTheme/DisplayUserTheme.js +1 -9
- package/src/react-extension/components/UserSetting/DisplayUserTheme/DisplayUserTheme.test.stories.js +1 -1
- package/src/react-extension/components/UserSetting/EditUserProfile/EditUserProfile.js +8 -8
- package/src/react-extension/components/UserSetting/EditUserProfile/EditUserProfile.test.stories.js +1 -1
- package/src/react-extension/components/UserSetting/NavigateIntoUserSettingsWorkspace/NavigateIntoUserSettingsWorkspace.js +4 -13
- package/src/react-extension/components/UserSetting/NavigateIntoUserSettingsWorkspace/NavigateIntoUserSettingsWorkspace.test.stories.js +1 -1
- package/src/react-extension/components/UserSetting/UploadUserProfileAvatar/UploadUserProfileAvatar.test.stories.js +1 -1
- package/src/react-extension/contexts/Authentication/AuthenticationRecoverContext.js +14 -1
- package/src/react-extension/test/fixture/Settings/siteSettings.js +20 -14
- package/src/react-extension/test/mock/components/Internationalisation/MockTranslationProvider.js +8 -1
- package/src/react-quickaccess/ExtQuickAccess.js +23 -9
- package/src/react-quickaccess/components/AnimatedSwitch/AnimatedSwitch.js +0 -1
- package/src/react-quickaccess/components/ExtensionSetup/SetupExtensionInProgress/SetupExtensionInProgress.js +2 -5
- package/src/react-quickaccess/components/ExtensionSetup/SetupExtensionInProgress/SetupExtensionInProgressPage.test.stories.js +1 -1
- package/src/react-quickaccess/components/FilterResourcesByFavoritePage/FilterResourcesByFavoritePage.js +2 -2
- package/src/react-quickaccess/components/FilterResourcesByFavoritePage/FilterResourcesByFavoritePage.test.stories.js +1 -1
- package/src/react-quickaccess/components/FilterResourcesByGroupPage/FilterResourcesByGroupPage.js +1 -1
- package/src/react-quickaccess/components/FilterResourcesByGroupPage/FilterResourcesByGroupPage.test.stories.js +1 -1
- package/src/react-quickaccess/components/FilterResourcesByItemsIOwnPage/FilterResourcesByItemsIOwnPage.js +1 -1
- package/src/react-quickaccess/components/FilterResourcesByItemsIOwnPage/FilterResourcesByItemsIOwnPage.test.stories.js +1 -1
- package/src/react-quickaccess/components/FilterResourcesByRecentlyModifiedPage/FilterResourcesByRecentlyModifiedPage.js +1 -1
- package/src/react-quickaccess/components/FilterResourcesByRecentlyModifiedPage/FilterResourcesByRecentlyModifiedPage.test.stories.js +1 -1
- package/src/react-quickaccess/components/FilterResourcesBySharedWithMePage/FilterResourcesBySharedWithMePage.js +1 -1
- package/src/react-quickaccess/components/FilterResourcesBySharedWithMePage/FilterResourcesBySharedWithMePage.test.stories.js +1 -1
- package/src/react-quickaccess/components/FilterResourcesByTagPage/FilterResourcesByTagPage.js +1 -1
- package/src/react-quickaccess/components/FilterResourcesByTagPage/FilterResourcesByTagPage.test.stories.js +1 -1
- package/src/react-quickaccess/components/GeneratePasswordPage/ConfigurePasswordGenerator.js +2 -3
- package/src/react-quickaccess/components/GeneratePasswordPage/GeneratePasswordPage.js +3 -3
- package/src/react-quickaccess/components/GeneratePasswordPage/GeneratePasswordPage.test.stories.js +1 -1
- package/src/react-quickaccess/components/Header/Header.test.stories.js +1 -1
- package/src/react-quickaccess/components/HomePage/HomePage.js +0 -8
- package/src/react-quickaccess/components/HomePage/HomePage.test.stories.js +1 -1
- package/src/react-quickaccess/components/LoginPage/LoginPage.js +1 -9
- package/src/react-quickaccess/components/LoginPage/LoginPage.test.stories.js +1 -1
- package/src/react-quickaccess/components/MoreFiltersPage/MoreFiltersPage.js +1 -1
- package/src/react-quickaccess/components/MoreFiltersPage/MoreFiltersPage.test.stories.js +1 -1
- package/src/react-quickaccess/components/PassphraseDialog/PassphraseDialog.js +5 -5
- package/src/react-quickaccess/components/PassphraseDialog/PassphraseDialog.test.stories.js +1 -1
- package/src/react-quickaccess/components/ResourceAutoSave/SaveResource.js +1 -1
- package/src/react-quickaccess/components/ResourceAutoSave/SaveResource.test.stories.js +1 -1
- package/src/react-quickaccess/components/ResourceCreatePage/ResourceCreatePage.js +4 -4
- package/src/react-quickaccess/components/ResourceCreatePage/ResourceCreatePage.test.stories.js +1 -1
- package/src/react-quickaccess/components/ResourceViewPage/ResourceViewPage.js +3 -3
- package/src/react-quickaccess/components/ResourceViewPage/ResourceViewPage.test.stories.js +1 -1
- package/src/react-quickaccess/components/Search/Search.js +5 -5
- package/src/react-quickaccess/components/Search/Search.test.stories.js +1 -1
- package/src/react-web-integration/BrowserIntegrationBootstrap.js +0 -17
- package/src/react-web-integration/components/AskInFormMenuDisplay/AskInFormMenuDisplay.test.stories.js +1 -1
- package/src/react-web-integration/components/DisplayInFormMenu/DisplayInFormMenu.js +2 -2
- package/src/react-web-integration/components/DisplayInFormMenu/DisplayInFormMenu.test.stories.js +1 -1
- package/src/react-web-integration/lib/InForm/InFormFieldSelector.js +11 -1
- package/src/react-web-integration/lib/InForm/InformManager.test.data.js +60 -0
- package/src/react-web-integration/lib/InForm/InformManager.test.js +151 -6
- package/src/react-web-integration/lib/InForm/InformManager.test.page.js +39 -0
- package/src/shared/components/Icons/Icon.test.stories.js +1 -1
- package/src/shared/components/Password/Password.js +2 -1
- package/src/shared/components/Password/Password.test.page.js +4 -1
- package/src/shared/components/Password/Password.test.stories.js +1 -1
- package/src/shared/components/PasswordComplexity/PasswordComplexity.js +2 -2
- package/src/shared/components/PasswordComplexity/PasswordComplexity.test.stories.js +5 -5
- package/src/stories/assets/intro/hero.png +0 -0
- package/src/stories/assets/intro/intro.css +47 -0
- package/test/jest.setup.js +2 -0
|
@@ -55,12 +55,17 @@ describe('As AD I can generate an ORK', () => {
|
|
|
55
55
|
* And I see an “Generate & Apply” button
|
|
56
56
|
*/
|
|
57
57
|
it("As a logged in administrator on the account recovery settings in the administration workspace, I can open a dialog to generate an Organization Recovery Key", async() => {
|
|
58
|
+
expect.assertions(12);
|
|
58
59
|
const page = new SelectAccountRecoveryOrganizationKeyPage(defaultProps());
|
|
59
60
|
await waitFor(() => { });
|
|
60
61
|
// Dialog title exists and correct
|
|
61
62
|
expect(page.exists()).toBeTruthy();
|
|
62
63
|
|
|
63
|
-
await page.clickOnGenerateTab(() =>
|
|
64
|
+
await page.clickOnGenerateTab(() => {
|
|
65
|
+
if (!page.isGenerateTabSeletect()) {
|
|
66
|
+
throw new Error("Changes are not available yet");
|
|
67
|
+
}
|
|
68
|
+
});
|
|
64
69
|
|
|
65
70
|
expect(page.isFieldRequired(page.nameField)).toBe(true);
|
|
66
71
|
expect(page.isFieldRequired(page.emailField)).toBe(true);
|
|
@@ -91,12 +96,17 @@ describe('As AD I can generate an ORK', () => {
|
|
|
91
96
|
* And I see a tooltip telling me that this setting is disable and safe
|
|
92
97
|
*/
|
|
93
98
|
it("As a logged in administrator in the administration workspace, I can not select the algorithm type of the Organization Recovery Key generator", async() => {
|
|
99
|
+
expect.assertions(5);
|
|
94
100
|
const page = new SelectAccountRecoveryOrganizationKeyPage(defaultProps());
|
|
95
101
|
await waitFor(() => { });
|
|
96
102
|
// Dialog title exists and correct
|
|
97
103
|
expect(page.exists()).toBeTruthy();
|
|
98
104
|
|
|
99
|
-
await page.clickOnGenerateTab(() =>
|
|
105
|
+
await page.clickOnGenerateTab(() => {
|
|
106
|
+
if (!page.isGenerateTabSeletect()) {
|
|
107
|
+
throw new Error("Changes are not available yet");
|
|
108
|
+
}
|
|
109
|
+
});
|
|
100
110
|
|
|
101
111
|
const tooltipText = "Algorithm and key size cannot be changed at the moment. These are secure default";
|
|
102
112
|
expect(page.algorithmTooltip).not.toBeNull();
|
|
@@ -118,18 +128,34 @@ describe('As AD I can generate an ORK', () => {
|
|
|
118
128
|
* Then the characters are replaced with symbols
|
|
119
129
|
*/
|
|
120
130
|
it("As a logged in administrator in the administration workspace, I can show or hide the content of the “Organization key passphrase” text field in the Organization Recovery Key dialog", async() => {
|
|
131
|
+
expect.assertions(4);
|
|
121
132
|
const page = new SelectAccountRecoveryOrganizationKeyPage(defaultProps());
|
|
122
|
-
await waitFor(() => {
|
|
133
|
+
await waitFor(() => {});
|
|
123
134
|
// Dialog title exists and correct
|
|
124
135
|
expect(page.exists()).toBeTruthy();
|
|
125
136
|
|
|
126
|
-
await page.clickOnGenerateTab(() =>
|
|
137
|
+
await page.clickOnGenerateTab(() => {
|
|
138
|
+
if (!page.isGenerateTabSeletect()) {
|
|
139
|
+
throw new Error("Changes are not available yet");
|
|
140
|
+
}
|
|
141
|
+
});
|
|
127
142
|
|
|
128
143
|
page.passphraseField.value = "dummy-passphrase";
|
|
129
144
|
expect(page.passphraseField.getAttribute("type")).toBe("password");
|
|
130
145
|
|
|
131
|
-
await page.toggleShowPassword(() =>
|
|
132
|
-
|
|
146
|
+
await page.toggleShowPassword(() => {
|
|
147
|
+
if (page.passphraseField.getAttribute("type") !== "text") {
|
|
148
|
+
throw new Error("Changes are not available yet");
|
|
149
|
+
}
|
|
150
|
+
});
|
|
151
|
+
expect(page.passphraseField.getAttribute("type")).toBe("text");
|
|
152
|
+
|
|
153
|
+
await page.toggleShowPassword(() => {
|
|
154
|
+
if (page.passphraseField.getAttribute("type") !== "password") {
|
|
155
|
+
throw new Error("Changes are not available yet");
|
|
156
|
+
}
|
|
157
|
+
});
|
|
158
|
+
expect(page.passphraseField.getAttribute("type")).toBe("password");
|
|
133
159
|
});
|
|
134
160
|
|
|
135
161
|
/**
|
|
@@ -141,13 +167,22 @@ describe('As AD I can generate an ORK', () => {
|
|
|
141
167
|
* And I see the empty mandatory field label in @red
|
|
142
168
|
*/
|
|
143
169
|
it("As a logged in administrator in the administration workspace, I cannot generate OpenPGP Public key in the Organization Recovery Key settings without a valid email and name", async() => {
|
|
170
|
+
expect.assertions(4);
|
|
144
171
|
const page = new SelectAccountRecoveryOrganizationKeyPage(defaultProps());
|
|
145
172
|
await waitFor(() => { });
|
|
146
173
|
// Dialog title exists and correct
|
|
147
174
|
expect(page.exists()).toBeTruthy();
|
|
148
|
-
await page.clickOnGenerateTab(() =>
|
|
149
|
-
|
|
150
|
-
|
|
175
|
+
await page.clickOnGenerateTab(() => {
|
|
176
|
+
if (!page.isGenerateTabSeletect()) {
|
|
177
|
+
throw new Error("Changes are not available yet");
|
|
178
|
+
}
|
|
179
|
+
});
|
|
180
|
+
|
|
181
|
+
await page.clickOnGenerateButton(() => {
|
|
182
|
+
if (page.nameError === null) {
|
|
183
|
+
throw new Error("Changes are not available yet");
|
|
184
|
+
}
|
|
185
|
+
});
|
|
151
186
|
|
|
152
187
|
expect(page.nameFieldError).not.toBeNull();
|
|
153
188
|
expect(page.emailFieldError).not.toBeNull();
|
|
@@ -163,17 +198,26 @@ describe('As AD I can generate an ORK', () => {
|
|
|
163
198
|
* Then I see an error message below the passphrase telling me to use a strong passphrase instead
|
|
164
199
|
*/
|
|
165
200
|
it("As a logged in administrator in the administration workspace, I cannot generate OpenPGP Public key in the Organization Recovery Key settings without a strong passphrase", async() => {
|
|
201
|
+
expect.assertions(3);
|
|
166
202
|
const page = new SelectAccountRecoveryOrganizationKeyPage(defaultProps());
|
|
167
|
-
await waitFor(() => {
|
|
203
|
+
await waitFor(() => {});
|
|
168
204
|
// Dialog title exists and correct
|
|
169
205
|
expect(page.exists()).toBeTruthy();
|
|
170
|
-
await page.clickOnGenerateTab(() =>
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
await page.
|
|
206
|
+
await page.clickOnGenerateTab(() => {
|
|
207
|
+
if (!page.isGenerateTabSeletect()) {
|
|
208
|
+
throw new Error("Changes are not available yet");
|
|
209
|
+
}
|
|
210
|
+
});
|
|
211
|
+
|
|
212
|
+
await page.type("test", page.nameField);
|
|
213
|
+
await page.type("test@passbolt.com", page.emailField);
|
|
214
|
+
await page.type("almost fair passw", page.passphraseField);
|
|
215
|
+
|
|
216
|
+
await page.clickOnGenerateButton(() => {
|
|
217
|
+
if (page.passphraseFieldError === null) {
|
|
218
|
+
throw new Error("Changes are not available yet");
|
|
219
|
+
}
|
|
220
|
+
});
|
|
177
221
|
|
|
178
222
|
expect(page.passphraseFieldError).not.toBeNull();
|
|
179
223
|
expect(page.passphraseFieldError.textContent).toBe(`A strong passphrase is required. The minimum complexity must be 'fair'`);
|
|
@@ -232,7 +232,7 @@ class ImportOrganizationKey extends React.Component {
|
|
|
232
232
|
<textarea id="organization-recover-form-key" name="key" value={this.state.key}
|
|
233
233
|
onKeyUp={this.handleKeyInputKeyUp} onChange={this.handleInputChange}
|
|
234
234
|
disabled={this.hasAllInputDisabled()} ref={this.keyInputRef} className="required"
|
|
235
|
-
placeholder='Add Open PGP Public key' required="required" autoComplete="off" autoFocus={true} />
|
|
235
|
+
placeholder={this.translate('Add Open PGP Public key')} required="required" autoComplete="off" autoFocus={true} />
|
|
236
236
|
</div>
|
|
237
237
|
<div className="input file">
|
|
238
238
|
<input
|
|
@@ -68,14 +68,6 @@ class SelectAccountRecoveryOrganizationKey extends React.Component {
|
|
|
68
68
|
this.props.handleUpdateOrganizationKey(public_key, private_key);
|
|
69
69
|
}
|
|
70
70
|
|
|
71
|
-
/**
|
|
72
|
-
* Get the translate function
|
|
73
|
-
* @returns {function(...[*]=)}
|
|
74
|
-
*/
|
|
75
|
-
get translate() {
|
|
76
|
-
return this.props.t;
|
|
77
|
-
}
|
|
78
|
-
|
|
79
71
|
/**
|
|
80
72
|
* Render the component
|
|
81
73
|
* @returns {JSX}
|
|
@@ -83,7 +75,7 @@ class SelectAccountRecoveryOrganizationKey extends React.Component {
|
|
|
83
75
|
render() {
|
|
84
76
|
return (
|
|
85
77
|
<DialogWrapper
|
|
86
|
-
title={this.
|
|
78
|
+
title={this.props.t("Organization Recovery Key")}
|
|
87
79
|
onClose={this.handleCloseClick}
|
|
88
80
|
disabled={this.state.processing}
|
|
89
81
|
className="organization-recover-key-dialog">
|
|
@@ -259,4 +259,18 @@ export default class SelectAccountRecoveryOrganizationKeyPage {
|
|
|
259
259
|
|
|
260
260
|
await waitFor(waitForCallback);
|
|
261
261
|
}
|
|
262
|
+
|
|
263
|
+
async type(text, element) {
|
|
264
|
+
fireEvent.input(element, {
|
|
265
|
+
target: {
|
|
266
|
+
value: text
|
|
267
|
+
}
|
|
268
|
+
});
|
|
269
|
+
|
|
270
|
+
await waitFor(() => {
|
|
271
|
+
if (element.value !== text) {
|
|
272
|
+
throw new Error("The field has not changed yet.");
|
|
273
|
+
}
|
|
274
|
+
});
|
|
275
|
+
}
|
|
262
276
|
}
|
|
@@ -22,7 +22,7 @@ import userSettingsFixture from "../../../test/fixture/Settings/userSettings";
|
|
|
22
22
|
|
|
23
23
|
|
|
24
24
|
export default {
|
|
25
|
-
title: 'Passbolt/Administration/SelectAccountRecoveryOrganizationKey',
|
|
25
|
+
title: 'Passbolt Component/Administration/SelectAccountRecoveryOrganizationKey',
|
|
26
26
|
component: SelectAccountRecoveryOrganizationKey
|
|
27
27
|
};
|
|
28
28
|
|
package/src/react-extension/components/Announcement/AnnouncementWrapper/AnnouncementWrapper.js
CHANGED
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
* @since 3.2.0
|
|
13
13
|
*/
|
|
14
14
|
import React, {Component} from "react";
|
|
15
|
+
import {Trans} from "react-i18next";
|
|
15
16
|
import PropTypes from "prop-types";
|
|
16
17
|
import Icon from "../../../../shared/components/Icons/Icon";
|
|
17
18
|
|
|
@@ -49,9 +50,9 @@ class AnnouncementWrapper extends Component {
|
|
|
49
50
|
<div className={`${this.props.className} announcement`}>
|
|
50
51
|
<div className="announcement-content">
|
|
51
52
|
{this.props.canClose &&
|
|
52
|
-
<a className="announcement-close" onClick={this.handleClose} role="button">
|
|
53
|
+
<a className="announcement-close dialog-close button button-transparent" onClick={this.handleClose} role="button">
|
|
53
54
|
<Icon name='close'/>
|
|
54
|
-
<span className="visually-hidden">Close</span>
|
|
55
|
+
<span className="visually-hidden"><Trans>Close</Trans></span>
|
|
55
56
|
</a>
|
|
56
57
|
}
|
|
57
58
|
{this.props.children}
|
|
@@ -16,7 +16,7 @@ import PropTypes from "prop-types";
|
|
|
16
16
|
import AnnouncementWrapper
|
|
17
17
|
from "../AnnouncementWrapper/AnnouncementWrapper";
|
|
18
18
|
import {withNavigationContext} from "../../../contexts/NavigationContext";
|
|
19
|
-
import {Trans
|
|
19
|
+
import {Trans} from "react-i18next";
|
|
20
20
|
import {withAnnouncement} from "../../../contexts/AnnouncementContext";
|
|
21
21
|
|
|
22
22
|
/**
|
|
@@ -31,7 +31,7 @@ class DisplayExpiredSubscriptionAnnouncement extends React.Component {
|
|
|
31
31
|
return (
|
|
32
32
|
<AnnouncementWrapper className="subscription" onClose={this.props.onClose} canClose={false}>
|
|
33
33
|
<p>
|
|
34
|
-
<Trans>Warning
|
|
34
|
+
<Trans>Warning:</Trans>
|
|
35
35
|
<Trans>your subscription key has expired. The stability of the application is at risk.</Trans>
|
|
36
36
|
<a onClick={this.props.navigationContext.onGoToAdministrationSubscriptionRequested}>
|
|
37
37
|
<Trans>Manage Subscription</Trans>
|
|
@@ -48,4 +48,4 @@ DisplayExpiredSubscriptionAnnouncement.propTypes = {
|
|
|
48
48
|
i18n: PropTypes.any
|
|
49
49
|
};
|
|
50
50
|
|
|
51
|
-
export default withNavigationContext(withAnnouncement(
|
|
51
|
+
export default withNavigationContext(withAnnouncement(DisplayExpiredSubscriptionAnnouncement));
|
|
@@ -33,7 +33,7 @@ class DisplayGoingToExpireSubscriptionAnnouncement extends React.Component {
|
|
|
33
33
|
formatDateTimeAgo(date) {
|
|
34
34
|
const dateTime = DateTime.fromISO(date);
|
|
35
35
|
const duration = dateTime.diffNow().toMillis();
|
|
36
|
-
return duration > -1000 && duration < 0 ? this.
|
|
36
|
+
return duration > -1000 && duration < 0 ? this.props.t('Just now') : dateTime.toRelative({locale: this.props.context.locale});
|
|
37
37
|
}
|
|
38
38
|
|
|
39
39
|
/**
|
|
@@ -44,7 +44,7 @@ class DisplayGoingToExpireSubscriptionAnnouncement extends React.Component {
|
|
|
44
44
|
return (
|
|
45
45
|
<AnnouncementWrapper className="subscription" onClose={this.props.onClose} canClose={true}>
|
|
46
46
|
<p>
|
|
47
|
-
<Trans>Warning
|
|
47
|
+
<Trans>Warning:</Trans>
|
|
48
48
|
<Trans>your subscription key will expire</Trans> {this.formatDateTimeAgo(this.props.expiry)}.
|
|
49
49
|
<a onClick={this.props.navigationContext.onGoToAdministrationSubscriptionRequested}>
|
|
50
50
|
<Trans>Manage Subscription</Trans>
|
|
@@ -60,6 +60,7 @@ DisplayGoingToExpireSubscriptionAnnouncement.propTypes = {
|
|
|
60
60
|
expiry: PropTypes.string, // The subscription expiry date
|
|
61
61
|
navigationContext: PropTypes.any, // The application navigation context
|
|
62
62
|
onClose: PropTypes.func, // The close function
|
|
63
|
+
t: PropTypes.func, // The translation function
|
|
63
64
|
};
|
|
64
65
|
|
|
65
66
|
export default withAppContext(withNavigationContext(withAnnouncement(withTranslation('common')(DisplayGoingToExpireSubscriptionAnnouncement))));
|
|
@@ -16,7 +16,7 @@ import PropTypes from "prop-types";
|
|
|
16
16
|
import AnnouncementWrapper
|
|
17
17
|
from "../AnnouncementWrapper/AnnouncementWrapper";
|
|
18
18
|
import {withNavigationContext} from "../../../contexts/NavigationContext";
|
|
19
|
-
import {Trans
|
|
19
|
+
import {Trans} from "react-i18next";
|
|
20
20
|
import {withAnnouncement} from "../../../contexts/AnnouncementContext";
|
|
21
21
|
|
|
22
22
|
/**
|
|
@@ -31,7 +31,7 @@ class DisplayInvalidSubscriptionAnnouncement extends React.Component {
|
|
|
31
31
|
return (
|
|
32
32
|
<AnnouncementWrapper className="subscription" onClose={this.props.onClose} canClose={false}>
|
|
33
33
|
<p>
|
|
34
|
-
<Trans>Warning
|
|
34
|
+
<Trans>Warning:</Trans>
|
|
35
35
|
<Trans>your subscription key is not valid. The stability of the application is at risk.</Trans>
|
|
36
36
|
<a onClick={this.props.navigationContext.onGoToAdministrationSubscriptionRequested}>
|
|
37
37
|
<Trans>Manage Subscription</Trans>
|
|
@@ -48,4 +48,4 @@ DisplayInvalidSubscriptionAnnouncement.propTypes = {
|
|
|
48
48
|
i18n: PropTypes.any
|
|
49
49
|
};
|
|
50
50
|
|
|
51
|
-
export default withNavigationContext(withAnnouncement(
|
|
51
|
+
export default withNavigationContext(withAnnouncement(DisplayInvalidSubscriptionAnnouncement));
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
*/
|
|
14
14
|
import React, {Component} from "react";
|
|
15
15
|
import PropTypes from "prop-types";
|
|
16
|
-
import {Trans
|
|
16
|
+
import {Trans} from "react-i18next";
|
|
17
17
|
import {withAppContext} from "../../../contexts/AppContext";
|
|
18
18
|
|
|
19
19
|
/**
|
|
@@ -88,4 +88,4 @@ AskForAuthenticationHelpCredentialLost.propTypes = {
|
|
|
88
88
|
canRequestHelp: PropTypes.bool, // Can the user request administrator help. @deprecated since v3.6 the request help feature was added with v3.6
|
|
89
89
|
};
|
|
90
90
|
|
|
91
|
-
export default withAppContext(
|
|
91
|
+
export default withAppContext(AskForAuthenticationHelpCredentialLost);
|
|
@@ -18,7 +18,7 @@ import AskForAuthenticationHelpCredentialLost from "./AskForAuthenticationHelpCr
|
|
|
18
18
|
import {defaultProps} from "./AskForAuthenticationHelpCredentialLost.test.data";
|
|
19
19
|
|
|
20
20
|
export default {
|
|
21
|
-
title: 'Passbolt/Authentication/AskForAuthenticationHelpCredentialLost',
|
|
21
|
+
title: 'Passbolt Component/Authentication/AskForAuthenticationHelpCredentialLost',
|
|
22
22
|
component: AskForAuthenticationHelpCredentialLost
|
|
23
23
|
};
|
|
24
24
|
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
* @since 3.6.0
|
|
13
13
|
*/
|
|
14
14
|
import React, {Component} from "react";
|
|
15
|
-
import {Trans
|
|
15
|
+
import {Trans} from "react-i18next";
|
|
16
16
|
|
|
17
17
|
class CheckAccountRecoveryEmail extends Component {
|
|
18
18
|
/**
|
|
@@ -33,4 +33,4 @@ class CheckAccountRecoveryEmail extends Component {
|
|
|
33
33
|
}
|
|
34
34
|
}
|
|
35
35
|
|
|
36
|
-
export default
|
|
36
|
+
export default CheckAccountRecoveryEmail;
|
|
@@ -17,7 +17,7 @@ import {MemoryRouter, Route} from "react-router-dom";
|
|
|
17
17
|
import CheckAccountRecoveryEmail from "./CheckAccountRecoveryEmail";
|
|
18
18
|
|
|
19
19
|
export default {
|
|
20
|
-
title: 'Passbolt/Authentication/CheckAccountRecoveryEmail',
|
|
20
|
+
title: 'Passbolt Component/Authentication/CheckAccountRecoveryEmail',
|
|
21
21
|
component: CheckAccountRecoveryEmail
|
|
22
22
|
};
|
|
23
23
|
|
|
@@ -12,18 +12,9 @@
|
|
|
12
12
|
* @since 3.0.0
|
|
13
13
|
*/
|
|
14
14
|
import React, {Component} from "react";
|
|
15
|
-
import {Trans
|
|
16
|
-
import PropTypes from "prop-types";
|
|
15
|
+
import {Trans} from "react-i18next";
|
|
17
16
|
|
|
18
17
|
class CheckMailBox extends Component {
|
|
19
|
-
/**
|
|
20
|
-
* Get the translate function
|
|
21
|
-
* @returns {function(...[*]=)}
|
|
22
|
-
*/
|
|
23
|
-
get translate() {
|
|
24
|
-
return this.props.t;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
18
|
/**
|
|
28
19
|
* Render the component
|
|
29
20
|
* @returns {JSX}
|
|
@@ -42,7 +33,6 @@ class CheckMailBox extends Component {
|
|
|
42
33
|
}
|
|
43
34
|
|
|
44
35
|
CheckMailBox.propTypes = {
|
|
45
|
-
t: PropTypes.func, // The translation function
|
|
46
36
|
};
|
|
47
37
|
|
|
48
|
-
export default
|
|
38
|
+
export default CheckMailBox;
|
package/src/react-extension/components/Authentication/CheckMailBox/CheckMailbox.test.stories.js
CHANGED
|
@@ -17,7 +17,7 @@ import {MemoryRouter, Route} from "react-router-dom";
|
|
|
17
17
|
import CheckMailBox from "./CheckMailBox";
|
|
18
18
|
|
|
19
19
|
export default {
|
|
20
|
-
title: 'Passbolt/Authentication/CheckMailBox',
|
|
20
|
+
title: 'Passbolt Component/Authentication/CheckMailBox',
|
|
21
21
|
component: CheckMailBox
|
|
22
22
|
};
|
|
23
23
|
|
|
@@ -13,8 +13,14 @@
|
|
|
13
13
|
*/
|
|
14
14
|
import React, {Component} from "react";
|
|
15
15
|
import PropTypes from "prop-types";
|
|
16
|
-
import
|
|
16
|
+
import debounce from "debounce-promise";
|
|
17
|
+
import {Trans} from "react-i18next";
|
|
17
18
|
import Password from "../../../../shared/components/Password/Password";
|
|
19
|
+
import PasswordComplexity from "../../../../shared/components/PasswordComplexity/PasswordComplexity";
|
|
20
|
+
import SecretComplexity from "../../../../shared/lib/Secret/SecretComplexity";
|
|
21
|
+
import {SecretGenerator} from "../../../../shared/lib/SecretGenerator/SecretGenerator";
|
|
22
|
+
import ExternalServiceError from "../../../../shared/lib/Error/ExternalServiceError";
|
|
23
|
+
import ExternalServiceUnavailableError from "../../../../shared/lib/Error/ExternalServiceUnavailableError";
|
|
18
24
|
|
|
19
25
|
/**
|
|
20
26
|
* The component display variations.
|
|
@@ -36,6 +42,8 @@ class CheckPassphrase extends Component {
|
|
|
36
42
|
constructor(props) {
|
|
37
43
|
super(props);
|
|
38
44
|
this.state = this.defaultState;
|
|
45
|
+
this.isPwndProcessingPromise = null;
|
|
46
|
+
this.evaluatePassphraseIsInDictionaryDebounce = debounce(this.evaluatePassphraseIsInDictionary, 300);
|
|
39
47
|
this.bindEventHandlers();
|
|
40
48
|
this.createReferences();
|
|
41
49
|
}
|
|
@@ -55,7 +63,9 @@ class CheckPassphrase extends Component {
|
|
|
55
63
|
errors: {
|
|
56
64
|
emptyPassphrase: false, // True if the passphrase is empty
|
|
57
65
|
invalidPassphrase: false, // True if the passphrase is invalid
|
|
58
|
-
}
|
|
66
|
+
},
|
|
67
|
+
passphraseInDictionnary: false, // True if the passphrase is part of a data breach
|
|
68
|
+
isPwnedServiceAvailable: true // True if the isPwned service can be reached
|
|
59
69
|
};
|
|
60
70
|
}
|
|
61
71
|
|
|
@@ -116,31 +126,74 @@ class CheckPassphrase extends Component {
|
|
|
116
126
|
*/
|
|
117
127
|
async handleSubmit(event) {
|
|
118
128
|
event.preventDefault();
|
|
119
|
-
|
|
129
|
+
this.validate();
|
|
120
130
|
|
|
121
131
|
if (this.isValid) {
|
|
122
|
-
|
|
132
|
+
this.toggleProcessing();
|
|
123
133
|
await this.check();
|
|
124
134
|
}
|
|
125
135
|
}
|
|
126
136
|
|
|
137
|
+
/**
|
|
138
|
+
* Evaluate if the passphrase is in dictionary
|
|
139
|
+
* @return {Promise<void>}
|
|
140
|
+
*/
|
|
141
|
+
async evaluatePassphraseIsInDictionary() {
|
|
142
|
+
let isPwnedServiceAvailable = this.state.isPwnedServiceAvailable;
|
|
143
|
+
if (!isPwnedServiceAvailable) {
|
|
144
|
+
return;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
const passphrase = this.state.passphrase;
|
|
148
|
+
let passphraseInDictionnary = false;
|
|
149
|
+
let passphraseEntropy = this.state.passphraseEntropy;
|
|
150
|
+
|
|
151
|
+
try {
|
|
152
|
+
passphraseInDictionnary = await SecretComplexity.ispwned(passphrase);
|
|
153
|
+
if (passphraseInDictionnary) {
|
|
154
|
+
passphraseEntropy = 0;
|
|
155
|
+
}
|
|
156
|
+
} catch (error) {
|
|
157
|
+
// If the service is unavailable don't block the user journey.
|
|
158
|
+
if (error instanceof ExternalServiceUnavailableError || error instanceof ExternalServiceError) {
|
|
159
|
+
isPwnedServiceAvailable = false;
|
|
160
|
+
passphraseInDictionnary = false;
|
|
161
|
+
} else {
|
|
162
|
+
throw error;
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
this.setState({
|
|
167
|
+
isPwnedServiceAvailable,
|
|
168
|
+
passphraseEntropy,
|
|
169
|
+
passphraseInDictionnary,
|
|
170
|
+
});
|
|
171
|
+
}
|
|
172
|
+
|
|
127
173
|
/**
|
|
128
174
|
* Whenever the user changes the private key
|
|
129
175
|
* @param event An input event
|
|
130
176
|
*/
|
|
131
|
-
|
|
177
|
+
handleChangePassphrase(event) {
|
|
132
178
|
const passphrase = event.target.value;
|
|
133
|
-
|
|
179
|
+
let passphraseEntropy = null;
|
|
180
|
+
if (passphrase.length) {
|
|
181
|
+
passphraseEntropy = SecretGenerator.entropy(passphrase);
|
|
182
|
+
this.isPwndProcessingPromise = this.evaluatePassphraseIsInDictionaryDebounce();
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
this.setState({passphrase, passphraseEntropy});
|
|
186
|
+
|
|
134
187
|
if (this.state.hasBeenValidated) {
|
|
135
|
-
|
|
188
|
+
this.validate();
|
|
136
189
|
}
|
|
137
190
|
}
|
|
138
191
|
|
|
139
192
|
/**
|
|
140
193
|
* Whenever the user toggles the remember me flag
|
|
141
194
|
*/
|
|
142
|
-
|
|
143
|
-
|
|
195
|
+
handleToggleRememberMe() {
|
|
196
|
+
this.toggleRemmemberMe();
|
|
144
197
|
}
|
|
145
198
|
|
|
146
199
|
/**
|
|
@@ -160,45 +213,36 @@ class CheckPassphrase extends Component {
|
|
|
160
213
|
// Whenever the passphrase is invalid.
|
|
161
214
|
this.toggleProcessing();
|
|
162
215
|
if (error.name === "InvalidMasterPasswordError") {
|
|
163
|
-
this.setState({errors: {invalidPassphrase: true}});
|
|
216
|
+
this.setState({errors: {...this.state.errors, invalidPassphrase: true}});
|
|
164
217
|
} else {
|
|
165
218
|
throw error;
|
|
166
219
|
}
|
|
167
220
|
}
|
|
168
221
|
|
|
169
|
-
/**
|
|
170
|
-
* Fill the passphrase
|
|
171
|
-
* @param passphrase A passphrase
|
|
172
|
-
*/
|
|
173
|
-
async fillPassphrase(passphrase) {
|
|
174
|
-
await this.setState({passphrase});
|
|
175
|
-
}
|
|
176
|
-
|
|
177
222
|
/**
|
|
178
223
|
* Toggle the remember me flag value
|
|
179
224
|
*/
|
|
180
|
-
|
|
181
|
-
|
|
225
|
+
toggleRemmemberMe() {
|
|
226
|
+
this.setState({rememberMe: !this.state.rememberMe});
|
|
182
227
|
}
|
|
183
228
|
|
|
184
229
|
/**
|
|
185
230
|
* Validate the security token data
|
|
186
231
|
*/
|
|
187
|
-
|
|
232
|
+
validate() {
|
|
188
233
|
const {passphrase} = this.state;
|
|
189
|
-
const
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
}
|
|
194
|
-
await this.setState({hasBeenValidated: true, errors: {}});
|
|
234
|
+
const errors = {
|
|
235
|
+
emptyPassphrase: passphrase.trim() === '',
|
|
236
|
+
invalidPassphrase: false,
|
|
237
|
+
};
|
|
238
|
+
this.setState({hasBeenValidated: true, errors});
|
|
195
239
|
}
|
|
196
240
|
|
|
197
241
|
/**
|
|
198
242
|
* Toggle the processing mode
|
|
199
243
|
*/
|
|
200
|
-
|
|
201
|
-
|
|
244
|
+
toggleProcessing() {
|
|
245
|
+
this.setState({actions: {processing: !this.state.actions.processing}});
|
|
202
246
|
}
|
|
203
247
|
|
|
204
248
|
/**
|
|
@@ -208,25 +252,18 @@ class CheckPassphrase extends Component {
|
|
|
208
252
|
this.passphraseInputRef.current.focus();
|
|
209
253
|
}
|
|
210
254
|
|
|
211
|
-
/**
|
|
212
|
-
* Get the translate function
|
|
213
|
-
* @returns {function(...[*]=)}
|
|
214
|
-
*/
|
|
215
|
-
get translate() {
|
|
216
|
-
return this.props.t;
|
|
217
|
-
}
|
|
218
|
-
|
|
219
255
|
/**
|
|
220
256
|
* Render the component
|
|
221
257
|
*/
|
|
222
258
|
render() {
|
|
223
259
|
const processingClassName = this.isProcessing ? 'processing' : '';
|
|
260
|
+
const entropy = this.state.passphrase?.length ? this.state.passphraseEntropy : null;
|
|
224
261
|
return (
|
|
225
262
|
<div className="check-passphrase">
|
|
226
263
|
<h1><Trans>Please enter your passphrase to continue.</Trans></h1>
|
|
227
264
|
<form acceptCharset="utf-8" onSubmit={this.handleSubmit} className="enter-passphrase">
|
|
228
265
|
<div className="form-content">
|
|
229
|
-
<div className={`input-password-wrapper input required ${this.hasErrors ? "error" : ""}`}>
|
|
266
|
+
<div className={`input-password-wrapper input required ${this.hasErrors ? "error" : ""} ${!this.areActionsAllowed ? 'disabled' : ''}`}>
|
|
230
267
|
<label htmlFor="passphrase"><Trans>Passphrase</Trans></label>
|
|
231
268
|
<Password
|
|
232
269
|
id="passphrase"
|
|
@@ -237,16 +274,27 @@ class CheckPassphrase extends Component {
|
|
|
237
274
|
preview={true}
|
|
238
275
|
onChange={this.handleChangePassphrase}
|
|
239
276
|
disabled={!this.areActionsAllowed}/>
|
|
277
|
+
<PasswordComplexity entropy={entropy}/>
|
|
240
278
|
{this.state.hasBeenValidated &&
|
|
241
279
|
<>
|
|
242
280
|
{this.state.errors.emptyPassphrase &&
|
|
243
281
|
<div className="empty-passphrase error-message"><Trans>The passphrase should not be empty.</Trans></div>
|
|
244
282
|
}
|
|
245
283
|
{this.state.errors.invalidPassphrase &&
|
|
246
|
-
|
|
284
|
+
<div className="invalid-passphrase error-message"><Trans>The passphrase is invalid.</Trans></div>
|
|
247
285
|
}
|
|
248
286
|
</>
|
|
249
287
|
}
|
|
288
|
+
{this.state.passphrase?.length > 0 &&
|
|
289
|
+
<>
|
|
290
|
+
{!this.state.isPwnedServiceAvailable &&
|
|
291
|
+
<div className="invalid-passphrase warning-message"><Trans>The pwnedpasswords service is unavailable, your passphrase might be part of an exposed data breach</Trans></div>
|
|
292
|
+
}
|
|
293
|
+
{this.state.passphraseInDictionnary &&
|
|
294
|
+
<div className="invalid-passphrase warning-message"><Trans>The passphrase is part of an exposed data breach.</Trans></div>
|
|
295
|
+
}
|
|
296
|
+
</>
|
|
297
|
+
}
|
|
250
298
|
</div>
|
|
251
299
|
{this.props.canRememberMe &&
|
|
252
300
|
<div className="input checkbox">
|
|
@@ -298,6 +346,5 @@ CheckPassphrase.propTypes = {
|
|
|
298
346
|
]), // Defines how the form should be displayed and behaves
|
|
299
347
|
canRememberMe: PropTypes.bool, // True if the remember me flag must be displayed
|
|
300
348
|
onSecondaryActionClick: PropTypes.func, // Callback to trigger when the user clicks on the secondary action link.
|
|
301
|
-
t: PropTypes.func, // The translation function
|
|
302
349
|
};
|
|
303
|
-
export default
|
|
350
|
+
export default CheckPassphrase;
|
|
@@ -18,7 +18,7 @@ import CheckPassphrase, {CheckPassphraseVariations} from "./CheckPassphrase";
|
|
|
18
18
|
import {defaultProps} from "./CheckPassphrase.test.data";
|
|
19
19
|
|
|
20
20
|
export default {
|
|
21
|
-
title: 'Passbolt/Authentication/CheckPassphrase',
|
|
21
|
+
title: 'Passbolt Component/Authentication/CheckPassphrase',
|
|
22
22
|
component: CheckPassphrase
|
|
23
23
|
};
|
|
24
24
|
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
|
|
15
15
|
import React, {Component} from "react";
|
|
16
16
|
import PropTypes from "prop-types";
|
|
17
|
-
import {Trans
|
|
17
|
+
import {Trans} from "react-i18next";
|
|
18
18
|
|
|
19
19
|
class ChooseAccountRecoveryPreference extends Component {
|
|
20
20
|
/**
|
|
@@ -188,4 +188,4 @@ ChooseAccountRecoveryPreference.propTypes = {
|
|
|
188
188
|
canGenerateNewKeyInstead: PropTypes.bool, // Can generate new key
|
|
189
189
|
onGenerateNewKeyInstead: PropTypes.func, // Callback to trigger when the user wants to generate a new key instead.
|
|
190
190
|
};
|
|
191
|
-
export default
|
|
191
|
+
export default ChooseAccountRecoveryPreference;
|