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
|
@@ -24,7 +24,7 @@ import {
|
|
|
24
24
|
|
|
25
25
|
|
|
26
26
|
export default {
|
|
27
|
-
title: 'Passbolt/Authentication/ChooseAccountRecoveryPreference',
|
|
27
|
+
title: 'Passbolt Component/Authentication/ChooseAccountRecoveryPreference',
|
|
28
28
|
component: ChooseAccountRecoveryPreference
|
|
29
29
|
};
|
|
30
30
|
|
|
@@ -41,20 +41,30 @@ const Template = args =>
|
|
|
41
41
|
</div>
|
|
42
42
|
</MockTranslationProvider>;
|
|
43
43
|
|
|
44
|
+
const defaultParameters = {
|
|
45
|
+
css: "ext_authentication"
|
|
46
|
+
};
|
|
47
|
+
|
|
44
48
|
export const MandatoryWithLink = Template.bind({});
|
|
45
49
|
MandatoryWithLink.args = mandatoryPolicyPropsWithImportedKey();
|
|
50
|
+
MandatoryWithLink.parameters = defaultParameters;
|
|
46
51
|
|
|
47
52
|
export const OptOutWithLink = Template.bind({});
|
|
48
53
|
OptOutWithLink.args = optOutPolicyPropsWithImportedKey();
|
|
54
|
+
OptOutWithLink.parameters = defaultParameters;
|
|
49
55
|
|
|
50
56
|
export const OptInWithLink = Template.bind({});
|
|
51
57
|
OptInWithLink.args = optInPolicyPropsWithImportedKey();
|
|
58
|
+
OptInWithLink.parameters = defaultParameters;
|
|
52
59
|
|
|
53
60
|
export const Mandatory = Template.bind({});
|
|
54
61
|
Mandatory.args = mandatoryPolicyProps();
|
|
62
|
+
Mandatory.parameters = defaultParameters;
|
|
55
63
|
|
|
56
64
|
export const OptOut = Template.bind({});
|
|
57
65
|
OptOut.args = optOutPolicyProps();
|
|
66
|
+
OptOut.parameters = defaultParameters;
|
|
58
67
|
|
|
59
68
|
export const OptIn = Template.bind({});
|
|
60
69
|
OptIn.args = optInPolicyProps();
|
|
70
|
+
OptIn.parameters = defaultParameters;
|
package/src/react-extension/components/Authentication/ChooseSecurityToken/ChooseSecurityToken.js
CHANGED
|
@@ -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 {CirclePicker} from "react-color";
|
|
18
18
|
import SecretComplexity from "../../../../shared/lib/Secret/SecretComplexity";
|
|
19
19
|
|
|
@@ -349,4 +349,4 @@ ChooseSecurityToken.propTypes = {
|
|
|
349
349
|
onComplete: PropTypes.func.isRequired, // The callback function to call when the form is submitted
|
|
350
350
|
};
|
|
351
351
|
|
|
352
|
-
export default
|
|
352
|
+
export default ChooseSecurityToken;
|
|
@@ -16,7 +16,7 @@ import {MemoryRouter, Route} from "react-router-dom";
|
|
|
16
16
|
import ChooseSecurityToken from "./ChooseSecurityToken";
|
|
17
17
|
|
|
18
18
|
export default {
|
|
19
|
-
title: 'Passbolt/Authentication/ChooseSecurityToken',
|
|
19
|
+
title: 'Passbolt Component/Authentication/ChooseSecurityToken',
|
|
20
20
|
component: ChooseSecurityToken
|
|
21
21
|
};
|
|
22
22
|
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
import React, {Component} from "react";
|
|
15
15
|
import PropTypes from "prop-types";
|
|
16
16
|
import debounce from "debounce-promise";
|
|
17
|
-
import {Trans
|
|
17
|
+
import {Trans} from "react-i18next";
|
|
18
18
|
import SecurityComplexity from "../../../../shared/lib/Secret/SecretComplexity";
|
|
19
19
|
import SecretComplexity from "../../../../shared/lib/Secret/SecretComplexity";
|
|
20
20
|
import Password from "../../../../shared/components/Password/Password";
|
|
@@ -44,6 +44,7 @@ class CreateGpgKey extends Component {
|
|
|
44
44
|
constructor(props) {
|
|
45
45
|
super(props);
|
|
46
46
|
this.state = this.defaultState;
|
|
47
|
+
this.isPwndProcessingPromise = null;
|
|
47
48
|
this.evaluatePassphraseIsInDictionaryDebounce = debounce(this.evaluatePassphraseIsInDictionary, 300);
|
|
48
49
|
this.bindEventHandlers();
|
|
49
50
|
this.createReferences();
|
|
@@ -57,7 +58,7 @@ class CreateGpgKey extends Component {
|
|
|
57
58
|
passphrase: '', // The current passphrase
|
|
58
59
|
passphraseEntropy: null, // The current passphrase entropy
|
|
59
60
|
actions: {
|
|
60
|
-
processing: false // True if one's processing passphrase
|
|
61
|
+
processing: false, // True if one's processing passphrase
|
|
61
62
|
},
|
|
62
63
|
hintClassNames: { // The class names for passphrase hints
|
|
63
64
|
enoughLength: '',
|
|
@@ -108,7 +109,6 @@ class CreateGpgKey extends Component {
|
|
|
108
109
|
*/
|
|
109
110
|
bindEventHandlers() {
|
|
110
111
|
this.handlePassphraseChange = this.handlePassphraseChange.bind(this);
|
|
111
|
-
this.handleImportGpgKey = this.handleImportGpgKey.bind(this);
|
|
112
112
|
this.handleSubmit = this.handleSubmit.bind(this);
|
|
113
113
|
}
|
|
114
114
|
|
|
@@ -145,19 +145,12 @@ class CreateGpgKey extends Component {
|
|
|
145
145
|
if (passphrase.length) {
|
|
146
146
|
passphraseEntropy = SecretGenerator.entropy(passphrase);
|
|
147
147
|
hintClassNames = this.evaluatePassphraseHintClassNames(passphrase);
|
|
148
|
-
this.evaluatePassphraseIsInDictionaryDebounce();
|
|
148
|
+
this.isPwndProcessingPromise = this.evaluatePassphraseIsInDictionaryDebounce();
|
|
149
149
|
}
|
|
150
150
|
|
|
151
151
|
this.setState({passphrase, passphraseEntropy, hintClassNames});
|
|
152
152
|
}
|
|
153
153
|
|
|
154
|
-
/**
|
|
155
|
-
* Whenever the user wants to import his gpg key manually
|
|
156
|
-
*/
|
|
157
|
-
handleImportGpgKey() {
|
|
158
|
-
this.importGpgKey();
|
|
159
|
-
}
|
|
160
|
-
|
|
161
154
|
/**
|
|
162
155
|
* Whenever the user submits the passphrase
|
|
163
156
|
* @param event A form submit event
|
|
@@ -223,11 +216,25 @@ class CreateGpgKey extends Component {
|
|
|
223
216
|
});
|
|
224
217
|
}
|
|
225
218
|
|
|
219
|
+
/**
|
|
220
|
+
* Await for isPwned service to finish its process and returns true if the current displayed passphrase is pwned.
|
|
221
|
+
* @return {Promise<boolean>}
|
|
222
|
+
*/
|
|
223
|
+
async isCurrentPassphrasePwned() {
|
|
224
|
+
await this.isPwndProcessingPromise;
|
|
225
|
+
return this.state.hintClassNames.notInDictionary === "error";
|
|
226
|
+
}
|
|
227
|
+
|
|
226
228
|
/**
|
|
227
229
|
* Generate the Gpg key
|
|
228
230
|
*/
|
|
229
231
|
async generateGpgKey() {
|
|
230
232
|
await this.toggleProcessing();
|
|
233
|
+
const isPwned = await this.isCurrentPassphrasePwned();
|
|
234
|
+
if (isPwned) {
|
|
235
|
+
await this.toggleProcessing();
|
|
236
|
+
return;
|
|
237
|
+
}
|
|
231
238
|
this.props.onComplete(this.state.passphrase);
|
|
232
239
|
}
|
|
233
240
|
|
|
@@ -235,7 +242,11 @@ class CreateGpgKey extends Component {
|
|
|
235
242
|
* Toggle the processing mode
|
|
236
243
|
*/
|
|
237
244
|
async toggleProcessing() {
|
|
238
|
-
|
|
245
|
+
const actions = {
|
|
246
|
+
...this.state.actions,
|
|
247
|
+
processing: !this.state.actions.processing
|
|
248
|
+
};
|
|
249
|
+
await this.setState({actions});
|
|
239
250
|
}
|
|
240
251
|
|
|
241
252
|
/**
|
|
@@ -331,7 +342,6 @@ CreateGpgKey.propTypes = {
|
|
|
331
342
|
CreateGpgKeyVariation.GENERATE_ACCOUNT_RECOVERY_GPG_KEY
|
|
332
343
|
]), // Defines how the form should be displayed and behaves
|
|
333
344
|
onSecondaryActionClick: PropTypes.func, // Callback to trigger when the user clicks on the secondary action link.
|
|
334
|
-
t: PropTypes.func.isRequired, // The translation function
|
|
335
345
|
};
|
|
336
346
|
|
|
337
|
-
export default
|
|
347
|
+
export default CreateGpgKey;
|
|
@@ -161,7 +161,7 @@ describe("CreateGpgKey", () => {
|
|
|
161
161
|
};
|
|
162
162
|
await waitFor(() => expect(page.canGoToNextStep).toBeTruthy());
|
|
163
163
|
await page.generateKey(inProgressFn);
|
|
164
|
-
expect(onComplete).toHaveBeenCalled();
|
|
164
|
+
await waitFor(() => expect(onComplete).toHaveBeenCalled());
|
|
165
165
|
expect(generateResolve).toBeDefined();
|
|
166
166
|
});
|
|
167
167
|
|
|
@@ -179,7 +179,7 @@ describe("CreateGpgKey", () => {
|
|
|
179
179
|
await page.fill(veryStrongPassphrase);
|
|
180
180
|
await waitFor(() => expect(page.canGoToNextStep).toBeTruthy());
|
|
181
181
|
await page.generateKey(inProgressFn);
|
|
182
|
-
expect(onComplete).toHaveBeenCalled();
|
|
182
|
+
await waitFor(() => expect(onComplete).toHaveBeenCalled());
|
|
183
183
|
expect(generateResolve).toBeDefined();
|
|
184
184
|
});
|
|
185
185
|
});
|
package/src/react-extension/components/Authentication/CreateGpgKey/CreateGpgKey.test.stories.js
CHANGED
|
@@ -17,7 +17,7 @@ import CreateGpgKey, {CreateGpgKeyVariation} from "./CreateGpgKey";
|
|
|
17
17
|
import {defaultProps} from "./CreateGpgKey.test.data";
|
|
18
18
|
|
|
19
19
|
export default {
|
|
20
|
-
title: 'Passbolt/Authentication/CreateGpgKey',
|
|
20
|
+
title: 'Passbolt Component/Authentication/CreateGpgKey',
|
|
21
21
|
component: CreateGpgKey
|
|
22
22
|
};
|
|
23
23
|
|
|
@@ -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
|
|
|
18
18
|
/**
|
|
19
19
|
* The component display variations.
|
|
@@ -57,4 +57,4 @@ DisplayAlreadyLoggedInError.propTypes = {
|
|
|
57
57
|
]).isRequired, // Defines how the disalog should be displayed
|
|
58
58
|
onLogoutButtonClick: PropTypes.func.isRequired, // The callback function that should trigger a log out of the current user
|
|
59
59
|
};
|
|
60
|
-
export default
|
|
60
|
+
export default DisplayAlreadyLoggedInError;
|
|
@@ -17,7 +17,7 @@ import {MemoryRouter, Route} from "react-router-dom";
|
|
|
17
17
|
import DisplayAlreadyLoggedInError, {DisplayAlreadyLoggedInErrorVariations} from "./DisplayAlreadyLoggedInError";
|
|
18
18
|
|
|
19
19
|
export default {
|
|
20
|
-
title: 'Passbolt/Authentication/DisplayAlreadyLoggedInError',
|
|
20
|
+
title: 'Passbolt Component/Authentication/DisplayAlreadyLoggedInError',
|
|
21
21
|
component: DisplayAlreadyLoggedInError
|
|
22
22
|
};
|
|
23
23
|
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
import React, {Component} from "react";
|
|
15
15
|
import PropTypes from "prop-types";
|
|
16
16
|
import {withAppContext} from "../../../contexts/AppContext";
|
|
17
|
-
import {Trans
|
|
17
|
+
import {Trans} from "react-i18next";
|
|
18
18
|
|
|
19
19
|
const DOWNLOAD_FIREFOX_URL = "https://www.mozilla.org/firefox/download/thanks/";
|
|
20
20
|
const DOWNLOAD_CHROME_URL = "https://www.google.com/chrome/";
|
|
@@ -60,4 +60,4 @@ class DisplayBrowserNotSupported extends Component {
|
|
|
60
60
|
DisplayBrowserNotSupported.propTypes = {
|
|
61
61
|
context: PropTypes.any, // The application context
|
|
62
62
|
};
|
|
63
|
-
export default withAppContext(
|
|
63
|
+
export default withAppContext(DisplayBrowserNotSupported);
|
|
@@ -17,7 +17,7 @@ import {MemoryRouter, Route} from "react-router-dom";
|
|
|
17
17
|
import DisplayBrowserNotSupported from "./DisplayBrowserNotSupported";
|
|
18
18
|
|
|
19
19
|
export default {
|
|
20
|
-
title: 'Passbolt/Authentication/DisplayBrowserNotSupported',
|
|
20
|
+
title: 'Passbolt Component/Authentication/DisplayBrowserNotSupported',
|
|
21
21
|
component: DisplayBrowserNotSupported
|
|
22
22
|
};
|
|
23
23
|
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
import React, {Component} from "react";
|
|
15
15
|
import {withAppContext} from "../../../contexts/AppContext";
|
|
16
16
|
import PropTypes from "prop-types";
|
|
17
|
-
import {Trans
|
|
17
|
+
import {Trans} from "react-i18next";
|
|
18
18
|
|
|
19
19
|
class DisplayExpiredTokenError extends Component {
|
|
20
20
|
/**
|
|
@@ -42,4 +42,4 @@ class DisplayExpiredTokenError extends Component {
|
|
|
42
42
|
DisplayExpiredTokenError.propTypes = {
|
|
43
43
|
context: PropTypes.any, // The application context
|
|
44
44
|
};
|
|
45
|
-
export default withAppContext(
|
|
45
|
+
export default withAppContext(DisplayExpiredTokenError);
|
|
@@ -18,7 +18,7 @@ import DisplayExpiredTokenError from "./DisplayExpiredTokenError";
|
|
|
18
18
|
import {defaultProps} from "./DisplayExpiredTokenError.test.data";
|
|
19
19
|
|
|
20
20
|
export default {
|
|
21
|
-
title: 'Passbolt/Authentication/DisplayExpiredTokenError',
|
|
21
|
+
title: 'Passbolt Component/Authentication/DisplayExpiredTokenError',
|
|
22
22
|
component: DisplayExpiredTokenError
|
|
23
23
|
};
|
|
24
24
|
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
import React, {Component} from "react";
|
|
15
15
|
import {withAppContext} from "../../../contexts/AppContext";
|
|
16
16
|
import PropTypes from "prop-types";
|
|
17
|
-
import {Trans
|
|
17
|
+
import {Trans} from "react-i18next";
|
|
18
18
|
|
|
19
19
|
class DisplayRequireInvitationError extends Component {
|
|
20
20
|
/**
|
|
@@ -42,4 +42,4 @@ class DisplayRequireInvitationError extends Component {
|
|
|
42
42
|
DisplayRequireInvitationError.propTypes = {
|
|
43
43
|
context: PropTypes.any, // The application context
|
|
44
44
|
};
|
|
45
|
-
export default withAppContext(
|
|
45
|
+
export default withAppContext(DisplayRequireInvitationError);
|
|
@@ -17,7 +17,7 @@ import {MemoryRouter, Route} from "react-router-dom";
|
|
|
17
17
|
import DisplayRequireInvitationError from "./DisplayRequireInvitationError";
|
|
18
18
|
|
|
19
19
|
export default {
|
|
20
|
-
title: 'Passbolt/Authentication/DisplayRequireInvitationError',
|
|
20
|
+
title: 'Passbolt Component/Authentication/DisplayRequireInvitationError',
|
|
21
21
|
component: DisplayRequireInvitationError
|
|
22
22
|
};
|
|
23
23
|
|
|
@@ -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 Icon from "../../../../shared/components/Icons/Icon";
|
|
18
18
|
|
|
19
19
|
class DisplayUnexpectedError extends Component {
|
|
@@ -119,7 +119,7 @@ class DisplayUnexpectedError extends Component {
|
|
|
119
119
|
}
|
|
120
120
|
|
|
121
121
|
DisplayUnexpectedError.defaultProps = {
|
|
122
|
-
title: <Trans>Something went wrong
|
|
122
|
+
title: <Trans>Something went wrong!</Trans>,
|
|
123
123
|
message: <Trans>The operation failed with the following error:</Trans>,
|
|
124
124
|
};
|
|
125
125
|
|
|
@@ -136,4 +136,4 @@ DisplayUnexpectedError.propTypes = {
|
|
|
136
136
|
]),
|
|
137
137
|
error: PropTypes.any, // The error to display
|
|
138
138
|
};
|
|
139
|
-
export default
|
|
139
|
+
export default DisplayUnexpectedError;
|
package/src/react-extension/components/Authentication/DownloadRecoveryKit/DownloadRecoveryKit.js
CHANGED
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
* @since 3.0.0
|
|
13
13
|
*/
|
|
14
14
|
import React, {Component} from "react";
|
|
15
|
-
import {Trans
|
|
15
|
+
import {Trans} from "react-i18next";
|
|
16
16
|
import PropTypes from "prop-types";
|
|
17
17
|
|
|
18
18
|
class DownloadRecoveryKit extends Component {
|
|
@@ -75,4 +75,4 @@ DownloadRecoveryKit.propTypes = {
|
|
|
75
75
|
onComplete: PropTypes.func.isRequired, // Callback to trigger when the step is completed.
|
|
76
76
|
};
|
|
77
77
|
|
|
78
|
-
export default
|
|
78
|
+
export default DownloadRecoveryKit;
|
|
@@ -18,7 +18,7 @@ import DownloadRecoveryKit from "./DownloadRecoveryKit";
|
|
|
18
18
|
import {defaultProps} from "./DownloadRecoveryKit.test.data";
|
|
19
19
|
|
|
20
20
|
export default {
|
|
21
|
-
title: 'Passbolt/Authentication/DownloadRecoveryKit',
|
|
21
|
+
title: 'Passbolt Component/Authentication/DownloadRecoveryKit',
|
|
22
22
|
component: DownloadRecoveryKit
|
|
23
23
|
};
|
|
24
24
|
|
|
@@ -225,20 +225,20 @@ class EnterNameForm extends Component {
|
|
|
225
225
|
<div className="enter-name">
|
|
226
226
|
<h1><Trans>New here? Enter your name to get started.</Trans></h1>
|
|
227
227
|
<form acceptCharset="utf-8" onSubmit={this.handleFormSubmit} noValidate>
|
|
228
|
-
<div className={`input text required ${this.state.firstnameError ? "error" : ""}`}>
|
|
229
|
-
<label htmlFor="firstname"><Trans>First
|
|
228
|
+
<div className={`input text required ${this.state.firstnameError ? "error" : ""} ${this.hasAllInputDisabled() ? 'disabled' : ''}`}>
|
|
229
|
+
<label htmlFor="firstname"><Trans>First name</Trans></label>
|
|
230
230
|
<input id="firstname-input" type="text" name="firstname" ref={this.firstnameRef} value={this.state.firstname}
|
|
231
231
|
onKeyUp={this.handleFirstnameInputOnKeyUp} onChange={this.handleInputChange}
|
|
232
|
-
disabled={this.hasAllInputDisabled()} placeholder={this.translate("
|
|
232
|
+
disabled={this.hasAllInputDisabled()} placeholder={this.translate("First name")} required="required"/>
|
|
233
233
|
{this.state.firstnameError &&
|
|
234
234
|
<div className="error-message">{this.state.firstnameError}</div>
|
|
235
235
|
}
|
|
236
236
|
</div>
|
|
237
|
-
<div className={`input text required ${this.state.lastnameError ? "error" : ""}`}>
|
|
238
|
-
<label htmlFor="lastname"><Trans>Last
|
|
237
|
+
<div className={`input text required ${this.state.lastnameError ? "error" : ""} ${this.hasAllInputDisabled() ? 'disabled' : ''}`}>
|
|
238
|
+
<label htmlFor="lastname"><Trans>Last name</Trans></label>
|
|
239
239
|
<input id="lastname-input" type="text" name="lastname" ref={this.lastnameRef} value={this.state.lastname}
|
|
240
240
|
onKeyUp={this.handleLastnameInputOnKeyUp} onChange={this.handleInputChange}
|
|
241
|
-
disabled={this.hasAllInputDisabled()} placeholder={this.translate("
|
|
241
|
+
disabled={this.hasAllInputDisabled()} placeholder={this.translate("Last name")} required="required"/>
|
|
242
242
|
{this.state.lastnameError &&
|
|
243
243
|
<div className="error-message">{this.state.lastnameError}</div>
|
|
244
244
|
}
|
package/src/react-extension/components/Authentication/EnterNameForm/EnterNameForm.test.stories.js
CHANGED
|
@@ -17,7 +17,7 @@ import {MemoryRouter, Route} from "react-router-dom";
|
|
|
17
17
|
import EnterNameForm from "./EnterNameForm";
|
|
18
18
|
|
|
19
19
|
export default {
|
|
20
|
-
title: 'Passbolt/Authentication/EnterNameForm',
|
|
20
|
+
title: 'Passbolt Component/Authentication/EnterNameForm',
|
|
21
21
|
component: EnterNameForm
|
|
22
22
|
};
|
|
23
23
|
|
package/src/react-extension/components/Authentication/EnterUsernameForm/EnterUsernameForm.js
CHANGED
|
@@ -280,7 +280,7 @@ class EnterUsernameForm extends Component {
|
|
|
280
280
|
<div className="enter-username">
|
|
281
281
|
<h1><Trans>Please enter your email to continue.</Trans></h1>
|
|
282
282
|
<form acceptCharset="utf-8" onSubmit={this.handleFormSubmit} noValidate>
|
|
283
|
-
<div className={`input text required ${this.state.usernameError ? "error" : ""}`}>
|
|
283
|
+
<div className={`input text required ${this.state.usernameError ? "error" : ""} ${this.hasAllInputDisabled() ? 'disabled' : ''}`}>
|
|
284
284
|
<label htmlFor="username"><Trans>Email</Trans></label>
|
|
285
285
|
<input id="username-input" type="text" ref={this.usernameRef} name="username" value={this.state.username}
|
|
286
286
|
onKeyUp={this.handleUsernameInputOnKeyUp} onChange={this.handleInputChange} placeholder={this.translate("you@organization.com")}
|
|
@@ -17,7 +17,7 @@ import {MemoryRouter, Route} from "react-router-dom";
|
|
|
17
17
|
import EnterUsernameForm from "./EnterUsernameForm";
|
|
18
18
|
|
|
19
19
|
export default {
|
|
20
|
-
title: 'Passbolt/Authentication/EnterUsernameForm',
|
|
20
|
+
title: 'Passbolt Component/Authentication/EnterUsernameForm',
|
|
21
21
|
component: EnterUsernameForm
|
|
22
22
|
};
|
|
23
23
|
|
|
@@ -55,7 +55,8 @@ class ImportGpgKey extends Component {
|
|
|
55
55
|
emptyPrivateKey: false, // True if the private key is empty
|
|
56
56
|
invalidPrivateKey: false, // True if the private key is invalid
|
|
57
57
|
},
|
|
58
|
-
errorMessage: '' // The error
|
|
58
|
+
errorMessage: '', // The error message if isRequired
|
|
59
|
+
keyHasAnExpirationDate: false, // True if the key being imported has an expiration date
|
|
59
60
|
};
|
|
60
61
|
}
|
|
61
62
|
|
|
@@ -95,6 +96,7 @@ class ImportGpgKey extends Component {
|
|
|
95
96
|
this.handleChangePrivateKey = this.handleChangePrivateKey.bind(this);
|
|
96
97
|
this.handleSelectPrivateKeyFile = this.handleSelectPrivateKeyFile.bind(this);
|
|
97
98
|
this.handleSelectFile = this.handleSelectFile.bind(this);
|
|
99
|
+
this.checkExpiryDate = this.checkExpiryDate.bind(this);
|
|
98
100
|
}
|
|
99
101
|
|
|
100
102
|
/**
|
|
@@ -114,11 +116,26 @@ class ImportGpgKey extends Component {
|
|
|
114
116
|
await this.validate();
|
|
115
117
|
|
|
116
118
|
if (this.isValid) {
|
|
117
|
-
|
|
119
|
+
this.toggleProcessing();
|
|
118
120
|
await this.save();
|
|
119
121
|
}
|
|
120
122
|
}
|
|
121
123
|
|
|
124
|
+
/**
|
|
125
|
+
* Check the expiration date of the given private key.
|
|
126
|
+
* If the key has an expiry date, it shows a warning to the user.
|
|
127
|
+
* @param {string} privateKey
|
|
128
|
+
*/
|
|
129
|
+
async checkExpiryDate(privateKey) {
|
|
130
|
+
if (!this.props.hasKeyExpirationDate) {
|
|
131
|
+
return;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
// we do not display the warning message if the key can't be read.
|
|
135
|
+
const keyHasAnExpirationDate = await this.props.hasKeyExpirationDate(privateKey).catch(() => false);
|
|
136
|
+
this.setState({keyHasAnExpirationDate});
|
|
137
|
+
}
|
|
138
|
+
|
|
122
139
|
/**
|
|
123
140
|
* Whenever the user changes the private key
|
|
124
141
|
* @param event An input event
|
|
@@ -126,6 +143,8 @@ class ImportGpgKey extends Component {
|
|
|
126
143
|
async handleChangePrivateKey(event) {
|
|
127
144
|
const privateKey = event.target.value;
|
|
128
145
|
this.setState({privateKey});
|
|
146
|
+
await this.checkExpiryDate(privateKey);
|
|
147
|
+
|
|
129
148
|
if (this.state.hasBeenValidated) {
|
|
130
149
|
await this.validate();
|
|
131
150
|
}
|
|
@@ -152,6 +171,7 @@ class ImportGpgKey extends Component {
|
|
|
152
171
|
async handleSelectPrivateKeyFile(event) {
|
|
153
172
|
const [privateKeyFile] = event.target.files;
|
|
154
173
|
const privateKey = await this.readPrivateKeyFile(privateKeyFile);
|
|
174
|
+
await this.checkExpiryDate(privateKey);
|
|
155
175
|
this.setState({privateKey, selectedFile: privateKeyFile});
|
|
156
176
|
if (this.state.hasBeenValidated) {
|
|
157
177
|
await this.validate();
|
|
@@ -171,9 +191,9 @@ class ImportGpgKey extends Component {
|
|
|
171
191
|
* @param {Error} error The error
|
|
172
192
|
* @throw {Error} If an unexpected errors hits the component. Errors not of type: InvalidMasterPasswordError.
|
|
173
193
|
*/
|
|
174
|
-
|
|
194
|
+
onSaveFailure(error) {
|
|
175
195
|
// It can happen when some key validation went wrong.
|
|
176
|
-
|
|
196
|
+
this.toggleProcessing();
|
|
177
197
|
if (error.name === "GpgKeyError") {
|
|
178
198
|
this.setState({errors: {invalidPrivateKey: true}, errorMessage: error.message});
|
|
179
199
|
} else {
|
|
@@ -224,8 +244,8 @@ class ImportGpgKey extends Component {
|
|
|
224
244
|
/**
|
|
225
245
|
* Toggle the processing mode
|
|
226
246
|
*/
|
|
227
|
-
|
|
228
|
-
|
|
247
|
+
toggleProcessing() {
|
|
248
|
+
this.setState({actions: {processing: !this.state.actions.processing}});
|
|
229
249
|
}
|
|
230
250
|
|
|
231
251
|
/**
|
|
@@ -252,7 +272,7 @@ class ImportGpgKey extends Component {
|
|
|
252
272
|
<form
|
|
253
273
|
acceptCharset="utf-8"
|
|
254
274
|
onSubmit={this.handleSubmit}>
|
|
255
|
-
<div className={`input textarea required openpgp-key ${this.hasErrors ? "error" : ""}`}>
|
|
275
|
+
<div className={`input textarea required openpgp-key ${this.hasErrors ? "error" : ""} ${!this.areActionsAllowed ? 'disabled' : ''}`}>
|
|
256
276
|
<label htmlFor="private-key"><Trans>Private key</Trans></label>
|
|
257
277
|
<textarea
|
|
258
278
|
name="private-key"
|
|
@@ -275,6 +295,12 @@ class ImportGpgKey extends Component {
|
|
|
275
295
|
<span><Trans>Choose a file</Trans></span>
|
|
276
296
|
</button>
|
|
277
297
|
</div>
|
|
298
|
+
{this.state.keyHasAnExpirationDate &&
|
|
299
|
+
<div className="warning-message">
|
|
300
|
+
<Trans>The private key should not have an expiry date.</Trans>
|
|
301
|
+
<Trans>Once expired you will not be able to connect to your account.</Trans>
|
|
302
|
+
</div>
|
|
303
|
+
}
|
|
278
304
|
{this.state.hasBeenValidated &&
|
|
279
305
|
<>
|
|
280
306
|
{this.state.errors.emptyPrivateKey &&
|
|
@@ -323,5 +349,6 @@ ImportGpgKey.propTypes = {
|
|
|
323
349
|
onSecondaryActionClick: PropTypes.func, // Callback to trigger when the user clicks on the secondary action link.
|
|
324
350
|
t: PropTypes.func, // The translation function
|
|
325
351
|
validatePrivateGpgKey: PropTypes.func, // The callback to check the validity of the gpg key
|
|
352
|
+
hasKeyExpirationDate: PropTypes.func, // The callback to check if the key has an expiration date
|
|
326
353
|
};
|
|
327
354
|
export default withAppContext(withTranslation('common')(ImportGpgKey));
|
package/src/react-extension/components/Authentication/ImportGpgKey/ImportGpgKey.test.data.js
CHANGED
|
@@ -28,7 +28,8 @@ export function defaultProps(props) {
|
|
|
28
28
|
request: jest.fn(async() => ({}))
|
|
29
29
|
}
|
|
30
30
|
},
|
|
31
|
-
validatePrivateGpgKey: jest.fn()
|
|
31
|
+
validatePrivateGpgKey: jest.fn(),
|
|
32
|
+
shouldShowExpiryDateWarning: jest.fn(() => Promise.resolve(false))
|
|
32
33
|
};
|
|
33
34
|
return Object.assign(defaultProps, props || {});
|
|
34
35
|
}
|
|
@@ -125,7 +125,7 @@ describe("ImportGpgKey", () => {
|
|
|
125
125
|
validatePrivateGpgKey: jest.fn(() => { throw new Error("The private key should not be revoked."); })
|
|
126
126
|
});
|
|
127
127
|
props.context.port.request.mockImplementation(() => ({
|
|
128
|
-
expires: "
|
|
128
|
+
expires: "Infinity",
|
|
129
129
|
revoked: true
|
|
130
130
|
}));
|
|
131
131
|
const page = new ImportGpgKeyPage(props);
|
|
@@ -223,5 +223,24 @@ describe("ImportGpgKey", () => {
|
|
|
223
223
|
await page.verifyKey();
|
|
224
224
|
expect(page.hasInvalidPrivateKeyError).toBeFalsy();
|
|
225
225
|
});
|
|
226
|
+
|
|
227
|
+
it("As AN I should see a warning if the private key has an expiration date", async() => {
|
|
228
|
+
const props = defaultProps({
|
|
229
|
+
validatePrivateGpgKey: jest.fn(() => { throw new Error("The private key should be a valid armored GPG key."); }),
|
|
230
|
+
hasKeyExpirationDate: jest.fn(() => Promise.resolve(true))
|
|
231
|
+
});
|
|
232
|
+
props.context.port.request.mockImplementation(() => ({
|
|
233
|
+
expires: "2100-01-01 00:00:00.000",
|
|
234
|
+
revoked: false
|
|
235
|
+
}));
|
|
236
|
+
const page = new ImportGpgKeyPage(props);
|
|
237
|
+
|
|
238
|
+
expect.assertions(3);
|
|
239
|
+
await page.fill('Some private key');
|
|
240
|
+
await page.verifyKey();
|
|
241
|
+
expect(page.hasInvalidPrivateKeyError).toBeTruthy();
|
|
242
|
+
expect(page.warningMessage).toContain("The private key should not have an expiry date.");
|
|
243
|
+
expect(page.warningMessage).toContain("Once expired you will not be able to connect to your account.");
|
|
244
|
+
});
|
|
226
245
|
});
|
|
227
246
|
});
|
package/src/react-extension/components/Authentication/ImportGpgKey/ImportGpgKey.test.page.js
CHANGED
|
@@ -109,6 +109,10 @@ export default class ImportGpgKeyPage {
|
|
|
109
109
|
return !this.privateKeyInput.hasAttribute('disabled');
|
|
110
110
|
}
|
|
111
111
|
|
|
112
|
+
get warningMessage() {
|
|
113
|
+
return this._page.container.querySelector('.warning-message').textContent;
|
|
114
|
+
}
|
|
115
|
+
|
|
112
116
|
/**
|
|
113
117
|
* Change the private key input value
|
|
114
118
|
* @param privateKey The new passphrase
|
package/src/react-extension/components/Authentication/ImportGpgKey/ImportGpgKey.test.stories.js
CHANGED
|
@@ -17,7 +17,7 @@ import ImportGpgKey, {ImportGpgKeyVariations} from "./ImportGpgKey";
|
|
|
17
17
|
import {defaultProps} from "./ImportGpgKey.test.data";
|
|
18
18
|
|
|
19
19
|
export default {
|
|
20
|
-
title: 'Passbolt/Authentication/ImportGpgKey',
|
|
20
|
+
title: 'Passbolt Component/Authentication/ImportGpgKey',
|
|
21
21
|
component: ImportGpgKey
|
|
22
22
|
};
|
|
23
23
|
|
|
@@ -15,7 +15,7 @@ import React, {Component} from "react";
|
|
|
15
15
|
import {BROWSER_NAMES, detectBrowserName} from "../../../../shared/lib/Browser/detectBrowserName";
|
|
16
16
|
import {withAppContext} from "../../../contexts/AppContext";
|
|
17
17
|
import PropTypes from "prop-types";
|
|
18
|
-
import {Trans
|
|
18
|
+
import {Trans} from "react-i18next";
|
|
19
19
|
|
|
20
20
|
const CHROME_STORE_BROWSER_EXTENSION_URL = "https://chrome.google.com/webstore/detail/passbolt-extension/didegimhafipceonhjepacocaffmoppf";
|
|
21
21
|
const FIREFOX_STORE_BROWSER_EXTENSION_URL = "https://addons.mozilla.org/firefox/addon/passbolt";
|
|
@@ -127,4 +127,4 @@ class InstallExtension extends Component {
|
|
|
127
127
|
InstallExtension.propTypes = {
|
|
128
128
|
context: PropTypes.any, // The application context
|
|
129
129
|
};
|
|
130
|
-
export default withAppContext(
|
|
130
|
+
export default withAppContext(InstallExtension);
|
|
@@ -16,7 +16,7 @@ import {MemoryRouter, Route} from "react-router-dom";
|
|
|
16
16
|
import InstallExtension from "./InstallExtension";
|
|
17
17
|
|
|
18
18
|
export default {
|
|
19
|
-
title: 'Passbolt/Authentication/InstallExtension',
|
|
19
|
+
title: 'Passbolt Component/Authentication/InstallExtension',
|
|
20
20
|
component: InstallExtension
|
|
21
21
|
};
|
|
22
22
|
|
|
@@ -55,6 +55,7 @@ Chrome.loaders = [
|
|
|
55
55
|
});
|
|
56
56
|
},
|
|
57
57
|
];
|
|
58
|
+
Chrome.parameters = defaultParameters;
|
|
58
59
|
|
|
59
60
|
export const Edge = Template.bind({});
|
|
60
61
|
Edge.loaders = [
|
|
@@ -65,6 +66,7 @@ Edge.loaders = [
|
|
|
65
66
|
});
|
|
66
67
|
},
|
|
67
68
|
];
|
|
69
|
+
Edge.parameters = defaultParameters;
|
|
68
70
|
|
|
69
71
|
export const UnsupportedBrowser = Template.bind({});
|
|
70
72
|
UnsupportedBrowser.loaders = [
|
|
@@ -75,3 +77,4 @@ UnsupportedBrowser.loaders = [
|
|
|
75
77
|
});
|
|
76
78
|
},
|
|
77
79
|
];
|
|
80
|
+
UnsupportedBrowser.parameters = defaultParameters;
|