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
|
@@ -29,6 +29,7 @@ describe("See the Edit User Group", () => {
|
|
|
29
29
|
let page; // The page to test against
|
|
30
30
|
const context = defaultAppContext(); // The applicative context
|
|
31
31
|
const props = defaultProps(); // The props to pass
|
|
32
|
+
props.onClose = jest.fn();
|
|
32
33
|
|
|
33
34
|
const mockContextRequest = (context, implementation) => jest.spyOn(context.port, 'request').mockImplementation(implementation);
|
|
34
35
|
|
|
@@ -42,6 +43,7 @@ describe("See the Edit User Group", () => {
|
|
|
42
43
|
|
|
43
44
|
|
|
44
45
|
it('As AD I should change the name of the group', async() => {
|
|
46
|
+
expect.assertions(3);
|
|
45
47
|
expect(page.groupName).toBe("Leadership team");
|
|
46
48
|
|
|
47
49
|
const newGroupName = "A different group name";
|
|
@@ -55,6 +57,7 @@ describe("See the Edit User Group", () => {
|
|
|
55
57
|
});
|
|
56
58
|
|
|
57
59
|
it('As AD I should change the role of a group member', async() => {
|
|
60
|
+
expect.assertions(3);
|
|
58
61
|
expect(page.groupMember(2).role).toBe("Group Manager");
|
|
59
62
|
|
|
60
63
|
const newRole = "Member";
|
|
@@ -68,6 +71,7 @@ describe("See the Edit User Group", () => {
|
|
|
68
71
|
});
|
|
69
72
|
|
|
70
73
|
it('As AD I should remove a user from a group', async() => {
|
|
74
|
+
expect.assertions(3);
|
|
71
75
|
expect(page.groupMembersCount).toBe(2);
|
|
72
76
|
|
|
73
77
|
await page.removeGroupMember(1);
|
|
@@ -79,11 +83,13 @@ describe("See the Edit User Group", () => {
|
|
|
79
83
|
});
|
|
80
84
|
|
|
81
85
|
it('As non-GM I should not add a new user to the group', async() => {
|
|
86
|
+
expect.assertions(1);
|
|
82
87
|
// The current logged in user is not GM
|
|
83
88
|
expect(page.canAdd).toBeFalsy();
|
|
84
89
|
});
|
|
85
90
|
|
|
86
91
|
it('AS GM I should add a new user to the group', async() => {
|
|
92
|
+
expect.assertions(5);
|
|
87
93
|
// Set the context in order the logged in user to be a group manager
|
|
88
94
|
const propsWithGroupManager = defaultProps();
|
|
89
95
|
propsWithGroupManager.userWorkspaceContext.groupToEdit.groups_users[0].user_id = context.loggedInUser.id;
|
|
@@ -121,21 +127,25 @@ describe("See the Edit User Group", () => {
|
|
|
121
127
|
});
|
|
122
128
|
|
|
123
129
|
it('As AD I can stop editing a group by clicking on the cancel button', async() => {
|
|
130
|
+
expect.assertions(1);
|
|
124
131
|
await page.cancel();
|
|
125
132
|
expect(props.onClose).toBeCalled();
|
|
126
133
|
});
|
|
127
134
|
|
|
128
135
|
it('As AD I can stop editing a group by closing the dialog', async() => {
|
|
136
|
+
expect.assertions(1);
|
|
129
137
|
await page.close();
|
|
130
138
|
expect(props.onClose).toBeCalled();
|
|
131
139
|
});
|
|
132
140
|
|
|
133
141
|
|
|
134
142
|
it('As AD I should see an error dialog if the submit operation fails for an unexpected reason', async() => {
|
|
135
|
-
|
|
143
|
+
expect.assertions(1);
|
|
144
|
+
const error = new Error("Some error");
|
|
145
|
+
mockContextRequest(context, () => Promise.reject(error));
|
|
136
146
|
jest.spyOn(props.dialogContext, 'open').mockImplementation(() => {});
|
|
137
147
|
await page.save();
|
|
138
|
-
expect(props.dialogContext.open).toHaveBeenCalledWith(NotifyError);
|
|
148
|
+
expect(props.dialogContext.open).toHaveBeenCalledWith(NotifyError, {error: error});
|
|
139
149
|
});
|
|
140
150
|
|
|
141
151
|
it('As AD I should see an error message if the group name already exists', async() => {
|
|
@@ -157,6 +167,7 @@ describe("See the Edit User Group", () => {
|
|
|
157
167
|
});
|
|
158
168
|
|
|
159
169
|
it('As AD I should see an error message when the editing group has no group manager anymore', async() => {
|
|
170
|
+
expect.assertions(1);
|
|
160
171
|
const newRole = "Member";
|
|
161
172
|
page.groupMember(1).role = newRole;
|
|
162
173
|
page.groupMember(2).role = newRole;
|
package/src/react-extension/components/UserSetting/ChangeUserPassphrase/ConfirmPassphrase.js
CHANGED
|
@@ -176,7 +176,7 @@ class ConfirmPassphrase extends React.Component {
|
|
|
176
176
|
if (error.name === "InvalidMasterPasswordError") {
|
|
177
177
|
this.setState({passphraseError: this.translate("The passphrase is invalid.")});
|
|
178
178
|
} else {
|
|
179
|
-
const ErrorDialogProps = {
|
|
179
|
+
const ErrorDialogProps = {error: error};
|
|
180
180
|
this.props.dialogContext.open(NotifyError, ErrorDialogProps);
|
|
181
181
|
}
|
|
182
182
|
}
|
package/src/react-extension/components/UserSetting/ChangeUserPassphrase/ConfirmPassphrase.test.js
CHANGED
|
@@ -42,6 +42,7 @@ describe("As LU I should see the user confirm passphrase page", () => {
|
|
|
42
42
|
});
|
|
43
43
|
|
|
44
44
|
it('As LU I should be able to confirm my passphrase', async() => {
|
|
45
|
+
expect.assertions(3);
|
|
45
46
|
expect(page.exists()).toBeTruthy();
|
|
46
47
|
expect(page.title).toBe('Please enter your passphrase to continue');
|
|
47
48
|
|
|
@@ -55,6 +56,7 @@ describe("As LU I should see the user confirm passphrase page", () => {
|
|
|
55
56
|
});
|
|
56
57
|
|
|
57
58
|
it('As LU I should be able to cancel the confirmation of my passphrase', async() => {
|
|
59
|
+
expect.assertions(1);
|
|
58
60
|
await page.cancel();
|
|
59
61
|
expect(props.userSettingsContext.onGoToIntroductionPassphraseRequested).toHaveBeenCalled();
|
|
60
62
|
});
|
|
@@ -76,7 +78,8 @@ describe("As LU I should see the user confirm passphrase page", () => {
|
|
|
76
78
|
});
|
|
77
79
|
});
|
|
78
80
|
|
|
79
|
-
it(
|
|
81
|
+
it("As LU I shouldn't be able to submit the form if there is an invalid field", async() => {
|
|
82
|
+
expect.assertions(4);
|
|
80
83
|
expect(page.verifyButton.getAttribute("disabled")).not.toBeNull();
|
|
81
84
|
expect(page.verifyButton.className).toBe('button primary disabled medium');
|
|
82
85
|
|
|
@@ -94,7 +97,7 @@ describe("As LU I should see the user confirm passphrase page", () => {
|
|
|
94
97
|
jest.spyOn(props.userSettingsContext, 'onCheckProvidePassphraseRequested').mockImplementationOnce(mockReject(new PassboltApiFetchError("Jest simulate API error.")));
|
|
95
98
|
|
|
96
99
|
await page.verify();
|
|
97
|
-
const ErrorDialogProps = {
|
|
100
|
+
const ErrorDialogProps = {error: new Error("Jest simulate API error.")};
|
|
98
101
|
expect(props.dialogContext.open).toHaveBeenCalledWith(NotifyError, ErrorDialogProps);
|
|
99
102
|
});
|
|
100
103
|
});
|
package/src/react-extension/components/UserSetting/ChangeUserPassphrase/EnterNewPassphrase.js
CHANGED
|
@@ -252,7 +252,7 @@ class EnterNewPassphrase extends React.Component {
|
|
|
252
252
|
*/
|
|
253
253
|
async onGpgKeyGeneratedFailure(error) {
|
|
254
254
|
await this.toggleProcessing();
|
|
255
|
-
const ErrorDialogProps = {
|
|
255
|
+
const ErrorDialogProps = {error: error};
|
|
256
256
|
this.props.dialogContext.open(NotifyError, ErrorDialogProps);
|
|
257
257
|
}
|
|
258
258
|
|
package/src/react-extension/components/UserSetting/ChangeUserPassphrase/EnterNewPassphrase.test.js
CHANGED
|
@@ -43,18 +43,21 @@ describe("As LU I should see the user confirm passphrase page", () => {
|
|
|
43
43
|
});
|
|
44
44
|
|
|
45
45
|
it('As LU I should be able to enter my new passphrase', async() => {
|
|
46
|
+
expect.assertions(1);
|
|
46
47
|
const expectedPassphrase = 'La belle vie';
|
|
47
48
|
await page.insertPassphrase(expectedPassphrase);
|
|
48
49
|
expect(page.passphrase).toBe(expectedPassphrase);
|
|
49
50
|
});
|
|
50
51
|
|
|
51
52
|
it('As LU I should initially see the passphrase I typed as obfuscated', async() => {
|
|
53
|
+
expect.assertions(1);
|
|
52
54
|
const passphrase = 'La belle vie';
|
|
53
55
|
await page.insertPassphrase(passphrase);
|
|
54
56
|
expect(page.isObfuscated).toBeTruthy();
|
|
55
57
|
});
|
|
56
58
|
|
|
57
59
|
it('As LU I should be able to see the non-obfuscate passphrase I typed', async() => {
|
|
60
|
+
expect.assertions(1);
|
|
58
61
|
const passphrase = 'La belle vie';
|
|
59
62
|
await page.insertPassphrase(passphrase);
|
|
60
63
|
await page.toggleObfuscate();
|
|
@@ -92,18 +95,21 @@ describe("As LU I should see the user confirm passphrase page", () => {
|
|
|
92
95
|
});
|
|
93
96
|
|
|
94
97
|
it('As LU I should not go to the next step if the passphrase is not strong enough', async() => {
|
|
98
|
+
expect.assertions(1);
|
|
95
99
|
const veryWeakPassphrase = 'blabla';
|
|
96
100
|
await page.insertPassphrase(veryWeakPassphrase);
|
|
97
101
|
expect(page.canUpdate).toBeFalsy();
|
|
98
102
|
});
|
|
99
103
|
|
|
100
104
|
it('As LU I should not go to the next step if the passphrase is empty', async() => {
|
|
105
|
+
expect.assertions(1);
|
|
101
106
|
const veryWeakPassphrase = '';
|
|
102
107
|
await page.insertPassphrase(veryWeakPassphrase);
|
|
103
108
|
expect(page.canUpdate).toBeFalsy();
|
|
104
109
|
});
|
|
105
110
|
|
|
106
111
|
it('As LU I should go to the next step if the passphrase is strong enough', async() => {
|
|
112
|
+
expect.assertions(1);
|
|
107
113
|
const veryStrongPassphrase = 'abcdefgh1234=5ABCD===';
|
|
108
114
|
await page.insertPassphrase(veryStrongPassphrase);
|
|
109
115
|
expect(page.canUpdate).toBeTruthy();
|
|
@@ -111,6 +117,7 @@ describe("As LU I should see the user confirm passphrase page", () => {
|
|
|
111
117
|
|
|
112
118
|
|
|
113
119
|
it('As LU I cannot update the form fields while submitting the form', async() => {
|
|
120
|
+
expect.assertions(3);
|
|
114
121
|
const veryStrongPassphrase = 'abcdefgh1234=5ABCD===';
|
|
115
122
|
await page.insertPassphrase(veryStrongPassphrase);
|
|
116
123
|
|
|
@@ -126,6 +133,7 @@ describe("As LU I should see the user confirm passphrase page", () => {
|
|
|
126
133
|
});
|
|
127
134
|
|
|
128
135
|
it('As LU I should see a processing feedback while submitting the form', async() => {
|
|
136
|
+
expect.assertions(2);
|
|
129
137
|
const veryStrongPassphrase = 'abcdefgh1234=5ABCD===';
|
|
130
138
|
await page.insertPassphrase(veryStrongPassphrase);
|
|
131
139
|
|
|
@@ -140,11 +148,13 @@ describe("As LU I should see the user confirm passphrase page", () => {
|
|
|
140
148
|
});
|
|
141
149
|
|
|
142
150
|
it('As LU I should be able to cancel the confirmation of my passphrase', async() => {
|
|
151
|
+
expect.assertions(1);
|
|
143
152
|
await page.cancel();
|
|
144
153
|
expect(props.userSettingsContext.onGoToIntroductionPassphraseRequested).toHaveBeenCalled();
|
|
145
154
|
});
|
|
146
155
|
|
|
147
156
|
it('As LU I should see an error dialog if there is an api error', async() => {
|
|
157
|
+
expect.assertions(3);
|
|
148
158
|
expect(page.updateButton.getAttribute("disabled")).not.toBeNull();
|
|
149
159
|
expect(page.updateButton.className).toBe('button primary disabled medium');
|
|
150
160
|
|
|
@@ -154,7 +164,7 @@ describe("As LU I should see the user confirm passphrase page", () => {
|
|
|
154
164
|
jest.spyOn(props.userSettingsContext, 'onUpdatePassphraseRequested').mockImplementationOnce(mockReject(new PassboltApiFetchError("Jest simulate API error.")));
|
|
155
165
|
|
|
156
166
|
await page.update();
|
|
157
|
-
const ErrorDialogProps = {
|
|
167
|
+
const ErrorDialogProps = {error: new Error("Jest simulate API error.")};
|
|
158
168
|
expect(props.dialogContext.open).toHaveBeenCalledWith(NotifyError, ErrorDialogProps);
|
|
159
169
|
});
|
|
160
170
|
});
|
|
@@ -218,7 +218,7 @@ class ChangeUserSecurityToken extends Component {
|
|
|
218
218
|
*/
|
|
219
219
|
async onSaveFailure(error) {
|
|
220
220
|
await this.toggleProcessing();
|
|
221
|
-
const ErrorDialogProps = {
|
|
221
|
+
const ErrorDialogProps = {error: error};
|
|
222
222
|
this.props.dialogContext.open(NotifyError, ErrorDialogProps);
|
|
223
223
|
}
|
|
224
224
|
|
|
@@ -20,6 +20,7 @@ describe("Display change user security token", () => {
|
|
|
20
20
|
});
|
|
21
21
|
|
|
22
22
|
it('As LU I should be able to choose the color of my security token', async() => {
|
|
23
|
+
expect.assertions(1);
|
|
23
24
|
const colorToPick = '#009688';
|
|
24
25
|
const expectedSelectedColor = 'rgb(0, 150, 136)';
|
|
25
26
|
await page.selectColor(colorToPick);
|
|
@@ -27,17 +28,20 @@ describe("Display change user security token", () => {
|
|
|
27
28
|
});
|
|
28
29
|
|
|
29
30
|
it('As LU I should be able to choose the code of my security token', async() => {
|
|
31
|
+
expect.assertions(1);
|
|
30
32
|
const expectedSelectedCode = '';
|
|
31
33
|
await page.fillCode(expectedSelectedCode);
|
|
32
34
|
expect(page.code).toBe(expectedSelectedCode);
|
|
33
35
|
});
|
|
34
36
|
|
|
35
37
|
it('As LU I should be able to randomize the code of my security token', async() => {
|
|
38
|
+
expect.assertions(1);
|
|
36
39
|
await page.randomize();
|
|
37
40
|
expect(page.code.length).toBe(3);
|
|
38
41
|
});
|
|
39
42
|
|
|
40
43
|
it('As LU I cannot update the form fields while submitting the form', async() => {
|
|
44
|
+
expect.assertions(4);
|
|
41
45
|
let saveResolve = null;
|
|
42
46
|
const requestMockImpl = jest.fn(() => new Promise(resolve => saveResolve = resolve));
|
|
43
47
|
jest.spyOn(props.userSettingsContext, 'onUpdateSecurityTokenRequested').mockImplementationOnce(requestMockImpl);
|
|
@@ -51,6 +55,7 @@ describe("Display change user security token", () => {
|
|
|
51
55
|
});
|
|
52
56
|
|
|
53
57
|
it('As LU I should see a processing feedback while submitting the form', async() => {
|
|
58
|
+
expect.assertions(5);
|
|
54
59
|
let saveResolve = null;
|
|
55
60
|
const requestMockImpl = jest.fn(() => new Promise(resolve => saveResolve = resolve));
|
|
56
61
|
jest.spyOn(props.userSettingsContext, 'onUpdateSecurityTokenRequested').mockImplementationOnce(requestMockImpl);
|
|
@@ -65,6 +70,7 @@ describe("Display change user security token", () => {
|
|
|
65
70
|
});
|
|
66
71
|
|
|
67
72
|
it('As LU I should see an error if the security token is empty after submitting the form (first validation)', async() => {
|
|
73
|
+
expect.assertions(1);
|
|
68
74
|
const emptyCode = ' ';
|
|
69
75
|
await page.fillCode(emptyCode);
|
|
70
76
|
await page.save();
|
|
@@ -72,6 +78,7 @@ describe("Display change user security token", () => {
|
|
|
72
78
|
});
|
|
73
79
|
|
|
74
80
|
it('As LU I should see an error if the security token is not 3 length after submitting the form (first validation)', async() => {
|
|
81
|
+
expect.assertions(1);
|
|
75
82
|
const notGoodLengthCode = 'AB';
|
|
76
83
|
await page.fillCode(notGoodLengthCode);
|
|
77
84
|
await page.save();
|
|
@@ -79,12 +86,13 @@ describe("Display change user security token", () => {
|
|
|
79
86
|
});
|
|
80
87
|
|
|
81
88
|
it('As LU I should see an error if the submission failed for an unexpected reason', async() => {
|
|
82
|
-
|
|
83
|
-
|
|
89
|
+
expect.assertions(1);
|
|
90
|
+
const error = new Error('Some error');
|
|
91
|
+
jest.spyOn(props.userSettingsContext, 'onUpdateSecurityTokenRequested').mockImplementationOnce(() => Promise.reject(error));
|
|
84
92
|
jest.spyOn(props.dialogContext, 'open').mockImplementationOnce(jest.fn());
|
|
85
93
|
await page.fillCode('ABC');
|
|
86
94
|
await page.save();
|
|
87
|
-
expect(props.dialogContext.open).toBeCalledWith(NotifyError,
|
|
95
|
+
expect(props.dialogContext.open).toBeCalledWith(NotifyError, {error: error});
|
|
88
96
|
});
|
|
89
97
|
});
|
|
90
98
|
|
|
@@ -21,7 +21,11 @@ const context = {
|
|
|
21
21
|
const Template = args =>
|
|
22
22
|
<AppContext.Provider value={context}>
|
|
23
23
|
<MemoryRouter initialEntries={['/']}>
|
|
24
|
-
<
|
|
24
|
+
<div className="page settings">
|
|
25
|
+
<div className="profile-choose-security-token">
|
|
26
|
+
<Route component={routerProps => <ChangeUserSecurityToken {...args} {...routerProps}/>}></Route>
|
|
27
|
+
</div>
|
|
28
|
+
</div>
|
|
25
29
|
</MemoryRouter>
|
|
26
30
|
</AppContext.Provider>;
|
|
27
31
|
|
|
@@ -0,0 +1,240 @@
|
|
|
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, {Component} from "react";
|
|
16
|
+
import {Route} from "react-router-dom";
|
|
17
|
+
import PropTypes from "prop-types";
|
|
18
|
+
import {Trans, withTranslation} from "react-i18next";
|
|
19
|
+
import UserAvatar from "../../Common/Avatar/UserAvatar";
|
|
20
|
+
import {withAppContext} from "../../../contexts/AppContext";
|
|
21
|
+
import {DateTime} from "luxon";
|
|
22
|
+
import {withAccountRecovery} from "../../../contexts/AccountRecoveryUserContext";
|
|
23
|
+
import Icon from "../../Common/Icons/Icon";
|
|
24
|
+
import {withDialog} from "../../../contexts/DialogContext";
|
|
25
|
+
import ManageAccountRecoveryUserSettings from "../../AccountRecovery/ManageAccountRecoveryUserSettings/ManageAccountRecoveryUserSettings";
|
|
26
|
+
import HandleAccountRecoveryUserSettingsRoute from "../../AccountRecovery/HandleAccountRecoveryUserSettingsRoute/HandleAccountRecoveryUserSettingsRoute";
|
|
27
|
+
|
|
28
|
+
class DisplayAccountRecoveryUserSettings extends Component {
|
|
29
|
+
constructor(props) {
|
|
30
|
+
super(props);
|
|
31
|
+
this.bindCallbacks();
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* ComponentDidMount
|
|
36
|
+
* Invoked immediately after component is inserted into the tree
|
|
37
|
+
* @return {void}
|
|
38
|
+
*/
|
|
39
|
+
async componentDidMount() {
|
|
40
|
+
await this.props.accountRecoveryContext.findAccountRecoveryPolicy();
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Bind callbacks methods
|
|
45
|
+
*/
|
|
46
|
+
bindCallbacks() {
|
|
47
|
+
this.handleReviewClick = this.handleReviewClick.bind(this);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* Is the account recovery approved?
|
|
52
|
+
* @returns {boolean}
|
|
53
|
+
*/
|
|
54
|
+
hasNotApprovedStatus() {
|
|
55
|
+
return this.props.accountRecoveryContext.status !== "approved";
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* get fingerprint
|
|
60
|
+
* @param fingerprint
|
|
61
|
+
* @returns string
|
|
62
|
+
*/
|
|
63
|
+
formatFingerprint(fingerprint) {
|
|
64
|
+
if (!fingerprint) {
|
|
65
|
+
return "";
|
|
66
|
+
}
|
|
67
|
+
return fingerprint.toUpperCase().replace(/.{4}(?=.)/g, "$& ");
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* Format date in time ago
|
|
72
|
+
* @param {string} date The date to format
|
|
73
|
+
* @return {string}
|
|
74
|
+
*/
|
|
75
|
+
formatDateTimeAgo(date) {
|
|
76
|
+
const dateTime = DateTime.fromISO(date);
|
|
77
|
+
const duration = dateTime.diffNow().toMillis();
|
|
78
|
+
return duration > -1000 && duration < 0 ? this.translate('Just now') : dateTime.toRelative({locale: this.props.context.locale});
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* Returns true if user has rejected the account recovery policy
|
|
83
|
+
* @return {bool}
|
|
84
|
+
*/
|
|
85
|
+
isStatusApproved() {
|
|
86
|
+
return this.props.accountRecoveryContext.status === "approved";
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* Handle user clicking on review click.
|
|
91
|
+
*/
|
|
92
|
+
handleReviewClick() {
|
|
93
|
+
this.props.dialogContext.open(ManageAccountRecoveryUserSettings, {
|
|
94
|
+
organizationPolicy: this.props.accountRecoveryContext.getOrganizationPolicy()
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* Get the user requesting the current user to subscribe to the account recovery program.
|
|
100
|
+
* @returns {object|void}
|
|
101
|
+
*/
|
|
102
|
+
get requestor() {
|
|
103
|
+
return this.props.accountRecoveryContext.getRequestor();
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
* Get the user requesting the current user to subscribe to the account recovery program.
|
|
108
|
+
* @returns {string|void}
|
|
109
|
+
*/
|
|
110
|
+
get requestorFingerprint() {
|
|
111
|
+
const requestor = this.requestor;
|
|
112
|
+
return requestor && requestor.gpgkey.fingerprint;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
/**
|
|
116
|
+
* Get the user name requesting the current user to subscribe to the account recovery program.
|
|
117
|
+
* @returns {string}
|
|
118
|
+
*/
|
|
119
|
+
get requestorName() {
|
|
120
|
+
const requestor = this.requestor;
|
|
121
|
+
return requestor && `${requestor.profile.first_name} ${requestor.profile.last_name}`;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
/**
|
|
125
|
+
* Get the time at when the setup of the account recovery user setting policy has been requested.
|
|
126
|
+
* @returns {string}
|
|
127
|
+
*/
|
|
128
|
+
get requestedDate() {
|
|
129
|
+
return this.props.accountRecoveryContext.getRequestedDate();
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
get isAccountRecoveryFeatureEnabled() {
|
|
133
|
+
return this.policy !== "disabled";
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
/**
|
|
137
|
+
* Return the organization policy type.
|
|
138
|
+
* @returns {string|void}
|
|
139
|
+
*/
|
|
140
|
+
get policy() {
|
|
141
|
+
return this.props.accountRecoveryContext.getPolicy();
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
/**
|
|
145
|
+
* Get the translate function
|
|
146
|
+
* @returns {function(...[*]=)}
|
|
147
|
+
*/
|
|
148
|
+
get translate() {
|
|
149
|
+
return this.props.t;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
/**
|
|
153
|
+
* Render the component
|
|
154
|
+
* @returns {JSX}
|
|
155
|
+
*/
|
|
156
|
+
render() {
|
|
157
|
+
return (
|
|
158
|
+
<>
|
|
159
|
+
{this.props.context.loggedInUser && this.props.accountRecoveryContext.getOrganizationPolicy() &&
|
|
160
|
+
<Route exact path="/app/settings/account-recovery/edit" component={HandleAccountRecoveryUserSettingsRoute}/>
|
|
161
|
+
}
|
|
162
|
+
<div className="grid grid-responsive-12">
|
|
163
|
+
<div className="row">
|
|
164
|
+
{this.isAccountRecoveryFeatureEnabled &&
|
|
165
|
+
<div className="col8 account-recovery-profile">
|
|
166
|
+
<h3><Trans>Account Recovery</Trans></h3>
|
|
167
|
+
<p>
|
|
168
|
+
<Trans>It is possible to share securely your recovery kit with the administrator.</Trans>
|
|
169
|
+
<Trans>They will be able to help you in case you lose it.</Trans>
|
|
170
|
+
<Trans>Otherwise, you may lose access to your data.</Trans>
|
|
171
|
+
</p>
|
|
172
|
+
<div className="account-recovery-status">
|
|
173
|
+
<div className="account-recovery-review">
|
|
174
|
+
<p className="status-wrapper">
|
|
175
|
+
<Trans>Status</Trans>:
|
|
176
|
+
<span className={`account-recovery-hints ${this.props.accountRecoveryContext.status}`}/>
|
|
177
|
+
<span className="status">{this.props.accountRecoveryContext.status}</span>
|
|
178
|
+
</p>
|
|
179
|
+
{this.hasNotApprovedStatus() && !this.isStatusApproved() &&
|
|
180
|
+
<button type='button' className="button primary" onClick={this.handleReviewClick}><Trans>Review</Trans></button>
|
|
181
|
+
}
|
|
182
|
+
</div>
|
|
183
|
+
{this.hasNotApprovedStatus() &&
|
|
184
|
+
<ul>
|
|
185
|
+
<li className="usercard-detailed-col-2">
|
|
186
|
+
<div className="content-wrapper">
|
|
187
|
+
<div className="content">
|
|
188
|
+
<div>
|
|
189
|
+
<span className="tooltip tooltip-bottom"
|
|
190
|
+
data-tooltip={this.formatFingerprint(this.requestorFingerprint)}>
|
|
191
|
+
<span className="name-with-tooltip">{`${this.requestorName} (${this.translate("admin")})`}</span>
|
|
192
|
+
</span>
|
|
193
|
+
|
|
194
|
+
<span className="name"><Trans>requested this operation</Trans></span>
|
|
195
|
+
</div>
|
|
196
|
+
<div className="subinfo light">{this.formatDateTimeAgo(this.requestedDate)}</div>
|
|
197
|
+
</div>
|
|
198
|
+
</div>
|
|
199
|
+
<UserAvatar user={this.requestor} baseUrl={this.props.context.userSettings.getTrustedDomain()}/>
|
|
200
|
+
</li>
|
|
201
|
+
</ul>
|
|
202
|
+
}
|
|
203
|
+
</div>
|
|
204
|
+
</div>
|
|
205
|
+
}
|
|
206
|
+
{!this.isAccountRecoveryFeatureEnabled &&
|
|
207
|
+
<div className="col8 account-recovery-profile">
|
|
208
|
+
<h3><Trans>Account Recovery</Trans></h3>
|
|
209
|
+
<h4><Trans>Sorry the account recovery feature is not enabled for this organization.</Trans></h4>
|
|
210
|
+
<p>
|
|
211
|
+
<Trans>Please contact your administrator to enable the account recovery feature.</Trans>
|
|
212
|
+
</p>
|
|
213
|
+
</div>
|
|
214
|
+
}
|
|
215
|
+
<div className="col4 last">
|
|
216
|
+
<div>
|
|
217
|
+
<h3><Trans>Need some help?</Trans></h3>
|
|
218
|
+
<p><Trans>For more information about account recovery, checkout the dedicated page on the help website.</Trans></p>
|
|
219
|
+
<a className="button" href="https://help.passbolt.com" target="_blank" rel="noopener noreferrer">
|
|
220
|
+
<Icon name="life-ring"/>
|
|
221
|
+
<span><Trans>Read documentation</Trans></span>
|
|
222
|
+
</a>
|
|
223
|
+
</div>
|
|
224
|
+
</div>
|
|
225
|
+
</div>
|
|
226
|
+
</div>
|
|
227
|
+
</>
|
|
228
|
+
);
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
DisplayAccountRecoveryUserSettings.propTypes = {
|
|
233
|
+
context: PropTypes.any, // The application context
|
|
234
|
+
accountRecoveryContext: PropTypes.any, // The account recovery context
|
|
235
|
+
requestor: PropTypes.any, // The admin user at the origin of the request
|
|
236
|
+
date: PropTypes.string, // The date of the request
|
|
237
|
+
t: PropTypes.func, // The translation function
|
|
238
|
+
dialogContext: PropTypes.object, // The dialog context
|
|
239
|
+
};
|
|
240
|
+
export default withAppContext(withAccountRecovery(withDialog(withTranslation('common')(DisplayAccountRecoveryUserSettings))));
|
|
@@ -0,0 +1,53 @@
|
|
|
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 {defaultAppContext} from "../../../contexts/ExtAppContext.test.data";
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Returns the default app context for the unit test
|
|
19
|
+
* @param appContext An existing app context
|
|
20
|
+
* @returns {any}
|
|
21
|
+
*/
|
|
22
|
+
export function defaultProps(data = {}) {
|
|
23
|
+
const defaultProps = {
|
|
24
|
+
context: defaultAppContext(data?.context),
|
|
25
|
+
dialogContext: {
|
|
26
|
+
open: jest.fn()
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
delete data.context;
|
|
30
|
+
return Object.assign(defaultProps, data);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export const mockedData = {
|
|
34
|
+
policy: {
|
|
35
|
+
policy: "opt-out"
|
|
36
|
+
},
|
|
37
|
+
creator: {
|
|
38
|
+
profile: {
|
|
39
|
+
first_name: "Ada",
|
|
40
|
+
last_name: "Lovelace"
|
|
41
|
+
},
|
|
42
|
+
gpgkey: {
|
|
43
|
+
fingerprint: "848E95CC7493129AD862583129B81CA8936023DD"
|
|
44
|
+
},
|
|
45
|
+
},
|
|
46
|
+
modified: "2022-01-13T15:27:26.301Z"
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
export function getAccountRecoveryUserService(mockedData) {
|
|
50
|
+
return {
|
|
51
|
+
getOrganizationAccountRecoverySettings: () => mockedData
|
|
52
|
+
};
|
|
53
|
+
}
|