passbolt-styleguide 3.5.2 → 3.6.0-alpha2
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/build/css/help.min.css +3 -3
- package/build/css/public.min.css +4 -4
- 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 +4 -4
- package/build/css/themes/default/api_reports.min.css +4 -4
- package/build/css/themes/default/api_webinstaller.min.css +3 -3
- package/build/css/themes/default/ext_app.min.css +4 -4
- 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 +4 -4
- package/build/css/themes/midgar/api_reports.min.css +4 -4
- package/build/css/themes/midgar/ext_app.min.css +4 -4
- 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 +2 -0
- package/build/js/dist/api-account-recovery.js.LICENSE.txt +107 -0
- package/build/js/dist/api-app.js +1 -1
- package/build/js/dist/api-app.js.LICENSE.txt +73 -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 +159 -15
- package/jest.config.json +13 -0
- package/package.json +26 -21
- package/src/locales/en-UK/common.json +140 -4
- package/src/react-extension/ApiAccountRecovery.entry.js +25 -0
- package/src/react-extension/ApiAccountRecovery.js +233 -0
- package/src/react-extension/ApiApp.js +50 -43
- package/src/react-extension/ExtApp.js +129 -105
- package/src/react-extension/ExtAuthenticationAccountRecovery.js +173 -0
- package/src/react-extension/ExtAuthenticationLogin.js +35 -33
- package/src/react-extension/ExtAuthenticationRecover.js +23 -35
- package/src/react-extension/ExtAuthenticationSetup.js +24 -46
- package/src/react-extension/ExtBootstrapAccountRecovery.js +75 -0
- package/src/react-extension/ExtBootstrapApp.js +4 -0
- package/src/react-extension/components/AccountRecovery/AccountRecoveryInviteUserSettingPreferenceDialog/AccountRecoveryInviteUserSettingPreferenceDialog.js +114 -0
- package/src/react-extension/components/AccountRecovery/AccountRecoveryInviteUserSettingPreferenceDialog/AccountRecoveryInviteUserSettingPreferenceDialog.test.data.js +27 -0
- package/src/react-extension/components/AccountRecovery/AccountRecoveryInviteUserSettingPreferenceDialog/AccountRecoveryInviteUserSettingPreferenceDialog.test.js +72 -0
- package/src/react-extension/components/AccountRecovery/AccountRecoveryInviteUserSettingPreferenceDialog/AccountRecoveryInviteUserSettingPreferenceDialog.test.page.js +74 -0
- package/src/react-extension/components/AccountRecovery/AccountRecoveryInviteUserSettingPreferenceDialog/AccountRecoveryInviteUserSettingPreferenceDialog.test.stories.js +51 -0
- package/src/react-extension/components/AccountRecovery/HandleAccountRecoveryStatusCheck/HandleAccountRecoveryStatusCheck.js +80 -0
- package/src/react-extension/components/AccountRecovery/HandleAccountRecoveryStatusCheck/HandleAccountRecoveryStatusCheck.test.data.js +60 -0
- package/src/react-extension/components/AccountRecovery/HandleAccountRecoveryStatusCheck/HandleAccountRecoveryStatusCheck.test.js +110 -0
- package/src/react-extension/components/AccountRecovery/HandleAccountRecoveryStatusCheck/HandleAccountRecoveryStatusCheck.test.page.js +40 -0
- package/src/react-extension/components/AccountRecovery/HandleAccountRecoveryUserSettingsRoute/HandleAccountRecoveryUserSettingsRoute.js +96 -0
- package/src/react-extension/components/AccountRecovery/HandleAccountRecoveryUserSettingsRoute/HandleAccountRecoveryUserSettingsRoute.test.data.js +63 -0
- package/src/react-extension/components/AccountRecovery/HandleAccountRecoveryUserSettingsRoute/HandleAccountRecoveryUserSettingsRoute.test.js +88 -0
- package/src/react-extension/components/AccountRecovery/HandleAccountRecoveryUserSettingsRoute/HandleAccountRecoveryUserSettingsRoute.test.page.js +37 -0
- package/src/react-extension/components/AccountRecovery/HandleReviewAccountRecoveryRequestWorkflow/HandleReviewAccountRecoveryRequestWorkflow.js +214 -0
- package/src/react-extension/components/AccountRecovery/HandleReviewAccountRecoveryRequestWorkflow/HandleReviewAccountRecoveryRequestWorkflow.test.data.js +49 -0
- package/src/react-extension/components/AccountRecovery/HandleReviewAccountRecoveryRequestWorkflow/HandleReviewAccountRecoveryRequestWorkflow.test.js +98 -0
- package/src/react-extension/components/AccountRecovery/HandleReviewAccountRecoveryRequestWorkflow/HandleReviewAccountRecoveryRequestWorkflow.test.page.js +37 -0
- package/src/react-extension/components/AccountRecovery/ManageAccountRecoveryUserSettings/ManageAccountRecoveryUserSettings.js +316 -0
- package/src/react-extension/components/AccountRecovery/ManageAccountRecoveryUserSettings/ManageAccountRecoveryUserSettings.test.data.js +55 -0
- package/src/react-extension/components/AccountRecovery/ManageAccountRecoveryUserSettings/ManageAccountRecoveryUserSettings.test.js +132 -0
- package/src/react-extension/components/AccountRecovery/ManageAccountRecoveryUserSettings/ManageAccountRecoveryUserSettings.test.page.js +70 -0
- package/src/react-extension/components/AccountRecovery/ManageAccountRecoveryUserSettings/ManageAccountRecoveryUserSettings.test.stories.js +104 -0
- package/src/react-extension/components/AccountRecovery/ReviewAccountRecoveryRequest/ReviewAccountRecoveryRequest.js +286 -0
- package/src/react-extension/components/AccountRecovery/ReviewAccountRecoveryRequest/ReviewAccountRecoveryRequest.test.data.js +51 -0
- package/src/react-extension/components/AccountRecovery/ReviewAccountRecoveryRequest/ReviewAccountRecoveryRequest.test.js +77 -0
- package/src/react-extension/components/AccountRecovery/ReviewAccountRecoveryRequest/ReviewAccountRecoveryRequest.test.page.js +119 -0
- package/src/react-extension/components/AccountRecovery/ReviewAccountRecoveryRequest/ReviewAccountRecoveryRequest.test.stories.js +36 -0
- package/src/react-extension/components/Administration/AdministrationWorkspace.js +15 -2
- package/src/react-extension/components/Administration/AdministrationWorkspace.test.data.js +5 -1
- package/src/react-extension/components/Administration/AdministrationWorkspace.test.js +45 -0
- package/src/react-extension/components/Administration/AdministrationWorkspace.test.page.js +23 -3
- package/src/react-extension/components/Administration/ConfirmSaveAccountRecoverySettings/ConfirmSaveAccountRecoverySettings.js +254 -0
- package/src/react-extension/components/Administration/ConfirmSaveAccountRecoverySettings/ConfirmSaveAccountRecoverySettings.test.data.js +153 -0
- package/src/react-extension/components/Administration/ConfirmSaveAccountRecoverySettings/ConfirmSaveAccountRecoverySettings.test.js +109 -0
- package/src/react-extension/components/Administration/ConfirmSaveAccountRecoverySettings/ConfirmSaveAccountRecoverySettings.test.page.js +174 -0
- package/src/react-extension/components/Administration/ConfirmSaveAccountRecoverySettings/ConfirmSaveAccountRecoverySettings.test.stories.js +43 -0
- package/src/react-extension/components/Administration/DisplayAdministrationMenu/DisplayAdministrationMenu.js +36 -0
- package/src/react-extension/components/Administration/DisplayAdministrationMenu/DisplayAdministrationMenu.test.data.js +2 -1
- package/src/react-extension/components/Administration/DisplayAdministrationMenu/DisplayAdministrationMenu.test.js +9 -0
- package/src/react-extension/components/Administration/DisplayAdministrationMenu/DisplayAdministrationMenu.test.page.js +12 -0
- package/src/react-extension/components/Administration/DisplayAdministrationWorkspaceActions/DisplayAdministrationAccountRecoveryAction/DisplayAdministrationAccountRecoveryActions.js +138 -0
- package/src/react-extension/components/Administration/DisplayAdministrationWorkspaceActions/DisplayAdministrationAccountRecoveryAction/DisplayAdministrationAccountRecoveryActions.test.data.js +46 -0
- package/src/react-extension/components/Administration/DisplayAdministrationWorkspaceActions/DisplayAdministrationAccountRecoveryAction/DisplayAdministrationAccountRecoveryActions.test.js +51 -0
- package/src/react-extension/components/Administration/DisplayAdministrationWorkspaceActions/DisplayAdministrationAccountRecoveryAction/DisplayAdministrationAccountRecoveryActions.test.page.js +93 -0
- package/src/react-extension/components/Administration/DisplayAdministrationWorkspaceBreadcrumb/DisplayAdministrationWorkspaceBreadcrumb.js +2 -0
- package/src/react-extension/components/Administration/DisplayAdministrationWorkspaceBreadcrumb/DisplayAdministrationWorkspaceBreadcrumb.test.js +9 -0
- package/src/react-extension/components/Administration/DisplayEmailNotificationsAdministration/DisplayEmailNotificationsAdministration.js +105 -2
- package/src/react-extension/components/Administration/DisplayEmailNotificationsAdministration/DisplayEmailNotificationsAdministration.test.stories.js +104 -0
- package/src/react-extension/components/Administration/EditSubscriptionKey/EditSubscriptionKey.js +2 -4
- package/src/react-extension/components/Administration/EditSubscriptionKey/EditSubscriptionKey.test.js +10 -3
- package/src/react-extension/components/Administration/HandleSaveAccountRecoveryOrganizationPolicyWorkflow/HandleSaveAccountRecoveryOrganizationPolicyWorkflow.js +180 -0
- package/src/react-extension/components/Administration/HandleSaveAccountRecoveryOrganizationPolicyWorkflow/HandleSaveAccountRecoveryOrganizationPolicyWorkflow.test.data.js +47 -0
- package/src/react-extension/components/Administration/HandleSaveAccountRecoveryOrganizationPolicyWorkflow/HandleSaveAccountRecoveryOrganizationPolicyWorkflow.test.js +64 -0
- package/src/react-extension/components/Administration/HandleSaveAccountRecoveryOrganizationPolicyWorkflow/HandleSaveAccountRecoveryOrganizationPolicyWorkflow.test.page.js +35 -0
- package/src/react-extension/components/Administration/ManageAccountRecoveryAdministrationSettings/ManageAccountRecoveryAdministrationSettings.js +435 -0
- package/src/react-extension/components/Administration/ManageAccountRecoveryAdministrationSettings/ManageAccountRecoveryAdministrationSettings.test.data.js +186 -0
- package/src/react-extension/components/Administration/ManageAccountRecoveryAdministrationSettings/ManageAccountRecoveryAdministrationSettings.test.js +100 -0
- package/src/react-extension/components/Administration/ManageAccountRecoveryAdministrationSettings/ManageAccountRecoveryAdministrationSettings.test.page.js +159 -0
- package/src/react-extension/components/Administration/ManageAccountRecoveryAdministrationSettings/ManageAccountRecoveryAdministrationSettings.test.stories.js +64 -0
- package/src/react-extension/components/Administration/ProvideAccountRecoveryOrganizationKey/ProvideAccountRecoveryOrganizationKey.js +535 -0
- package/src/react-extension/components/Administration/ProvideAccountRecoveryOrganizationKey/ProvideAccountRecoveryOrganizationKey.test.data.js +31 -0
- package/src/react-extension/components/Administration/ProvideAccountRecoveryOrganizationKey/ProvideAccountRecoveryOrganizationKey.test.js +155 -0
- package/src/react-extension/components/Administration/ProvideAccountRecoveryOrganizationKey/ProvideAccountRecoveryOrganizationKey.test.page.js +124 -0
- package/src/react-extension/components/Administration/ProvideAccountRecoveryOrganizationKey/ProvideAccountRecoveryOrganizationKey.test.stories.js +41 -0
- package/src/react-extension/components/Administration/SelectAccountRecoveryOrganizationKey/DownloadOrganizationKey.js +108 -0
- package/src/react-extension/components/Administration/SelectAccountRecoveryOrganizationKey/DownloadOrganizationKey.test.js +48 -0
- package/src/react-extension/components/Administration/SelectAccountRecoveryOrganizationKey/DownloadOrganizationKey.test.page.js +82 -0
- package/src/react-extension/components/Administration/SelectAccountRecoveryOrganizationKey/DownloadOrganizationKey.test.stories.js +51 -0
- package/src/react-extension/components/Administration/SelectAccountRecoveryOrganizationKey/GenerateOrganizationKey.js +471 -0
- package/src/react-extension/components/Administration/SelectAccountRecoveryOrganizationKey/GenerateOrganizationKey.test.js +181 -0
- package/src/react-extension/components/Administration/SelectAccountRecoveryOrganizationKey/ImportOrganizationKey.js +289 -0
- package/src/react-extension/components/Administration/SelectAccountRecoveryOrganizationKey/ImportOrganizationKey.test.js +188 -0
- package/src/react-extension/components/Administration/SelectAccountRecoveryOrganizationKey/SelectAccountRecoveryOrganizationKey.js +121 -0
- package/src/react-extension/components/Administration/SelectAccountRecoveryOrganizationKey/SelectAccountRecoveryOrganizationKey.test.page.js +262 -0
- package/src/react-extension/components/Administration/SelectAccountRecoveryOrganizationKey/SelectAccountRecoveryOrganizationKey.test.stories.js +50 -0
- package/src/react-extension/components/Authentication/AskForAuthenticationHelpCredentialLost/AskForAuthenticationHelpCredentialLost.js +73 -0
- package/src/react-extension/components/Authentication/AskForAuthenticationHelpCredentialLost/AskForAuthenticationHelpCredentialLost.test.data.js +41 -0
- package/src/react-extension/components/Authentication/AskForAuthenticationHelpCredentialLost/AskForAuthenticationHelpCredentialLost.test.js +48 -0
- package/src/react-extension/components/Authentication/AskForAuthenticationHelpCredentialLost/AskForAuthenticationHelpCredentialLost.test.page.js +64 -0
- package/src/react-extension/components/Authentication/AskForAuthenticationHelpCredentialLost/AskForAuthenticationHelpCredentialLost.test.stories.js +40 -0
- package/src/react-extension/components/Authentication/CheckAccountRecoveryEmail/CheckAccountRecoveryEmail.js +36 -0
- package/src/react-extension/components/Authentication/CheckAccountRecoveryEmail/CheckAccountRecoveryEmail.test.js +37 -0
- package/src/react-extension/components/Authentication/CheckAccountRecoveryEmail/CheckAccountRecoveryEmail.test.page.js +55 -0
- package/src/react-extension/components/Authentication/CheckAccountRecoveryEmail/CheckAccountRecoveryEmail.test.stories.js +39 -0
- package/src/react-extension/components/Authentication/CheckMailBox/CheckMailBox.test.js +3 -3
- package/src/react-extension/components/Authentication/CheckMailBox/CheckMailBox.test.page.js +0 -1
- package/src/react-extension/components/Authentication/CheckMailBox/CheckMailbox.test.stories.js +21 -15
- package/src/react-extension/components/Authentication/CheckPassphrase/CheckPassphrase.js +33 -23
- package/src/react-extension/components/Authentication/CheckPassphrase/CheckPassphrase.test.data.js +18 -30
- package/src/react-extension/components/Authentication/CheckPassphrase/CheckPassphrase.test.js +110 -47
- package/src/react-extension/components/Authentication/CheckPassphrase/CheckPassphrase.test.page.js +33 -10
- package/src/react-extension/components/Authentication/CheckPassphrase/CheckPassphrase.test.stories.js +36 -19
- package/src/react-extension/components/Authentication/ChooseAccountRecoveryPreference/ChooseAccountRecoveryPreference.js +191 -0
- package/src/react-extension/components/Authentication/ChooseAccountRecoveryPreference/ChooseAccountRecoveryPreference.test.data.js +90 -0
- package/src/react-extension/components/Authentication/ChooseAccountRecoveryPreference/ChooseAccountRecoveryPreference.test.js +92 -0
- package/src/react-extension/components/Authentication/ChooseAccountRecoveryPreference/ChooseAccountRecoveryPreference.test.page.js +109 -0
- package/src/react-extension/components/Authentication/ChooseAccountRecoveryPreference/ChooseAccountRecoveryPreference.test.stories.js +60 -0
- package/src/react-extension/components/Authentication/ChooseSecurityToken/ChooseSecurityToken.js +5 -29
- package/src/react-extension/components/Authentication/ChooseSecurityToken/ChooseSecurityToken.test.data.js +17 -18
- package/src/react-extension/components/Authentication/ChooseSecurityToken/ChooseSecurityToken.test.js +48 -25
- package/src/react-extension/components/Authentication/ChooseSecurityToken/ChooseSecurityToken.test.page.js +16 -9
- package/src/react-extension/components/Authentication/ChooseSecurityToken/ChooseSecurityToken.test.stories.js +20 -16
- package/src/react-extension/components/Authentication/CreateGpgKey/CreateGpgKey.js +40 -36
- package/src/react-extension/components/Authentication/CreateGpgKey/CreateGpgKey.test.data.js +18 -14
- package/src/react-extension/components/Authentication/CreateGpgKey/CreateGpgKey.test.js +189 -103
- package/src/react-extension/components/Authentication/CreateGpgKey/CreateGpgKey.test.page.js +50 -11
- package/src/react-extension/components/Authentication/CreateGpgKey/CreateGpgKey.test.stories.js +31 -19
- package/src/react-extension/components/Authentication/DisplayBrowserNotSupported/DisplayBrowserNotSupported.js +0 -9
- package/src/react-extension/components/Authentication/DisplayBrowserNotSupported/DisplayBrowserNotSupported.test.js +1 -1
- package/src/react-extension/components/Authentication/DisplayBrowserNotSupported/{DisplayBrowserNotSupportedPage.js → DisplayBrowserNotSupported.test.page.js} +2 -5
- package/src/react-extension/components/Authentication/DisplayBrowserNotSupported/DisplayBrowserNotSupported.test.stories.js +21 -15
- package/src/react-extension/components/Authentication/DisplayExpiredTokenError/DisplayExpiredTokenError.js +0 -9
- package/src/react-extension/components/Authentication/DisplayExpiredTokenError/DisplayExpiredTokenError.test.data.js +36 -0
- package/src/react-extension/components/Authentication/DisplayExpiredTokenError/DisplayExpiredTokenError.test.js +34 -0
- package/src/react-extension/components/Authentication/DisplayExpiredTokenError/DisplayExpiredTokenError.test.page.js +49 -0
- package/src/react-extension/components/Authentication/DisplayExpiredTokenError/DisplayExpiredTokenError.test.stories.js +23 -15
- package/src/react-extension/components/Authentication/DisplayRequireInvitationError/DisplayRequireInvitationError.js +0 -9
- package/src/react-extension/components/Authentication/DisplayRequireInvitationError/DisplayRequireInvitationError.test.js +1 -1
- package/src/react-extension/components/Authentication/DisplayRequireInvitationError/{DisplayRequireInvitationErrorPage.js → DisplayRequireInvitationError.test.page.js} +0 -3
- package/src/react-extension/components/Authentication/DisplayRequireInvitationError/DisplayRequireInvitationError.test.stories.js +21 -15
- package/src/react-extension/components/Authentication/DisplayUnexpectedError/DisplayUnexpectedError.js +91 -10
- package/src/react-extension/components/Authentication/DisplayUnexpectedError/DisplayUnexpectedError.test.data.js +56 -0
- package/src/react-extension/components/Authentication/DisplayUnexpectedError/DisplayUnexpectedError.test.js +46 -0
- package/src/react-extension/components/Authentication/DisplayUnexpectedError/DisplayUnexpectedError.test.page.js +79 -0
- package/src/react-extension/components/Authentication/DisplayUnexpectedError/DisplayUnexpectedError.test.stories.js +48 -15
- package/src/react-extension/components/Authentication/DownloadRecoveryKit/DownloadRecoveryKit.js +12 -53
- package/src/react-extension/components/Authentication/DownloadRecoveryKit/DownloadRecoveryKit.test.data.js +16 -16
- package/src/react-extension/components/Authentication/DownloadRecoveryKit/DownloadRecoveryKit.test.js +10 -13
- package/src/react-extension/components/Authentication/DownloadRecoveryKit/DownloadRecoveryKit.test.page.js +16 -6
- package/src/react-extension/components/Authentication/DownloadRecoveryKit/DownloadRecoveryKit.test.stories.js +21 -15
- package/src/react-extension/components/Authentication/EnterNameForm/EnterNameForm.test.data.js +17 -3
- package/src/react-extension/components/Authentication/EnterNameForm/EnterNameForm.test.page.js +0 -1
- package/src/react-extension/components/Authentication/EnterNameForm/EnterNameForm.test.stories.js +21 -15
- package/src/react-extension/components/Authentication/EnterUsernameForm/EnterUsernameForm.test.data.js +28 -11
- package/src/react-extension/components/Authentication/EnterUsernameForm/EnterUsernameForm.test.stories.js +21 -16
- package/src/react-extension/components/Authentication/HandleSessionExpired/HandleSessionExpired.test.data.js +17 -3
- package/src/react-extension/components/Authentication/ImportGpgKey/ImportGpgKey.js +56 -19
- package/src/react-extension/components/Authentication/ImportGpgKey/ImportGpgKey.test.data.js +25 -17
- package/src/react-extension/components/Authentication/ImportGpgKey/ImportGpgKey.test.js +204 -58
- package/src/react-extension/components/Authentication/ImportGpgKey/ImportGpgKey.test.page.js +43 -7
- package/src/react-extension/components/Authentication/ImportGpgKey/ImportGpgKey.test.stories.js +31 -19
- package/src/react-extension/components/Authentication/InstallExtension/InstallExtension.js +0 -9
- package/src/react-extension/components/Authentication/InstallExtension/InstallExtension.test.data.js +17 -3
- package/src/react-extension/components/Authentication/InstallExtension/InstallExtension.test.stories.js +62 -18
- package/src/react-extension/components/Authentication/{IntroduceSetupExtension/IntroduceSetupExtension.js → IntroduceExtension/IntroduceExtension.js} +8 -19
- package/src/react-extension/components/Authentication/IntroduceExtension/IntroduceExtension.test.data.js +24 -0
- package/src/react-extension/components/Authentication/{IntroduceSetupExtension/IntroduceSetupExtension.test.js → IntroduceExtension/IntroduceExtension.test.js} +16 -6
- package/src/react-extension/components/Authentication/{IntroduceSetupExtension/IntroduceSetupExtension.test.page.js → IntroduceExtension/IntroduceExtension.test.page.js} +3 -4
- package/src/react-extension/components/Authentication/IntroduceExtension/IntroduceExtension.test.stories.js +39 -0
- package/src/react-extension/components/Authentication/NotifyExpiredSession/NotifyExpiredSession.test.data.js +27 -9
- package/src/react-extension/components/Authentication/NotifyExpiredSession/NotifyExpiredSession.test.js +2 -8
- package/src/react-extension/components/Authentication/NotifyExpiredSession/NotifyExpiredSession.test.page.js +4 -9
- package/src/react-extension/components/Authentication/NotifyExpiredSession/NotifyExpiredSession.test.stories.js +23 -14
- package/src/react-extension/components/Authentication/RequestAccountRecovery/RequestAccountRecovery.js +70 -0
- package/src/react-extension/components/Authentication/RequestAccountRecovery/RequestAccountRecovery.test.data.js +25 -0
- package/src/react-extension/components/Authentication/RequestAccountRecovery/RequestAccountRecovery.test.js +49 -0
- package/src/react-extension/components/Authentication/RequestAccountRecovery/RequestAccountRecovery.test.page.js +74 -0
- package/src/react-extension/components/Authentication/RequestAccountRecovery/RequestAccountRecovery.test.stories.js +40 -0
- package/src/react-extension/components/AuthenticationAccountRecovery/DisplayExpiredTokenError/DisplayExpiredTokenError.js +41 -0
- package/src/react-extension/components/AuthenticationAccountRecovery/DisplayExpiredTokenError/DisplayExpiredTokenError.test.data.js +36 -0
- package/src/react-extension/components/AuthenticationAccountRecovery/DisplayExpiredTokenError/DisplayExpiredTokenError.test.js +35 -0
- package/src/react-extension/components/AuthenticationAccountRecovery/DisplayExpiredTokenError/DisplayExpiredTokenError.test.page.js +50 -0
- package/src/react-extension/components/AuthenticationAccountRecovery/DisplayExpiredTokenError/DisplayExpiredTokenError.test.stories.js +41 -0
- package/src/react-extension/components/AuthenticationAccountRecovery/DisplayRestartFromScratchError/DisplayRestartFromScratchError.js +42 -0
- package/src/react-extension/components/AuthenticationAccountRecovery/DisplayRestartFromScratchError/DisplayRestartFromScratchError.test.js +43 -0
- package/src/react-extension/components/AuthenticationAccountRecovery/DisplayRestartFromScratchError/DisplayRestartFromScratchError.test.page.js +62 -0
- package/src/react-extension/components/AuthenticationAccountRecovery/DisplayRestartFromScratchError/DisplayRestartFromScratchError.test.stories.js +40 -0
- package/src/react-extension/components/AuthenticationAccountRecovery/OrchestrateAccountRecovery/InsertAccountRecoveryIframe.js +64 -0
- package/src/react-extension/components/AuthenticationAccountRecovery/OrchestrateAccountRecovery/OrchestrateAccountRecovery.js +84 -0
- package/src/react-extension/components/AuthenticationAccountRecovery/OrchestrateApiAccountRecovery/OrchestrateApiAccountRecovery.js +66 -0
- package/src/react-extension/components/AuthenticationLogin/AcceptLoginServerKeyChange/AcceptLoginServerKeyChange.js +8 -22
- package/src/react-extension/components/AuthenticationLogin/AcceptLoginServerKeyChange/AcceptLoginServerKeyChange.test.data.js +25 -0
- package/src/react-extension/components/AuthenticationLogin/AcceptLoginServerKeyChange/AcceptLoginServerKeyChange.test.js +52 -0
- package/src/react-extension/components/AuthenticationLogin/AcceptLoginServerKeyChange/AcceptLoginServerKeyChange.test.page.js +82 -0
- package/src/react-extension/components/AuthenticationLogin/AcceptLoginServerKeyChange/AcceptLoginServerKeyChange.test.stories.js +23 -16
- package/src/react-extension/components/AuthenticationLogin/Login/Login.js +156 -145
- package/src/react-extension/components/AuthenticationLogin/Login/Login.test.data.js +67 -0
- package/src/react-extension/components/AuthenticationLogin/Login/Login.test.js +157 -0
- package/src/react-extension/components/AuthenticationLogin/Login/Login.test.page.js +155 -0
- package/src/react-extension/components/AuthenticationLogin/Login/Login.test.stories.js +32 -27
- package/src/react-extension/components/AuthenticationLogin/OrchestrateLogin/OrchestrateLoginBoxFooter.js +48 -0
- package/src/react-extension/components/AuthenticationLogin/OrchestrateLogin/OrchestrateLoginBoxMain.js +90 -0
- package/src/react-extension/components/AuthenticationPassphrase/InputPassphrase/InputPassphrase.js +12 -3
- package/src/react-extension/components/AuthenticationPassphrase/InputPassphrase/InputPassphrase.test.stories.js +1 -1
- package/src/react-extension/components/AuthenticationRecover/RecoverAuthentication/RecoverAuthentication.js +90 -82
- package/src/react-extension/components/AuthenticationSetup/SetupAuthentication/SetupAuthentication.js +80 -87
- package/src/react-extension/components/Common/ActionFeedback/DisplayActionFeedbacks.test.js +8 -3
- package/src/react-extension/components/Common/Avatar/UserAvatar.js +6 -1
- package/src/react-extension/components/Common/Avatar/UserAvatar.test.data.js +27 -0
- package/src/react-extension/components/Common/Avatar/UserAvatar.test.stories.js +47 -0
- package/src/react-extension/components/Common/Dialog/ManageDialogs/ManageDialogs.js +7 -2
- package/src/react-extension/components/Common/Error/HandleErrorEvents/HandleErrorEvents.js +2 -3
- package/src/react-extension/components/Common/Error/NotifyError/NotifyError.js +78 -15
- package/src/react-extension/components/Common/Icons/Icon.js +7 -0
- package/src/react-extension/components/Common/Internationalisation/TranslationProvider.js +1 -0
- package/src/react-extension/components/Common/Loading/LoadingSpinner/LoadingSpinner.js +15 -2
- package/src/react-extension/components/Common/Loading/LoadingSpinner/LoadingSpinner.test.stories.js +49 -0
- package/src/react-extension/components/Common/Route/HandleApplicationFirstLoadRoute.js +77 -0
- package/src/react-extension/components/Common/Route/HandleRouteFallback.js +14 -46
- package/src/react-extension/components/Common/Tab/Tabs.js +3 -1
- package/src/react-extension/components/Common/Workflow/ManageWorkflows/ManageWorkflows.js +72 -0
- package/src/react-extension/components/InsertAppIframe.js +12 -6
- package/src/react-extension/components/Resource/CreateResource/CreateResource.js +2 -4
- package/src/react-extension/components/Resource/CreateResource/CreateResource.test.data.js +2 -2
- package/src/react-extension/components/Resource/CreateResource/CreateResource.test.js +17 -2
- package/src/react-extension/components/Resource/CreateResource/CreateResource.test.stories.js +19 -3
- package/src/react-extension/components/Resource/DeleteResource/DeleteResource.js +2 -4
- package/src/react-extension/components/Resource/DeleteResource/DeleteResource.test.js +20 -6
- package/src/react-extension/components/Resource/DeleteResource/DeleteResource.test.stories.js +12 -0
- package/src/react-extension/components/Resource/DisplayResourcesList/DisplayResourcesList.test.stories.js +107 -6
- package/src/react-extension/components/Resource/EditResource/EditResource.js +2 -4
- package/src/react-extension/components/Resource/EditResource/EditResource.test.data.js +2 -2
- package/src/react-extension/components/Resource/EditResource/EditResource.test.js +3 -0
- package/src/react-extension/components/Resource/EditResource/EditResource.test.stories.js +18 -4
- package/src/react-extension/components/Resource/ExportResources/ExportResources.js +5 -7
- package/src/react-extension/components/Resource/ExportResources/ExportResources.test.js +9 -2
- package/src/react-extension/components/Resource/ExportResources/ExportResources.test.stories.js +4 -2
- package/src/react-extension/components/Resource/ExportResources/ExportResourcesCredentials.js +5 -7
- package/src/react-extension/components/Resource/ExportResources/ExportResourcesCredentials.test.js +8 -2
- package/src/react-extension/components/Resource/ExportResources/ExportResourcesCredentials.test.stories.js +4 -2
- package/src/react-extension/components/Resource/FilterResourcesByFolders/FilterResourcesByFolders.test.stories.js +24 -8
- package/src/react-extension/components/Resource/FilterResourcesByTags/FilterResourcesByTagsList.js +2 -4
- package/src/react-extension/components/Resource/ImportResources/ImportResources.js +2 -4
- package/src/react-extension/components/Resource/ImportResources/ImportResources.test.js +10 -2
- package/src/react-extension/components/Resource/ImportResources/ImportResourcesKeyUnlock.js +4 -6
- package/src/react-extension/components/Resource/ImportResources/ImportResourcesKeyUnlock.test.js +9 -2
- package/src/react-extension/components/Resource/ImportResources/ImportResourcesKeyUnlock.test.stories.js +9 -1
- package/src/react-extension/components/Resource/ImportResources/ImportResourcesResult.js +4 -2
- package/src/react-extension/components/Resource/ImportResources/ImportResourcesResult.test.stories.js +19 -1
- package/src/react-extension/components/ResourceComment/AddResourceComment/AddResourceComment.test.stories.js +15 -3
- package/src/react-extension/components/ResourceComment/ConfirmResourceCommentDeletion/ConfirmResourceCommentDeletion.test.stories.js +8 -3
- package/src/react-extension/components/ResourceComment/DisplayResourceCommentList/DisplayResourceCommentList.test.stories.js +9 -8
- package/src/react-extension/components/ResourceDescription/EditResourceDescription/EditResourceDescription.test.stories.js +6 -3
- package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetailsActivity.test.stories.js +1 -1
- package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetailsDescription.test.stories.js +1 -1
- package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetailsInformation.test.data.js +11 -0
- package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetailsInformation.test.js +11 -4
- package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetailsTag.test.stories.js +11 -10
- package/src/react-extension/components/ResourceFolder/CreateResourceFolder/CreateResourceFolder.js +2 -4
- package/src/react-extension/components/ResourceFolder/CreateResourceFolder/CreateResourceFolder.test.js +16 -5
- package/src/react-extension/components/ResourceFolder/CreateResourceFolder/CreateResourceFolder.test.stories.js +13 -0
- package/src/react-extension/components/ResourceFolder/DefineResourceFolderMoveStrategy/DefineResourceFolderMoveStrategy.js +8 -10
- package/src/react-extension/components/ResourceFolder/DefineResourceFolderMoveStrategy/DefineResourceFolderMoveStrategy.test.js +12 -5
- package/src/react-extension/components/ResourceFolder/DefineResourceFolderMoveStrategy/DefineResourceFolderMoveStrategy.test.stories.js +4 -1
- package/src/react-extension/components/ResourceFolder/DeleteResourceFolder/DeleteResourceFolder.js +2 -4
- package/src/react-extension/components/ResourceFolder/DeleteResourceFolder/DeleteResourceFolder.test.js +2 -5
- package/src/react-extension/components/ResourceFolder/DeleteResourceFolder/DeleteResourceFolder.test.stories.js +6 -2
- package/src/react-extension/components/ResourceFolder/RenameResourceFolder/RenameResourceFolder.js +2 -4
- package/src/react-extension/components/ResourceFolder/RenameResourceFolder/RenameResourceFolder.test.js +15 -4
- package/src/react-extension/components/ResourceFolder/RenameResourceFolder/RenameResourceFolder.test.stories.js +10 -2
- package/src/react-extension/components/ResourceFolderDetails/DisplayResourceFolderDetails/DisplayResourceFolderDetailsActivity.test.stories.js +4 -2
- package/src/react-extension/components/ResourceFolderDetails/DisplayResourceFolderDetails/DisplayResourceFolderDetailsInformation.test.js +2 -3
- package/src/react-extension/components/ResourceFolderDetails/DisplayResourceFolderDetails/DisplayResourceFolderDetailsInformation.test.stories.js +3 -1
- package/src/react-extension/components/ResourceFolderDetails/DisplayResourceFolderDetails/DisplayResourceFolderDetailsPermissions.test.stories.js +3 -1
- package/src/react-extension/components/ResourcePassword/GenerateResourcePassword/ConfigurePassphraseGenerator.test.stories.js +2 -1
- package/src/react-extension/components/ResourcePassword/GenerateResourcePassword/ConfigurePasswordGenerator.js +1 -1
- package/src/react-extension/components/ResourcePassword/GenerateResourcePassword/ConfigurePasswordGenerator.test.stories.js +2 -3
- package/src/react-extension/components/ResourcePassword/GenerateResourcePassword/GenerateResourcePassword.test.stories.js +7 -3
- package/src/react-extension/components/ResourceTag/DeleteResourceTag/DeleteResourceTag.js +2 -4
- package/src/react-extension/components/ResourceTag/DeleteResourceTag/DeleteResourceTag.test.stories.js +6 -2
- package/src/react-extension/components/ResourceTag/EditResourceTag/EditResourceTag.js +2 -4
- package/src/react-extension/components/ResourceTag/EditResourceTag/EditResourceTag.test.stories.js +6 -2
- package/src/react-extension/components/Share/ShareDialog.js +2 -4
- package/src/react-extension/components/Share/ShareDialog.test.js +14 -3
- package/src/react-extension/components/Share/ShareDialog.test.stories.js +5 -3
- package/src/react-extension/components/User/ConfirmDisableUserMFA/ConfirmDisableUserMFA.js +4 -6
- package/src/react-extension/components/User/ConfirmDisableUserMFA/ConfirmDisableUserMFA.test.js +6 -2
- package/src/react-extension/components/User/ConfirmDisableUserMFA/ConfirmDisableUserMFA.test.stories.js +5 -0
- package/src/react-extension/components/User/CreateUser/CreateUser.js +2 -4
- package/src/react-extension/components/User/CreateUser/CreateUser.test.stories.js +14 -3
- package/src/react-extension/components/User/DeleteUser/DeleteUser.js +2 -4
- package/src/react-extension/components/User/DeleteUser/DeleteUser.test.stories.js +9 -2
- package/src/react-extension/components/User/DeleteUser/DeleteUserWithConflicts.js +2 -4
- package/src/react-extension/components/User/DeleteUser/DeleteUserWithConflicts.test.stories.js +7 -1
- package/src/react-extension/components/User/DisplayExpiredAccountRecovery/DisplayExpiredAccountRecovery.js +79 -0
- package/src/react-extension/components/User/DisplayExpiredAccountRecovery/DisplayExpiredAccountRecovery.test.stories.js +32 -0
- package/src/react-extension/components/User/DisplayUserBadgeMenu/DisplayUserBadgeMenu.js +13 -3
- package/src/react-extension/components/User/DisplayUserBadgeMenu/DisplayUserBadgeMenu.test.stories.js +7 -9
- package/src/react-extension/components/User/DisplayUserWorkspace/DisplayUserWorkspace.js +5 -1
- package/src/react-extension/components/User/DisplayUserWorkspace/DisplayUserWorkspace.test.data.js +18 -9
- package/src/react-extension/components/User/DisplayUserWorkspace/DisplayUserWorkspace.test.js +2 -2
- package/src/react-extension/components/User/DisplayUserWorkspaceActions/DisplayUserWorkspaceActions.js +48 -6
- package/src/react-extension/components/User/DisplayUserWorkspaceActions/DisplayUserWorkspaceActions.test.data.js +16 -1
- package/src/react-extension/components/User/DisplayUserWorkspaceActions/DisplayUserWorkspaceActions.test.js +14 -0
- package/src/react-extension/components/User/DisplayUserWorkspaceActions/DisplayUserWorkspaceActions.test.page.js +8 -0
- package/src/react-extension/components/User/DisplayUserWorkspaceActions/DisplayUserWorkspaceActions.test.stories.js +55 -0
- package/src/react-extension/components/User/DisplayUsers/DisplayUsers.js +35 -0
- package/src/react-extension/components/User/DisplayUsers/DisplayUsers.test.data.js +33 -13
- package/src/react-extension/components/User/DisplayUsers/DisplayUsers.test.js +16 -3
- package/src/react-extension/components/User/DisplayUsers/DisplayUsers.test.page.js +19 -6
- package/src/react-extension/components/User/DisplayUsers/DisplayUsers.test.stories.js +38 -0
- package/src/react-extension/components/User/DisplayUsersContextualMenu/DisplayUsersContextualMenu.js +46 -10
- package/src/react-extension/components/User/DisplayUsersContextualMenu/DisplayUsersContextualMenu.test.data.js +21 -6
- package/src/react-extension/components/User/DisplayUsersContextualMenu/DisplayUsersContextualMenu.test.js +38 -5
- package/src/react-extension/components/User/DisplayUsersContextualMenu/DisplayUsersContextualMenu.test.page.js +10 -0
- package/src/react-extension/components/User/DisplayUsersContextualMenu/DisplayUsersContextualMenu.test.stories.js +53 -0
- package/src/react-extension/components/User/EditUser/EditUser.js +2 -4
- package/src/react-extension/components/User/EditUser/EditUser.test.stories.js +8 -1
- package/src/react-extension/components/User/FilterUsersByGroups/DisplayGroupContextualMenu.js +2 -4
- package/src/react-extension/components/User/HandleReviewAccountRecoveryRequestRoute/HandleReviewAccountRecoveryRequestRoute.js +98 -0
- package/src/react-extension/components/User/HandleReviewAccountRecoveryRequestRoute/HandleReviewAccountRecoveryRequestRoute.test.data.js +56 -0
- package/src/react-extension/components/User/HandleReviewAccountRecoveryRequestRoute/HandleReviewAccountRecoveryRequestRoute.test.js +54 -0
- package/src/react-extension/components/User/HandleReviewAccountRecoveryRequestRoute/HandleReviewAccountRecoveryRequestRoute.test.page.js +37 -0
- package/src/react-extension/components/UserDetails/DisplayUserDetails/DisplayUserDetails.js +36 -3
- package/src/react-extension/components/UserDetails/DisplayUserDetails/DisplayUserDetails.test.data.js +1 -1
- package/src/react-extension/components/UserDetails/DisplayUserDetails/DisplayUserDetails.test.js +1 -1
- package/src/react-extension/components/UserDetails/DisplayUserDetailsAccountRecovery/DisplayUserDetailsAccountRecovery.js +234 -0
- package/src/react-extension/components/UserDetails/DisplayUserDetailsAccountRecovery/DisplayUserDetailsAccountRecovery.test.data.js +125 -0
- package/src/react-extension/components/UserDetails/DisplayUserDetailsAccountRecovery/DisplayUserDetailsAccountRecovery.test.js +150 -0
- package/src/react-extension/components/UserDetails/DisplayUserDetailsAccountRecovery/DisplayUserDetailsAccountRecovery.test.page.js +113 -0
- package/src/react-extension/components/UserDetails/DisplayUserDetailsAccountRecovery/DisplayUserDetailsAccountRecovery.test.stories.js +142 -0
- package/src/react-extension/components/UserDetails/DisplayUserDetailsActivity/DisplayUserDetailsActivity.js +467 -0
- package/src/react-extension/components/UserDetails/DisplayUserDetailsActivity/DisplayUserDetailsActivity.test.data.js +167 -0
- package/src/react-extension/components/UserDetails/DisplayUserDetailsActivity/DisplayUserDetailsActivity.test.js +106 -0
- package/src/react-extension/components/UserDetails/DisplayUserDetailsActivity/DisplayUserDetailsActivity.test.page.js +101 -0
- package/src/react-extension/components/UserDetails/DisplayUserDetailsActivity/DisplayUserDetailsActivity.test.stories.js +143 -0
- package/src/react-extension/components/UserDetails/DisplayUserDetailsGroups/DisplayUserDetailsGroups.js +5 -0
- package/src/react-extension/components/UserDetails/DisplayUserDetailsGroups/DisplayUserDetailsGroups.test.stories.js +1 -1
- package/src/react-extension/components/UserDetails/DisplayUserDetailsInformation/DisplayUserDetailsInformation.test.data.js +1 -1
- package/src/react-extension/components/UserDetails/DisplayUserDetailsInformation/DisplayUserDetailsInformation.test.stories.js +1 -1
- package/src/react-extension/components/UserDetails/DisplayUserDetailsPublicKey/DisplayUserDetailsPublicKey.js +1 -1
- package/src/react-extension/components/UserDetails/DisplayUserDetailsPublicKey/DisplayUserDetailsPublicKey.test.data.js +1 -1
- package/src/react-extension/components/UserDetails/DisplayUserDetailsPublicKey/DisplayUserDetailsPublicKey.test.stories.js +1 -1
- package/src/react-extension/components/UserGroup/CreateUserGroup/CreateUserGroup.js +2 -4
- package/src/react-extension/components/UserGroup/CreateUserGroup/CreateUserGroup.test.stories.js +5 -1
- package/src/react-extension/components/UserGroup/DeleteUserGroup/DeleteUserGroup.js +2 -4
- package/src/react-extension/components/UserGroup/DeleteUserGroup/DeleteUserGroup.test.stories.js +8 -1
- package/src/react-extension/components/UserGroup/DeleteUserGroup/DeleteUserGroupWithConflicts.js +2 -4
- package/src/react-extension/components/UserGroup/DeleteUserGroup/DeleteUserGroupWithConflicts.test.stories.js +8 -1
- package/src/react-extension/components/UserGroup/DisplayUserGroupDetails/DisplayUserGroupDetails.test.data.js +1 -1
- package/src/react-extension/components/UserGroup/DisplayUserGroupDetails/DisplayUserGroupDetails.test.js +1 -1
- package/src/react-extension/components/UserGroup/DisplayUserGroupDetailsInformation/DisplayUserGroupDetailsInformation.test.data.js +1 -1
- package/src/react-extension/components/UserGroup/DisplayUserGroupDetailsMembers/DisplayUserGroupDetailsMembers.test.data.js +1 -1
- package/src/react-extension/components/UserGroup/DisplayUserGroupDetailsMembers/DisplayUserGroupDetailsMembers.test.stories.js +2 -1
- package/src/react-extension/components/UserGroup/EditUserGroup/EditUserGroup.js +2 -4
- package/src/react-extension/components/UserGroup/EditUserGroup/EditUserGroup.test.data.js +1 -1
- package/src/react-extension/components/UserGroup/EditUserGroup/EditUserGroup.test.js +13 -2
- package/src/react-extension/components/UserGroup/EditUserGroup/EditUserGroup.test.stories.js +1 -1
- package/src/react-extension/components/UserSetting/ChangeUserPassphrase/ConfirmPassphrase.js +1 -1
- package/src/react-extension/components/UserSetting/ChangeUserPassphrase/ConfirmPassphrase.test.js +5 -2
- package/src/react-extension/components/UserSetting/ChangeUserPassphrase/EnterNewPassphrase.js +1 -1
- package/src/react-extension/components/UserSetting/ChangeUserPassphrase/EnterNewPassphrase.test.js +11 -1
- package/src/react-extension/components/UserSetting/ChangeUserSecurityToken/ChangeUserSecurityToken.js +1 -1
- package/src/react-extension/components/UserSetting/ChangeUserSecurityToken/ChangeUserSecurityToken.test.js +11 -3
- package/src/react-extension/components/UserSetting/ChangeUserSecurityToken/ChangeUserSecurityToken.test.stories.js +5 -1
- package/src/react-extension/components/UserSetting/DisplayUserAccountRecovery/DisplayAccountRecoveryUserSettings.js +240 -0
- package/src/react-extension/components/UserSetting/DisplayUserAccountRecovery/DisplayAccountRecoveryUserSettings.test.data.js +53 -0
- package/src/react-extension/components/UserSetting/DisplayUserAccountRecovery/DisplayAccountRecoveryUserSettings.test.js +110 -0
- package/src/react-extension/components/UserSetting/DisplayUserAccountRecovery/DisplayAccountRecoveryUserSettings.test.page.js +85 -0
- package/src/react-extension/components/UserSetting/DisplayUserAccountRecovery/DisplayAccountRecoveryUserSettings.test.stories.js +65 -0
- package/src/react-extension/components/UserSetting/DisplayUserGpgInformation/DisplayUserGpgInformation.js +3 -4
- package/src/react-extension/components/UserSetting/DisplayUserGpgInformation/DisplayUserGpgInformation.test.stories.js +1 -1
- package/src/react-extension/components/UserSetting/DisplayUserProfile/DisplayUserProfile.test.stories.js +1 -1
- package/src/react-extension/components/UserSetting/DisplayUserSettingsWorkspace/DisplayUserSettingsWorkspace.js +16 -2
- package/src/react-extension/components/UserSetting/DisplayUserSettingsWorkspaceBreadcrumb/DisplayUserSettingsWorkspaceBreadcrumb.js +2 -1
- package/src/react-extension/components/UserSetting/DisplayUserTheme/DisplayUserTheme.js +2 -4
- package/src/react-extension/components/UserSetting/DisplayUserTheme/DisplayUserTheme.test.stories.js +18 -12
- package/src/react-extension/components/UserSetting/EditUserProfile/EditUserProfile.js +2 -4
- package/src/react-extension/components/UserSetting/EditUserProfile/EditUserProfile.test.stories.js +17 -3
- package/src/react-extension/components/UserSetting/NavigateIntoUserSettingsWorkspace/NavigateIntoUserSettingsWorkspace.js +29 -0
- package/src/react-extension/components/UserSetting/NavigateIntoUserSettingsWorkspace/NavigateIntoUserSettingsWorkspace.test.stories.js +5 -0
- package/src/react-extension/components/UserSetting/UploadUserProfileAvatar/UploadUserProfileAvatar.js +2 -4
- package/src/react-extension/components/UserSetting/UploadUserProfileAvatar/UploadUserProfileAvatar.test.stories.js +10 -3
- package/src/react-extension/contexts/AccountRecoveryUserContext.js +223 -0
- package/src/react-extension/contexts/AccountRecoveryUserContext.test.data.js +55 -0
- package/src/react-extension/contexts/AccountRecoveryUserContext.test.js +58 -0
- package/src/react-extension/contexts/ActionFeedbackContext.test.data.js +28 -0
- package/src/react-extension/contexts/AdminAccountRecoveryContext.js +211 -0
- package/src/react-extension/contexts/AdminAccountRecoveryContext.test.data.js +66 -0
- package/src/react-extension/contexts/AdminAccountRecoveryContext.test.js +229 -0
- package/src/react-extension/contexts/AdministrationWorkspaceContext.js +27 -0
- package/src/react-extension/contexts/ApiAccountRecoveryContext.js +148 -0
- package/src/react-extension/contexts/ApiRecoverContext.js +14 -15
- package/src/react-extension/contexts/ApiSetupContext.js +8 -8
- package/src/react-extension/contexts/Authentication/AuthenticationAccountRecoveryContext.js +282 -0
- package/src/react-extension/contexts/Authentication/AuthenticationAccountRecoveryContext.test.data.js +51 -0
- package/src/react-extension/contexts/Authentication/AuthenticationAccountRecoveryContext.test.js +231 -0
- package/src/react-extension/contexts/Authentication/AuthenticationLoginContext.js +264 -0
- package/src/react-extension/contexts/Authentication/AuthenticationLoginContext.test.data.js +79 -0
- package/src/react-extension/contexts/Authentication/AuthenticationLoginContext.test.js +234 -0
- package/src/react-extension/contexts/Authentication/AuthenticationRecoverContext.js +325 -0
- package/src/react-extension/contexts/Authentication/AuthenticationRecoverContext.test.data.js +63 -0
- package/src/react-extension/contexts/Authentication/AuthenticationRecoverContext.test.js +379 -0
- package/src/react-extension/contexts/Authentication/AuthenticationSetupContext.js +339 -0
- package/src/react-extension/contexts/Authentication/AuthenticationSetupContext.test.data.js +63 -0
- package/src/react-extension/contexts/Authentication/AuthenticationSetupContext.test.js +364 -0
- package/src/react-extension/contexts/DialogContext.test.data.js +27 -0
- package/src/react-extension/contexts/ExtAppContext.js +0 -6
- package/src/react-extension/contexts/ExtAppContext.test.data.js +50 -0
- package/src/react-extension/contexts/NavigationContext.js +26 -2
- package/src/react-extension/contexts/ResourceWorkspaceContext.js +9 -2
- package/src/react-extension/contexts/ResourceWorkspaceContext.test.page.js +10 -1
- package/src/react-extension/contexts/UserSettingsContext.js +1 -2
- package/src/react-extension/contexts/UserWorkspaceContext.js +35 -10
- package/src/react-extension/contexts/UserWorkspaceContext.test.data.js +13 -0
- package/src/react-extension/contexts/UserWorkspaceContext.test.page.js +6 -1
- package/src/react-extension/contexts/WorkflowContext.js +89 -0
- package/src/react-extension/contexts/WorkflowContext.test.data.js +27 -0
- package/src/react-extension/lib/Error/GpgKeyError.js +22 -0
- package/src/react-extension/lib/Error/InvalidMasterPasswordError.js +23 -0
- package/src/react-extension/lib/Error/ServerKeyChangedError.js +22 -0
- package/src/react-extension/test/fixture/Settings/siteSettings.js +4 -0
- package/src/react-extension/test/fixture/Settings/userSettings.js +1 -1
- package/src/react-extension/test/mock/MockPort.js +2 -2
- package/src/react-extension/test/mock/MockStorage.js +0 -2
- package/src/react-extension/test/mock/components/Internationalisation/MockTranslationProvider.js +2 -1
- package/src/react-extension/test/mock/components/React/mockSetState.js +22 -0
- package/src/react-quickaccess/ExtQuickAccess.js +10 -1
- package/src/react-quickaccess/components/FilterResourcesByGroupPage/FilterResourcesByGroupPage.js +1 -1
- package/src/react-quickaccess/components/FilterResourcesByGroupPage/FilterResourcesByGroupPage.test.stories.js +6 -10
- package/src/react-quickaccess/components/FilterResourcesByTagPage/FilterResourcesByTagPage.test.stories.js +6 -10
- package/src/react-quickaccess/components/LoginPage/LoginPage.js +2 -6
- package/src/react-quickaccess/components/LoginPage/LoginPage.test.stories.js +1 -0
- package/src/react-quickaccess/components/PassphraseDialog/PassphraseDialog.js +17 -3
- package/src/react-quickaccess/components/PassphraseDialog/PassphraseDialog.test.stories.js +5 -3
- package/src/react-quickaccess/components/ResourceAutoSave/SaveResource.js +31 -2
- package/src/react-quickaccess/components/ResourceAutoSave/SaveResource.test.data.js +1 -1
- package/src/react-quickaccess/components/ResourceCreatePage/ResourceCreatePage.js +32 -3
- package/src/react-quickaccess/components/ResourceCreatePage/ResourceCreatePage.test.data.js +6 -3
- package/src/react-quickaccess/components/ResourceCreatePage/ResourceCreatePage.test.js +29 -19
- package/src/react-quickaccess/components/ResourceViewPage/ResourceViewPage.test.data.js +2 -0
- package/src/react-web-integration/components/AskInFormMenuDisplay/AskInFormMenuDisplay.test.stories.js +12 -9
- package/src/react-web-integration/components/DisplayInFormMenu/DisplayInFormMenu.js +1 -1
- package/src/react-web-integration/components/DisplayInFormMenu/DisplayInFormMenu.test.stories.js +127 -164
- package/src/react-web-integration/lib/Dom/DomUtils.js +23 -1
- package/src/react-web-integration/lib/InForm/InFormFieldSelector.js +7 -1
- package/src/react-web-integration/lib/InForm/InFormManager.js +24 -14
- package/src/react-web-integration/lib/InForm/InformManager.test.data.js +80 -2
- package/src/react-web-integration/lib/InForm/InformManager.test.js +147 -7
- package/src/react-web-integration/lib/InForm/InformManager.test.page.js +16 -2
- package/src/shared/lib/Error/EntityValidationError.js +81 -0
- package/src/shared/lib/apiClient/apiClient.test.js +1 -1
- package/src/shared/services/accountRecovery/ApiAppAccountRecoveryUserService.js +78 -0
- package/src/shared/services/accountRecovery/ExtAppAccountRecoveryUserService.js +24 -0
- package/test/jest.setup.js +8 -0
- package/src/react-extension/components/Authentication/AskForAuthenticationHelp/AskForAuthenticationHelp.js +0 -97
- package/src/react-extension/components/Authentication/AskForAuthenticationHelp/AskForAuthenticationHelp.test.stories.js +0 -33
- package/src/react-extension/components/Authentication/CheckPassphrase/GenerateKeyOnPassphraseLostSecondaryAction.js +0 -41
- package/src/react-extension/components/Authentication/CheckPassphrase/HelpOnPassphraseLostSecondaryAction.js +0 -41
- package/src/react-extension/components/Authentication/CheckPassphrase/HelpOnPrivateKeyLostSecondaryAction.js +0 -41
- package/src/react-extension/components/Authentication/ImportGpgKey/GenerateKeySecondaryAction.js +0 -40
- package/src/react-extension/components/Authentication/IntroduceSetupExtension/IntroduceSetupExtension.test.data.js +0 -11
- package/src/react-extension/components/Authentication/IntroduceSetupExtension/IntroduceSetupExtension.test.stories.js +0 -34
- package/src/react-extension/components/AuthenticationLogin/DisplayLoginError/DisplayLoginError.js +0 -87
- package/src/react-extension/components/AuthenticationLogin/DisplayLoginError/DisplayLoginError.test.stories.js +0 -33
- package/src/react-extension/components/AuthenticationLogin/DisplayLoginInProgress/DisplayLoginInProgress.js +0 -49
- package/src/react-extension/components/AuthenticationLogin/DisplayLoginInProgress/DisplayLoginProgress.test.stories.js +0 -33
- package/src/react-extension/components/AuthenticationLogin/OrchestrateLogin/OrchestrateLogin.js +0 -102
- package/src/react-extension/components/Internationalisation/ChangeLocale/ChangeExtAuthenticationLocale.js +0 -63
- package/src/react-extension/contexts/AuthenticationContext.js +0 -467
- package/src/react-extension/contexts/AuthenticationContext.test.data.js +0 -15
- package/src/react-extension/contexts/AuthenticationContext.test.js +0 -252
|
@@ -14,7 +14,8 @@
|
|
|
14
14
|
import React, {Component} from "react";
|
|
15
15
|
import PropTypes from "prop-types";
|
|
16
16
|
import DialogCloseButton from "../../Dialog/DialogCloseButton/DialogCloseButton";
|
|
17
|
-
import {
|
|
17
|
+
import {withTranslation, Trans} from "react-i18next";
|
|
18
|
+
import Icon from "../../../Common/Icons/Icon";
|
|
18
19
|
|
|
19
20
|
class NotifyError extends Component {
|
|
20
21
|
/**
|
|
@@ -23,15 +24,23 @@ class NotifyError extends Component {
|
|
|
23
24
|
*/
|
|
24
25
|
constructor(props) {
|
|
25
26
|
super(props);
|
|
27
|
+
this.state = this.defaultState;
|
|
26
28
|
this.bindCallbacks();
|
|
27
29
|
}
|
|
28
30
|
|
|
31
|
+
get defaultState() {
|
|
32
|
+
return {
|
|
33
|
+
showErrorDetails: false
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
|
|
29
37
|
/**
|
|
30
38
|
* Bind callbacks methods
|
|
31
39
|
* @return {void}
|
|
32
40
|
*/
|
|
33
41
|
bindCallbacks() {
|
|
34
42
|
this.handleKeyDown = this.handleKeyDown.bind(this);
|
|
43
|
+
this.handleErrorDetailsToggle = this.handleErrorDetailsToggle.bind(this);
|
|
35
44
|
}
|
|
36
45
|
|
|
37
46
|
/**
|
|
@@ -57,8 +66,9 @@ class NotifyError extends Component {
|
|
|
57
66
|
* @returns {String|string} return default if string is empty
|
|
58
67
|
*/
|
|
59
68
|
getTitle() {
|
|
60
|
-
|
|
61
|
-
|
|
69
|
+
return this.props.title
|
|
70
|
+
? this.props.title
|
|
71
|
+
: this.translate("There was an unexpected error...");
|
|
62
72
|
}
|
|
63
73
|
|
|
64
74
|
/**
|
|
@@ -66,8 +76,7 @@ class NotifyError extends Component {
|
|
|
66
76
|
* @returns {String|string} return default if string is empty
|
|
67
77
|
*/
|
|
68
78
|
getMessage() {
|
|
69
|
-
|
|
70
|
-
return contextMessage || this.props.message || NotifyError.defaultProps.message;
|
|
79
|
+
return this.props.error.message;
|
|
71
80
|
}
|
|
72
81
|
|
|
73
82
|
/**
|
|
@@ -83,6 +92,40 @@ class NotifyError extends Component {
|
|
|
83
92
|
}
|
|
84
93
|
}
|
|
85
94
|
|
|
95
|
+
/**
|
|
96
|
+
* Handle toggling display of error details.
|
|
97
|
+
*/
|
|
98
|
+
handleErrorDetailsToggle() {
|
|
99
|
+
this.setState({
|
|
100
|
+
showErrorDetails: !this.state.showErrorDetails
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
/**
|
|
105
|
+
* Returns true if the error embed some details to be displayed.
|
|
106
|
+
* It is the case when the field `details` is set or if there is a field `data` with an non-empty `body` property.
|
|
107
|
+
*/
|
|
108
|
+
get hasErrorDetails() {
|
|
109
|
+
return Boolean(this.props.error.data?.body) || Boolean(this.props.error.details);
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
/**
|
|
113
|
+
* Get the translate function
|
|
114
|
+
* @returns {function(...[*]=)}
|
|
115
|
+
*/
|
|
116
|
+
get translate() {
|
|
117
|
+
return this.props.t;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
/**
|
|
121
|
+
* Format the error details as a string.
|
|
122
|
+
* @returns {string}
|
|
123
|
+
*/
|
|
124
|
+
formatErrors() {
|
|
125
|
+
const errorMessage = this.props.error?.details || this.props.error?.data;
|
|
126
|
+
return JSON.stringify(errorMessage, null, 4);
|
|
127
|
+
}
|
|
128
|
+
|
|
86
129
|
/**
|
|
87
130
|
* Render the component
|
|
88
131
|
* @return {JSX}
|
|
@@ -98,6 +141,31 @@ class NotifyError extends Component {
|
|
|
98
141
|
<div className="dialog-content">
|
|
99
142
|
<div className="form-content">
|
|
100
143
|
<p>{this.getMessage()}</p>
|
|
144
|
+
{this.hasErrorDetails &&
|
|
145
|
+
<div className="accordion error-details">
|
|
146
|
+
<div className="accordion-header">
|
|
147
|
+
<a onClick={this.handleErrorDetailsToggle}>
|
|
148
|
+
<Trans>Error details</Trans>
|
|
149
|
+
<Icon baseline={true} name={this.state.showErrorDetails ? "caret-up" : "caret-down"} />
|
|
150
|
+
</a>
|
|
151
|
+
</div>
|
|
152
|
+
{this.state.showErrorDetails &&
|
|
153
|
+
<div className="accordion-content">
|
|
154
|
+
<div className="input text">
|
|
155
|
+
<label
|
|
156
|
+
htmlFor="js_field_debug"
|
|
157
|
+
className="visuallyhidden">
|
|
158
|
+
<Trans>Error details</Trans>
|
|
159
|
+
</label>
|
|
160
|
+
<textarea
|
|
161
|
+
id="js_field_debug"
|
|
162
|
+
defaultValue={this.formatErrors()}
|
|
163
|
+
readOnly />
|
|
164
|
+
</div>
|
|
165
|
+
</div>
|
|
166
|
+
}
|
|
167
|
+
</div>
|
|
168
|
+
}
|
|
101
169
|
</div>
|
|
102
170
|
<div className="submit-wrapper clearfix">
|
|
103
171
|
<a className="button primary warning" onClick={this.props.onClose}>Ok</a>
|
|
@@ -109,16 +177,11 @@ class NotifyError extends Component {
|
|
|
109
177
|
}
|
|
110
178
|
}
|
|
111
179
|
|
|
112
|
-
NotifyError.defaultProps = {
|
|
113
|
-
title: "Oops something went wrong.",
|
|
114
|
-
message: "An internal error occurred, please try again later."
|
|
115
|
-
};
|
|
116
|
-
|
|
117
180
|
NotifyError.propTypes = {
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
181
|
+
title: PropTypes.string, // The title to display in the header
|
|
182
|
+
error: PropTypes.object.isRequired, // The error object to handle in the dialog
|
|
183
|
+
onClose: PropTypes.func, // The close callback
|
|
184
|
+
t: PropTypes.func // the translation function
|
|
122
185
|
};
|
|
123
186
|
|
|
124
|
-
export default
|
|
187
|
+
export default withTranslation("common")(NotifyError);
|
|
@@ -127,6 +127,13 @@ class Icon extends Component {
|
|
|
127
127
|
<svg width="512" height="512" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg">
|
|
128
128
|
<path fill="currentColor" d="M464 64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm0 48v40.805c-22.422 18.259-58.168 46.651-134.587 106.49-16.841 13.247-50.201 45.072-73.413 44.701-23.208.375-56.579-31.459-73.413-44.701C106.18 199.465 70.425 171.067 48 152.805V112h416zM48 400V214.398c22.914 18.251 55.409 43.862 104.938 82.646 21.857 17.205 60.134 55.186 103.062 54.955 42.717.231 80.509-37.199 103.053-54.947 49.528-38.783 82.032-64.401 104.947-82.653V400H48z"></path> </svg>
|
|
129
129
|
}
|
|
130
|
+
{this.props.name === 'exclamation' &&
|
|
131
|
+
<svg width="13" height="13" viewBox="0 0 13 13" xmlns="http://www.w3.org/2000/svg">
|
|
132
|
+
<path d="M6.83979 0.680176C5.62146 0.680176 4.43043 1.04145 3.41743 1.71832C2.40442 2.39519 1.61486 3.35726 1.14863 4.48285C0.682391 5.60844 0.560356 6.84701 0.798041 8.04193C1.03573 9.23685 1.62258 10.3345 2.48408 11.196C3.34557 12.0575 4.44296 12.6442 5.63788 12.8818C6.83281 13.1195 8.07162 12.9975 9.19721 12.5312C10.3228 12.065 11.2847 11.2755 11.9616 10.2625C12.6385 9.24951 12.9997 8.05848 12.9997 6.84015C12.9997 5.20642 12.3507 3.6396 11.1955 2.48438C10.0403 1.32915 8.47352 0.680176 6.83979 0.680176Z" fill="currentColor"/>
|
|
133
|
+
<path d="M6.8398 2.95996C6.96762 2.96106 7.09393 2.98819 7.2109 3.03974C7.32786 3.09129 7.43293 3.16617 7.51998 3.25977C7.60703 3.35337 7.67406 3.46372 7.717 3.58411C7.75994 3.7045 7.7779 3.83241 7.76974 3.95996L7.56978 7.34992C7.56978 7.54353 7.49282 7.72925 7.35592 7.86615C7.21902 8.00306 7.03341 8.07996 6.8398 8.07996C6.6462 8.07996 6.46059 8.00306 6.32369 7.86615C6.18679 7.72925 6.10982 7.54353 6.10982 7.34992L5.90987 3.95996C5.90022 3.83208 5.91704 3.70356 5.95943 3.58252C6.00183 3.46148 6.06887 3.35051 6.15621 3.2566C6.24355 3.16268 6.34935 3.08786 6.467 3.03681C6.58465 2.98576 6.71155 2.9596 6.8398 2.95996Z" fill="white"/>
|
|
134
|
+
<path d="M6.83978 10.71C6.642 10.71 6.44856 10.6513 6.28411 10.5414C6.11966 10.4315 5.99164 10.2754 5.91595 10.0926C5.84026 9.9099 5.82048 9.70885 5.85906 9.51487C5.89765 9.32089 5.99289 9.1427 6.13275 9.00285C6.2726 8.86299 6.45073 8.76775 6.64471 8.72917C6.83869 8.69058 7.03962 8.71042 7.22235 8.78611C7.40507 8.8618 7.56144 8.98995 7.67132 9.1544C7.7812 9.31885 7.83978 9.51222 7.83978 9.71C7.83978 9.97522 7.73434 10.2296 7.54681 10.4171C7.35927 10.6046 7.10499 10.71 6.83978 10.71Z" fill="white"/>
|
|
135
|
+
</svg>
|
|
136
|
+
}
|
|
130
137
|
{this.props.name === 'eye-open' &&
|
|
131
138
|
<svg width="1792" height="1792" viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg">
|
|
132
139
|
<path d="M1664 960q-152-236-381-353 61 104 61 225 0 185-131.5 316.5t-316.5 131.5-316.5-131.5-131.5-316.5q0-121 61-225-229 117-381 353 133 205 333.5 326.5t434.5 121.5 434.5-121.5 333.5-326.5zm-720-384q0-20-14-34t-34-14q-125 0-214.5 89.5t-89.5 214.5q0 20 14 34t34 14 34-14 14-34q0-86 61-147t147-61q20 0 34-14t14-34zm848 384q0 34-20 69-140 230-376.5 368.5t-499.5 138.5-499.5-139-376.5-368q-20-35-20-69t20-69q140-229 376.5-368t499.5-139 499.5 139 376.5 368q20 35 20 69z"/>
|
|
@@ -75,6 +75,7 @@ class TranslationProvider extends Component {
|
|
|
75
75
|
keySeparator: false, // don't use the dot for separator of nested json object
|
|
76
76
|
nsSeparator: false, // allowed ':' in key to avoid namespace separator
|
|
77
77
|
debug: false,
|
|
78
|
+
compatibilityJSON: "v3"
|
|
78
79
|
});
|
|
79
80
|
this.setState({ready: true});
|
|
80
81
|
}
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
* @since 2.13.0
|
|
13
13
|
*/
|
|
14
14
|
import React from "react";
|
|
15
|
+
import PropTypes from "prop-types";
|
|
15
16
|
import {Trans} from "react-i18next";
|
|
16
17
|
|
|
17
18
|
/**
|
|
@@ -24,15 +25,27 @@ class LoadingSpinner extends React.Component {
|
|
|
24
25
|
render() {
|
|
25
26
|
return (
|
|
26
27
|
<div className="login-processing">
|
|
28
|
+
<h1>{this.props.title}</h1>
|
|
27
29
|
<div className="processing-wrapper">
|
|
28
|
-
<div
|
|
30
|
+
<div className="processing">
|
|
29
31
|
</div>
|
|
30
32
|
</div>
|
|
31
|
-
<h1><Trans>Please wait...</Trans></h1>
|
|
32
33
|
</div>
|
|
33
34
|
);
|
|
34
35
|
}
|
|
35
36
|
}
|
|
36
37
|
|
|
38
|
+
LoadingSpinner.propTypes = {
|
|
39
|
+
title: PropTypes.oneOfType([
|
|
40
|
+
PropTypes.arrayOf(PropTypes.node),
|
|
41
|
+
PropTypes.node,
|
|
42
|
+
PropTypes.string,
|
|
43
|
+
])
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
LoadingSpinner.defaultProps = {
|
|
47
|
+
title: <Trans>Please wait...</Trans>
|
|
48
|
+
};
|
|
49
|
+
|
|
37
50
|
export default LoadingSpinner;
|
|
38
51
|
|
package/src/react-extension/components/Common/Loading/LoadingSpinner/LoadingSpinner.test.stories.js
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Passbolt ~ Open source password manager for teams
|
|
3
|
+
* Copyright (c) 2022 Passbolt SA (https://www.passbolt.com)
|
|
4
|
+
*
|
|
5
|
+
* Licensed under GNU Affero General Public License version 3 of the or any later version.
|
|
6
|
+
* For full copyright and license information, please see the LICENSE.txt
|
|
7
|
+
* Redistributions of files must retain the above copyright notice.
|
|
8
|
+
*
|
|
9
|
+
* @copyright Copyright (c) 2022 Passbolt SA (https://www.passbolt.com)
|
|
10
|
+
* @license https://opensource.org/licenses/AGPL-3.0 AGPL License
|
|
11
|
+
* @link https://www.passbolt.com Passbolt(tm)
|
|
12
|
+
* @since 3.6.0
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
import React from "react";
|
|
16
|
+
import {MemoryRouter, Route} from "react-router-dom";
|
|
17
|
+
import MockTranslationProvider from "../../../../test/mock/components/Internationalisation/MockTranslationProvider";
|
|
18
|
+
import LoadingSpinner from "./LoadingSpinner";
|
|
19
|
+
|
|
20
|
+
export default {
|
|
21
|
+
title: 'Passbolt/Common/LoadingSpinner',
|
|
22
|
+
component: LoadingSpinner
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
const Template = args =>
|
|
26
|
+
<MockTranslationProvider>
|
|
27
|
+
<div id="container" className="container page login">
|
|
28
|
+
<div className="content">
|
|
29
|
+
<div className="login-form">
|
|
30
|
+
<MemoryRouter initialEntries={['/']}>
|
|
31
|
+
<Route component={routerProps => <LoadingSpinner {...args} {...routerProps}/>}/>
|
|
32
|
+
</MemoryRouter>
|
|
33
|
+
</div>
|
|
34
|
+
</div>
|
|
35
|
+
</div>
|
|
36
|
+
</MockTranslationProvider>;
|
|
37
|
+
|
|
38
|
+
const defaultParameters = {
|
|
39
|
+
css: "ext_authentication"
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
export const PleaseWait = Template.bind({});
|
|
43
|
+
PleaseWait.parameters = defaultParameters;
|
|
44
|
+
|
|
45
|
+
export const RequestAccountRecovery = Template.bind({});
|
|
46
|
+
RequestAccountRecovery.args = {
|
|
47
|
+
title: "Requesting administrator approval. Please wait."
|
|
48
|
+
};
|
|
49
|
+
RequestAccountRecovery.parameters = defaultParameters;
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Passbolt ~ Open source password manager for teams
|
|
3
|
+
* Copyright (c) 2022 Passbolt SA (https://www.passbolt.com)
|
|
4
|
+
*
|
|
5
|
+
* Licensed under GNU Affero General Public License version 3 of the or any later version.
|
|
6
|
+
* For full copyright and license information, please see the LICENSE.txt
|
|
7
|
+
* Redistributions of files must retain the above copyright notice.
|
|
8
|
+
*
|
|
9
|
+
* @copyright Copyright (c) 2022 Passbolt SA (https://www.passbolt.com)
|
|
10
|
+
* @license https://opensource.org/licenses/AGPL-3.0 AGPL License
|
|
11
|
+
* @link https://www.passbolt.com Passbolt(tm)
|
|
12
|
+
* @since 3.6.0
|
|
13
|
+
*/
|
|
14
|
+
import React, {Component} from "react";
|
|
15
|
+
import {Redirect, withRouter} from "react-router-dom";
|
|
16
|
+
import PropTypes from "prop-types";
|
|
17
|
+
|
|
18
|
+
// The default path to redirect the users to.
|
|
19
|
+
const DEFAULT_PATH_NAME = "/app/passwords";
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Handle the application first load route.
|
|
23
|
+
* When the iframe is loaded the url is pointing to the html document and the path the user is aiming is provided in
|
|
24
|
+
* the url query parameters (pathname). Parse the url, and redirect the user to the right place.
|
|
25
|
+
*/
|
|
26
|
+
class HandleApplicationFirstLoadRoute extends Component {
|
|
27
|
+
/**
|
|
28
|
+
* Get the pathname from the url parameter.
|
|
29
|
+
* By instance ?pathname=/app/users
|
|
30
|
+
* @returns {string} If the pathname does not validate return an empty string.
|
|
31
|
+
*/
|
|
32
|
+
getPathnameFromUrlParameter() {
|
|
33
|
+
const pathname = new URLSearchParams(this.props.location.search).get("pathname");
|
|
34
|
+
|
|
35
|
+
if (!this.validatePathname(pathname)) {
|
|
36
|
+
return "";
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
return pathname;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Validate a pathname.
|
|
44
|
+
* A valid pathname contains only alphabetical, numerical, / and - characters
|
|
45
|
+
* @param {string} pathname The pathname to test
|
|
46
|
+
* @returns {boolean}
|
|
47
|
+
*/
|
|
48
|
+
validatePathname(pathname) {
|
|
49
|
+
return /^[A-Za-z0-9\-\/]*$/.test(pathname);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* The first uri to redirect too.
|
|
54
|
+
* @returns {string}
|
|
55
|
+
*/
|
|
56
|
+
get pathnameToRedirectTo() {
|
|
57
|
+
const pathname = this.getPathnameFromUrlParameter();
|
|
58
|
+
if (!pathname) {
|
|
59
|
+
return DEFAULT_PATH_NAME;
|
|
60
|
+
}
|
|
61
|
+
return pathname;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* Render the component
|
|
66
|
+
* @return {JSX}
|
|
67
|
+
*/
|
|
68
|
+
render() {
|
|
69
|
+
return <Redirect to={this.pathnameToRedirectTo}/>;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
HandleApplicationFirstLoadRoute.propTypes = {
|
|
74
|
+
location: PropTypes.object // From router HOC
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
export default withRouter(HandleApplicationFirstLoadRoute);
|
|
@@ -13,60 +13,28 @@
|
|
|
13
13
|
*/
|
|
14
14
|
import React, {Component} from "react";
|
|
15
15
|
import {Redirect, withRouter} from "react-router-dom";
|
|
16
|
-
import PropTypes from "prop-types";
|
|
17
16
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
* Get the pathname from the url parameter.
|
|
21
|
-
* By instance ?pathname=/app/users
|
|
22
|
-
*
|
|
23
|
-
* @returns {string}
|
|
24
|
-
*/
|
|
25
|
-
getPathnameFromUrlParameter() {
|
|
26
|
-
const pathname = new URLSearchParams(this.props.location.search).get("pathname");
|
|
27
|
-
|
|
28
|
-
if (!this.validatePathname(pathname)) {
|
|
29
|
-
return "";
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
return pathname;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
/**
|
|
36
|
-
* Validate a pathname.
|
|
37
|
-
* A valid pathname contains only alphabetical, numerical, / and - characters
|
|
38
|
-
* @param {string} pathname
|
|
39
|
-
* @returns {boolean}
|
|
40
|
-
*/
|
|
41
|
-
validatePathname(pathname) {
|
|
42
|
-
return /^[A-Za-z0-9\-\/]*$/.test(pathname);
|
|
43
|
-
}
|
|
17
|
+
// The default path to redirect the users to.
|
|
18
|
+
const DEFAULT_PATH_NAME = "/app/passwords";
|
|
44
19
|
|
|
20
|
+
/**
|
|
21
|
+
* Handle the route fallback.
|
|
22
|
+
*
|
|
23
|
+
* @todo 404 management
|
|
24
|
+
*
|
|
25
|
+
* Historically this component was handling the application first load route, the logic has been moved in the HandleApplicationFirstLoad component.
|
|
26
|
+
*
|
|
27
|
+
* This component was by default redirecting the user to passwords workspace, to not introduce a side effect that we don't
|
|
28
|
+
* measure, keep the previous default behavior. Later this behavior should be replaced by a 404.
|
|
29
|
+
*/
|
|
30
|
+
class HandleRouteFallback extends Component {
|
|
45
31
|
/**
|
|
46
32
|
* Render the component
|
|
47
33
|
* @return {JSX}
|
|
48
34
|
*/
|
|
49
35
|
render() {
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
return (
|
|
53
|
-
<>
|
|
54
|
-
{pathname &&
|
|
55
|
-
<Redirect to={pathname}/>
|
|
56
|
-
}
|
|
57
|
-
{!pathname &&
|
|
58
|
-
<Redirect to="/app/passwords"/>
|
|
59
|
-
}
|
|
60
|
-
</>
|
|
61
|
-
);
|
|
36
|
+
return <Redirect to={DEFAULT_PATH_NAME}/>;
|
|
62
37
|
}
|
|
63
38
|
}
|
|
64
39
|
|
|
65
|
-
HandleRouteFallback.propTypes = {
|
|
66
|
-
// Match, location and history props are injected by the withRouter decoration call.
|
|
67
|
-
match: PropTypes.object,
|
|
68
|
-
location: PropTypes.object,
|
|
69
|
-
history: PropTypes.object
|
|
70
|
-
};
|
|
71
|
-
|
|
72
40
|
export default withRouter(HandleRouteFallback);
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Passbolt ~ Open source password manager for teams
|
|
3
|
+
* Copyright (c) 2022 Passbolt SA (https://www.passbolt.com)
|
|
4
|
+
*
|
|
5
|
+
* Licensed under GNU Affero General Public License version 3 of the or any later version.
|
|
6
|
+
* For full copyright and license information, please see the LICENSE.txt
|
|
7
|
+
* Redistributions of files must retain the above copyright notice.
|
|
8
|
+
*
|
|
9
|
+
* @copyright Copyright (c) 2022 Passbolt SA (https://www.passbolt.com)
|
|
10
|
+
* @license https://opensource.org/licenses/AGPL-3.0 AGPL License
|
|
11
|
+
* @link https://www.passbolt.com Passbolt(tm)
|
|
12
|
+
* @since 3.6.0
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
import React from "react";
|
|
16
|
+
import {withWorkflow} from "../../../../contexts/WorkflowContext";
|
|
17
|
+
import PropTypes from "prop-types";
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* This component acts as an anchor for the different project workflows.
|
|
22
|
+
*/
|
|
23
|
+
class ManageWorkflows extends React.Component {
|
|
24
|
+
/**
|
|
25
|
+
* Default constructor
|
|
26
|
+
* @param props The component props
|
|
27
|
+
*/
|
|
28
|
+
constructor(props) {
|
|
29
|
+
super(props);
|
|
30
|
+
this.bindCallback();
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Bind class methods callback
|
|
35
|
+
*/
|
|
36
|
+
bindCallback() {
|
|
37
|
+
this.stop = this.stop.bind(this);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Removes the index-th workflow
|
|
42
|
+
*/
|
|
43
|
+
async stop(index) {
|
|
44
|
+
this.props.workflowContext.stop(index);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Renders the component
|
|
49
|
+
* @returns {JSX.Element}
|
|
50
|
+
*/
|
|
51
|
+
render() {
|
|
52
|
+
return (
|
|
53
|
+
<>
|
|
54
|
+
{
|
|
55
|
+
this.props.workflowContext.workflows.map(({key, Workflow, workflowProps}) =>
|
|
56
|
+
<Workflow
|
|
57
|
+
key={key}
|
|
58
|
+
onStop={ () => this.stop(key)}
|
|
59
|
+
{...workflowProps} />)
|
|
60
|
+
}
|
|
61
|
+
{this.props.children}
|
|
62
|
+
</>
|
|
63
|
+
);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
ManageWorkflows.propTypes = {
|
|
68
|
+
workflowContext: PropTypes.any,
|
|
69
|
+
children: PropTypes.any
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
export default withWorkflow(ManageWorkflows);
|
|
@@ -34,20 +34,27 @@ class InsertAppIframe extends Component {
|
|
|
34
34
|
* @returns {void}
|
|
35
35
|
*/
|
|
36
36
|
loadAppIframe() {
|
|
37
|
-
const
|
|
38
|
-
|
|
39
|
-
|
|
37
|
+
const url = new URL(`${this.props.browserExtensionUrl}data/passbolt-iframe-app.html`);
|
|
38
|
+
url.searchParams.append("passbolt", "passbolt-iframe-app");
|
|
39
|
+
|
|
40
|
+
// If the user aims to a location, extract it and add it as parameter of the iframe url.
|
|
41
|
+
const pathname = this.getPagePathname();
|
|
42
|
+
if (pathname && pathname !== "/") {
|
|
43
|
+
url.searchParams.append("pathname", pathname);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
this.iframeRef.current.contentWindow.location = url.toString();
|
|
40
47
|
}
|
|
41
48
|
|
|
42
49
|
/**
|
|
43
50
|
* Get the pathname from url.
|
|
44
51
|
* By instance ?pathname=/app/users
|
|
45
52
|
*
|
|
46
|
-
* @returns {string}
|
|
53
|
+
* @returns {string|null} Return null if the pathname doesn't validate
|
|
47
54
|
*/
|
|
48
55
|
getPagePathname() {
|
|
49
56
|
if (!this.validatePagePathname()) {
|
|
50
|
-
return
|
|
57
|
+
return null;
|
|
51
58
|
}
|
|
52
59
|
|
|
53
60
|
return this.props.location.pathname;
|
|
@@ -56,7 +63,6 @@ class InsertAppIframe extends Component {
|
|
|
56
63
|
/**
|
|
57
64
|
* Validate a pathname.
|
|
58
65
|
* A valid pathname contains only alphabetical, numerical, / and - characters
|
|
59
|
-
* @param {string} pathname
|
|
60
66
|
* @returns {boolean}
|
|
61
67
|
*/
|
|
62
68
|
validatePagePathname() {
|
|
@@ -373,11 +373,9 @@ class CreateResource extends Component {
|
|
|
373
373
|
*/
|
|
374
374
|
handleError(error) {
|
|
375
375
|
const errorDialogProps = {
|
|
376
|
-
|
|
377
|
-
message: error.message
|
|
376
|
+
error: error
|
|
378
377
|
};
|
|
379
|
-
this.props.
|
|
380
|
-
this.props.dialogContext.open(NotifyError);
|
|
378
|
+
this.props.dialogContext.open(NotifyError, errorDialogProps);
|
|
381
379
|
}
|
|
382
380
|
|
|
383
381
|
/**
|
|
@@ -31,6 +31,8 @@ describe("See the Create Resource", () => {
|
|
|
31
31
|
let page; // The page to test against
|
|
32
32
|
const context = defaultAppContext(); // The applicative context
|
|
33
33
|
const props = defaultProps(); // The props to pass
|
|
34
|
+
props.onClose = jest.fn();
|
|
35
|
+
props.dialogContext.open = jest.fn();
|
|
34
36
|
const resourceCreateDialogProps = {
|
|
35
37
|
folderParentId: null
|
|
36
38
|
};
|
|
@@ -47,6 +49,7 @@ describe("See the Create Resource", () => {
|
|
|
47
49
|
});
|
|
48
50
|
|
|
49
51
|
it('matches the styleguide', () => {
|
|
52
|
+
expect.assertions(18);
|
|
50
53
|
// Dialog title exists and correct
|
|
51
54
|
expect(page.passwordCreate.exists()).toBeTruthy();
|
|
52
55
|
expect(page.title.header.textContent).toBe("Create a password");
|
|
@@ -89,6 +92,7 @@ describe("See the Create Resource", () => {
|
|
|
89
92
|
});
|
|
90
93
|
|
|
91
94
|
it('generates password when clicking on the generate button.', async() => {
|
|
95
|
+
expect.assertions(2);
|
|
92
96
|
page.passwordCreate.focusInput(page.passwordCreate.password);
|
|
93
97
|
await page.passwordCreate.click(page.passwordCreate.passwordGenerateButton);
|
|
94
98
|
expect(page.passwordCreate.complexityText.textContent).not.toBe("Complexity: n/aEntropy: NaN bits");
|
|
@@ -96,6 +100,7 @@ describe("See the Create Resource", () => {
|
|
|
96
100
|
});
|
|
97
101
|
|
|
98
102
|
it('views password when clicking on the view button.', async() => {
|
|
103
|
+
expect.assertions(6);
|
|
99
104
|
const passwordValue = "secret-decrypted";
|
|
100
105
|
page.passwordCreate.fillInput(page.passwordCreate.password, passwordValue);
|
|
101
106
|
// View password
|
|
@@ -114,6 +119,7 @@ describe("See the Create Resource", () => {
|
|
|
114
119
|
});
|
|
115
120
|
|
|
116
121
|
it('requests the addon to create a resource with encrypted description when clicking on the submit button.', async() => {
|
|
122
|
+
expect.assertions(7);
|
|
117
123
|
expect(page.passwordCreate.exists()).toBeTruthy();
|
|
118
124
|
const createdResourceId = "f2b4047d-ab6d-4430-a1e2-3ab04a2f4fb9";
|
|
119
125
|
// create password
|
|
@@ -156,6 +162,7 @@ describe("See the Create Resource", () => {
|
|
|
156
162
|
});
|
|
157
163
|
|
|
158
164
|
it('requests the addon to create a resource with non encrypted description when clicking on the submit button.', async() => {
|
|
165
|
+
expect.assertions(7);
|
|
159
166
|
expect(page.passwordCreate.exists()).toBeTruthy();
|
|
160
167
|
const createdResourceId = "f2b4047d-ab6d-4430-a1e2-3ab04a2f4fb9";
|
|
161
168
|
// create password
|
|
@@ -201,6 +208,7 @@ describe("See the Create Resource", () => {
|
|
|
201
208
|
});
|
|
202
209
|
|
|
203
210
|
it('As LU I shouldn’t be able to submit the form if there is an invalid field', async() => {
|
|
211
|
+
expect.assertions(3);
|
|
204
212
|
expect(page.passwordCreate.exists()).toBeTruthy();
|
|
205
213
|
await page.passwordCreate.click(page.passwordCreate.saveButton);
|
|
206
214
|
|
|
@@ -210,6 +218,7 @@ describe("See the Create Resource", () => {
|
|
|
210
218
|
});
|
|
211
219
|
|
|
212
220
|
it('As LU I can stop createing a password by clicking on the cancel button', async() => {
|
|
221
|
+
expect.assertions(2);
|
|
213
222
|
expect(page.passwordCreate.exists()).toBeTruthy();
|
|
214
223
|
await page.passwordCreate.click(page.passwordCreate.cancelButton);
|
|
215
224
|
expect(props.onClose).toBeCalled();
|
|
@@ -242,40 +251,46 @@ describe("See the Create Resource", () => {
|
|
|
242
251
|
});
|
|
243
252
|
|
|
244
253
|
it('As LU I can stop createing a password by closing the dialog', async() => {
|
|
254
|
+
expect.assertions(2);
|
|
245
255
|
expect(page.passwordCreate.exists()).toBeTruthy();
|
|
246
256
|
await page.passwordCreate.click(page.passwordCreate.dialogClose);
|
|
247
257
|
expect(props.onClose).toBeCalled();
|
|
248
258
|
});
|
|
249
259
|
|
|
250
260
|
it('As LU I can stop adding a password with the keyboard (escape)', async() => {
|
|
261
|
+
expect.assertions(2);
|
|
251
262
|
expect(page.passwordCreate.exists()).toBeTruthy();
|
|
252
263
|
await page.passwordCreate.escapeKey(page.passwordCreate.dialogClose);
|
|
253
264
|
expect(props.onClose).toBeCalled();
|
|
254
265
|
});
|
|
255
266
|
|
|
256
267
|
it('As LU I should see an error dialog if the submit operation fails for an unexpected reason', async() => {
|
|
268
|
+
expect.assertions(1);
|
|
257
269
|
// Mock the request function to make it return an error.
|
|
258
270
|
page.passwordCreate.fillInput(page.passwordCreate.name, "name");
|
|
259
271
|
page.passwordCreate.fillInput(page.passwordCreate.password, "password");
|
|
260
272
|
|
|
273
|
+
const error = new PassboltApiFetchError("Jest simulate API error.");
|
|
261
274
|
jest.spyOn(context.port, 'request').mockImplementationOnce(() => {
|
|
262
|
-
throw
|
|
275
|
+
throw error;
|
|
263
276
|
});
|
|
264
277
|
jest.spyOn(props.dialogContext, 'open').mockImplementationOnce(jest.fn);
|
|
265
278
|
|
|
266
279
|
await page.passwordCreate.click(page.passwordCreate.saveButton);
|
|
267
280
|
|
|
268
281
|
// Throw general error message
|
|
269
|
-
expect(props.dialogContext.open).toHaveBeenCalledWith(NotifyError);
|
|
282
|
+
expect(props.dialogContext.open).toHaveBeenCalledWith(NotifyError, {error: error});
|
|
270
283
|
});
|
|
271
284
|
|
|
272
285
|
it('As LU I should access to the password generator dialog', async() => {
|
|
286
|
+
expect.assertions(1);
|
|
273
287
|
jest.spyOn(props.dialogContext, 'open').mockImplementationOnce(jest.fn);
|
|
274
288
|
await page.passwordCreate.openPasswordGenerator();
|
|
275
289
|
expect(props.dialogContext.open).toBeCalled();
|
|
276
290
|
});
|
|
277
291
|
|
|
278
292
|
it('As LU I should access to the password generator dialog', async() => {
|
|
293
|
+
expect.assertions(1);
|
|
279
294
|
await page.passwordCreate.openPasswordGenerator();
|
|
280
295
|
expect(page.passwordCreate.passwordGeneratorDialog).not.toBeNull();
|
|
281
296
|
});
|