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
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Passbolt ~ Open source password manager for teams
|
|
3
|
+
* Copyright (c) Passbolt SARL (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) Passbolt SARL (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.4.0
|
|
13
|
+
*/
|
|
14
|
+
import {MemoryRouter, Route} from "react-router-dom";
|
|
15
|
+
import React from "react";
|
|
16
|
+
import DisplayUsers from "./DisplayUsers";
|
|
17
|
+
import {defaultAppContext, defaultProps, propsWithFirstUserAttentionRequired} from "./DisplayUsers.test.data";
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
export default {
|
|
21
|
+
title: 'Passbolt/User/DisplayUsers',
|
|
22
|
+
component: DisplayUsers
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
const Template = args =>
|
|
26
|
+
<MemoryRouter initialEntries={['/']}>
|
|
27
|
+
<div className="page">
|
|
28
|
+
<div className="panel">
|
|
29
|
+
<Route component={routerProps => <DisplayUsers {...args} {...routerProps}/>}></Route>
|
|
30
|
+
</div>
|
|
31
|
+
</div>
|
|
32
|
+
</MemoryRouter>;
|
|
33
|
+
|
|
34
|
+
export const Initial = Template.bind({});
|
|
35
|
+
Initial.args = Object.assign(defaultProps(), {context: defaultAppContext()});
|
|
36
|
+
|
|
37
|
+
export const AccountRecoveryPending = Template.bind({});
|
|
38
|
+
AccountRecoveryPending.args = Object.assign(propsWithFirstUserAttentionRequired(), {context: defaultAppContext()});
|
package/src/react-extension/components/User/DisplayUsersContextualMenu/DisplayUsersContextualMenu.js
CHANGED
|
@@ -23,6 +23,9 @@ import DeleteUserWithConflicts from "../DeleteUser/DeleteUserWithConflicts";
|
|
|
23
23
|
import DeleteUser from "../DeleteUser/DeleteUser";
|
|
24
24
|
import NotifyError from "../../Common/Error/NotifyError/NotifyError";
|
|
25
25
|
import {Trans, withTranslation} from "react-i18next";
|
|
26
|
+
import {withWorkflow} from "../../../contexts/WorkflowContext";
|
|
27
|
+
import HandleReviewAccountRecoveryRequestWorkflow
|
|
28
|
+
from "../../AccountRecovery/HandleReviewAccountRecoveryRequestWorkflow/HandleReviewAccountRecoveryRequestWorkflow";
|
|
26
29
|
|
|
27
30
|
class DisplayUsersContextualMenu extends React.Component {
|
|
28
31
|
/**
|
|
@@ -45,6 +48,7 @@ class DisplayUsersContextualMenu extends React.Component {
|
|
|
45
48
|
this.handleResendInviteClickEvent = this.handleResendInviteClickEvent.bind(this);
|
|
46
49
|
this.handleDeleteClickEvent = this.handleDeleteClickEvent.bind(this);
|
|
47
50
|
this.handleDisableMfaEvent = this.handleDisableMfaEvent.bind(this);
|
|
51
|
+
this.handleReviewRecoveryRequestClickEvent = this.handleReviewRecoveryRequestClickEvent.bind(this);
|
|
48
52
|
}
|
|
49
53
|
|
|
50
54
|
/**
|
|
@@ -109,7 +113,7 @@ class DisplayUsersContextualMenu extends React.Component {
|
|
|
109
113
|
*/
|
|
110
114
|
async handlePublicKeyCopy() {
|
|
111
115
|
const gpgkeyInfo = await this.props.context.port.request('passbolt.keyring.get-public-key-info-by-user', this.user.id);
|
|
112
|
-
await this.props.context.port.request("passbolt.clipboard.copy", gpgkeyInfo.
|
|
116
|
+
await this.props.context.port.request("passbolt.clipboard.copy", gpgkeyInfo.armored_key);
|
|
113
117
|
this.props.actionFeedbackContext.displaySuccess(this.translate("The public key has been copied to clipboard"));
|
|
114
118
|
this.props.hide();
|
|
115
119
|
}
|
|
@@ -180,17 +184,24 @@ class DisplayUsersContextualMenu extends React.Component {
|
|
|
180
184
|
this.props.dialogContext.open(DeleteUserWithConflicts);
|
|
181
185
|
}
|
|
182
186
|
|
|
187
|
+
/**
|
|
188
|
+
* Handle review recovery request click event
|
|
189
|
+
*/
|
|
190
|
+
handleReviewRecoveryRequestClickEvent() {
|
|
191
|
+
const accountRecoveryRequestId = this.user.pending_account_recovery_request.id;
|
|
192
|
+
this.props.workflowContext.start(HandleReviewAccountRecoveryRequestWorkflow, {accountRecoveryRequestId});
|
|
193
|
+
this.props.hide();
|
|
194
|
+
}
|
|
195
|
+
|
|
183
196
|
/**
|
|
184
197
|
* Display error dialog
|
|
185
198
|
* @param error
|
|
186
199
|
*/
|
|
187
200
|
handleError(error) {
|
|
188
201
|
const errorDialogProps = {
|
|
189
|
-
|
|
190
|
-
message: error.message
|
|
202
|
+
error: error
|
|
191
203
|
};
|
|
192
|
-
this.props.
|
|
193
|
-
this.props.dialogContext.open(NotifyError);
|
|
204
|
+
this.props.dialogContext.open(NotifyError, errorDialogProps);
|
|
194
205
|
}
|
|
195
206
|
|
|
196
207
|
/**
|
|
@@ -209,6 +220,13 @@ class DisplayUsersContextualMenu extends React.Component {
|
|
|
209
220
|
return this.isLoggedInUserAdmin();
|
|
210
221
|
}
|
|
211
222
|
|
|
223
|
+
/**
|
|
224
|
+
* Check if the user can use the review recovery request capability.
|
|
225
|
+
*/
|
|
226
|
+
canIReviewAccountRecoveryRequest() {
|
|
227
|
+
return this.props.context.siteSettings.canIUse("accountRecovery") && this.isLoggedInUserAdmin();
|
|
228
|
+
}
|
|
229
|
+
|
|
212
230
|
/**
|
|
213
231
|
* Can delete the user. A user cannot deleted its own account.
|
|
214
232
|
* @returns {boolean}
|
|
@@ -217,6 +235,14 @@ class DisplayUsersContextualMenu extends React.Component {
|
|
|
217
235
|
return this.props.context.loggedInUser.id !== this.user.id;
|
|
218
236
|
}
|
|
219
237
|
|
|
238
|
+
/**
|
|
239
|
+
* Has a pending account recovery for the user.
|
|
240
|
+
* @returns {boolean}
|
|
241
|
+
*/
|
|
242
|
+
hasPendingAccountRecoveryRequest() {
|
|
243
|
+
return this.user && Boolean(this.user.pending_account_recovery_request);
|
|
244
|
+
}
|
|
245
|
+
|
|
220
246
|
/**
|
|
221
247
|
* Can update the resource
|
|
222
248
|
* @returns {boolean}
|
|
@@ -256,12 +282,10 @@ class DisplayUsersContextualMenu extends React.Component {
|
|
|
256
282
|
*/
|
|
257
283
|
onResendInviteFailure(error) {
|
|
258
284
|
const errorDialogProps = {
|
|
259
|
-
|
|
260
|
-
message: error.message
|
|
285
|
+
error: error
|
|
261
286
|
};
|
|
262
287
|
this.props.hide();
|
|
263
|
-
this.props.
|
|
264
|
-
this.props.dialogContext.open(NotifyError);
|
|
288
|
+
this.props.dialogContext.open(NotifyError, errorDialogProps);
|
|
265
289
|
}
|
|
266
290
|
|
|
267
291
|
/**
|
|
@@ -372,6 +396,17 @@ class DisplayUsersContextualMenu extends React.Component {
|
|
|
372
396
|
</div>
|
|
373
397
|
</li>
|
|
374
398
|
}
|
|
399
|
+
{this.canIReviewAccountRecoveryRequest() &&
|
|
400
|
+
<li key="review-recovery-user" className="ready">
|
|
401
|
+
<div className="row">
|
|
402
|
+
<div className="main-cell-wrapper">
|
|
403
|
+
<div className="main-cell">
|
|
404
|
+
<a id="review-recovery" onClick={this.handleReviewRecoveryRequestClickEvent} className={`${!this.hasPendingAccountRecoveryRequest() ? "disabled" : ""}`}><span><Trans>Review recovery request</Trans></span></a>
|
|
405
|
+
</div>
|
|
406
|
+
</div>
|
|
407
|
+
</div>
|
|
408
|
+
</li>
|
|
409
|
+
}
|
|
375
410
|
</ContextualMenuWrapper>
|
|
376
411
|
);
|
|
377
412
|
}
|
|
@@ -382,11 +417,12 @@ DisplayUsersContextualMenu.propTypes = {
|
|
|
382
417
|
hide: PropTypes.func, // Hide the contextual menu
|
|
383
418
|
left: PropTypes.number, // left position in px of the page
|
|
384
419
|
top: PropTypes.number, // top position in px of the page
|
|
420
|
+
workflowContext: PropTypes.any, // the workflow context
|
|
385
421
|
dialogContext: PropTypes.any, // the dialog context
|
|
386
422
|
user: PropTypes.object, // user selected
|
|
387
423
|
actionFeedbackContext: PropTypes.any, // The action feedback context
|
|
388
424
|
t: PropTypes.func, // The translation function
|
|
389
425
|
};
|
|
390
426
|
|
|
391
|
-
export default withAppContext(withDialog(withActionFeedback(withTranslation('common')(DisplayUsersContextualMenu))));
|
|
427
|
+
export default withAppContext(withWorkflow(withDialog(withActionFeedback(withTranslation('common')(DisplayUsersContextualMenu)))));
|
|
392
428
|
|
|
@@ -12,14 +12,14 @@ export function defaultAppContext(appContext) {
|
|
|
12
12
|
canIUse: () => true
|
|
13
13
|
},
|
|
14
14
|
userSettings: {
|
|
15
|
-
getTrustedDomain: () =>
|
|
15
|
+
getTrustedDomain: () => (new URL(window.location.href)).origin
|
|
16
16
|
},
|
|
17
17
|
loggedInUser: {
|
|
18
18
|
role: {
|
|
19
19
|
name: 'admin'
|
|
20
20
|
}
|
|
21
21
|
},
|
|
22
|
-
setContext:
|
|
22
|
+
setContext: () => {}
|
|
23
23
|
};
|
|
24
24
|
return Object.assign(defaultAppContext, appContext || {});
|
|
25
25
|
}
|
|
@@ -67,12 +67,15 @@ export function contextWithoutDelete() {
|
|
|
67
67
|
export function defaultProps() {
|
|
68
68
|
return {
|
|
69
69
|
actionFeedbackContext: {
|
|
70
|
-
displaySuccess:
|
|
70
|
+
displaySuccess: () => {}
|
|
71
71
|
},
|
|
72
72
|
dialogContext: {
|
|
73
|
-
open:
|
|
73
|
+
open: () => {}
|
|
74
74
|
},
|
|
75
|
-
|
|
75
|
+
workflowContext: {
|
|
76
|
+
start: jest.fn()
|
|
77
|
+
},
|
|
78
|
+
hide: () => {},
|
|
76
79
|
user: {
|
|
77
80
|
"id": "640ebc06-5ec1-5322-a1ae-6120ed2f3a74",
|
|
78
81
|
"role_id": "a58de6d3-f52c-5080-b79b-a601a647ac85",
|
|
@@ -117,7 +120,19 @@ export function defaultProps() {
|
|
|
117
120
|
},
|
|
118
121
|
"__placeholder_last_logged_in__": "",
|
|
119
122
|
"last_logged_in": "",
|
|
120
|
-
is_mfa_enabled: false
|
|
123
|
+
"is_mfa_enabled": false,
|
|
124
|
+
pending_account_recovery_request: {
|
|
125
|
+
id: "54c6278e-f824-5fda-91ff-3e946b18d997"
|
|
126
|
+
},
|
|
121
127
|
}
|
|
122
128
|
};
|
|
123
129
|
}
|
|
130
|
+
|
|
131
|
+
/**
|
|
132
|
+
* Props with temporary pending account recovery user
|
|
133
|
+
*/
|
|
134
|
+
export function propsWithUserTemporaryHasPendingAccountRecovery() {
|
|
135
|
+
const props = defaultProps();
|
|
136
|
+
props.user.pending_account_recovery_request = true;
|
|
137
|
+
return props;
|
|
138
|
+
}
|
|
@@ -29,6 +29,7 @@ import EditUser from "../EditUser/EditUser";
|
|
|
29
29
|
import ConfirmDisableUserMFA from "../ConfirmDisableUserMFA/ConfirmDisableUserMFA";
|
|
30
30
|
import DeleteUser from "../DeleteUser/DeleteUser";
|
|
31
31
|
import NotifyError from "../../Common/Error/NotifyError/NotifyError";
|
|
32
|
+
import HandleReviewAccountRecoveryWorkflow from "../../AccountRecovery/HandleReviewAccountRecoveryRequestWorkflow/HandleReviewAccountRecoveryRequestWorkflow";
|
|
32
33
|
|
|
33
34
|
beforeEach(() => {
|
|
34
35
|
jest.resetModules();
|
|
@@ -38,8 +39,10 @@ describe("Display Users Contextual Menu", () => {
|
|
|
38
39
|
let page; // The page to test against
|
|
39
40
|
const context = defaultAppContext(); // The applicative context
|
|
40
41
|
const props = defaultProps(); // The props to pass
|
|
42
|
+
props.hide = jest.fn();
|
|
41
43
|
|
|
42
44
|
it("As LU I should copy an user permalink", async() => {
|
|
45
|
+
expect.assertions(3);
|
|
43
46
|
page = new DisplayUsersContextualMenuPage(context, props);
|
|
44
47
|
await waitFor(() => {});
|
|
45
48
|
|
|
@@ -47,17 +50,18 @@ describe("Display Users Contextual Menu", () => {
|
|
|
47
50
|
jest.spyOn(props.actionFeedbackContext, 'displaySuccess').mockImplementationOnce(() => {});
|
|
48
51
|
jest.spyOn(props, 'hide').mockImplementationOnce(() => {});
|
|
49
52
|
await page.copyPermalink();
|
|
50
|
-
expect(context.port.request).toHaveBeenCalledWith("passbolt.clipboard.copy",
|
|
53
|
+
expect(context.port.request).toHaveBeenCalledWith("passbolt.clipboard.copy", `${context.userSettings.getTrustedDomain()}/app/users/view/640ebc06-5ec1-5322-a1ae-6120ed2f3a74`);
|
|
51
54
|
expect(props.actionFeedbackContext.displaySuccess).toHaveBeenCalled();
|
|
52
55
|
expect(props.hide).toHaveBeenCalled();
|
|
53
56
|
});
|
|
54
57
|
|
|
55
58
|
it("As LU I should copy an user public key", async() => {
|
|
59
|
+
expect.assertions(3);
|
|
56
60
|
page = new DisplayUsersContextualMenuPage(context, props);
|
|
57
61
|
await waitFor(() => {});
|
|
58
62
|
|
|
59
63
|
const gpgKey = "some key";
|
|
60
|
-
jest.spyOn(context.port, 'request').mockImplementationOnce(() => ({
|
|
64
|
+
jest.spyOn(context.port, 'request').mockImplementationOnce(() => ({armored_key: gpgKey}));
|
|
61
65
|
jest.spyOn(props.actionFeedbackContext, 'displaySuccess').mockImplementationOnce(() => {});
|
|
62
66
|
jest.spyOn(props, 'hide').mockImplementationOnce(() => {});
|
|
63
67
|
await page.copyPublicKey();
|
|
@@ -67,6 +71,7 @@ describe("Display Users Contextual Menu", () => {
|
|
|
67
71
|
});
|
|
68
72
|
|
|
69
73
|
it("As LU I should copy an user email address", async() => {
|
|
74
|
+
expect.assertions(3);
|
|
70
75
|
page = new DisplayUsersContextualMenuPage(context, props);
|
|
71
76
|
await waitFor(() => {});
|
|
72
77
|
|
|
@@ -80,12 +85,14 @@ describe("Display Users Contextual Menu", () => {
|
|
|
80
85
|
});
|
|
81
86
|
|
|
82
87
|
it("As LU I should not edit an user if I don't have the capability to do it", async() => {
|
|
88
|
+
expect.assertions(1);
|
|
83
89
|
page = new DisplayUsersContextualMenuPage(contextWithoutEdit(), props);
|
|
84
90
|
await waitFor(() => {});
|
|
85
91
|
expect(page.canEdit).toBeFalsy();
|
|
86
92
|
});
|
|
87
93
|
|
|
88
94
|
it("As LU I should edit an user if I have the capability to do it", async() => {
|
|
95
|
+
expect.assertions(4);
|
|
89
96
|
page = new DisplayUsersContextualMenuPage(context, props);
|
|
90
97
|
await waitFor(() => {});
|
|
91
98
|
|
|
@@ -104,12 +111,14 @@ describe("Display Users Contextual Menu", () => {
|
|
|
104
111
|
});
|
|
105
112
|
|
|
106
113
|
it("As LU I should not resend an invite to an user if I don't have the capability to do it", async() => {
|
|
114
|
+
expect.assertions(1);
|
|
107
115
|
page = new DisplayUsersContextualMenuPage(contextWithoutEdit(), props);
|
|
108
116
|
await waitFor(() => {});
|
|
109
117
|
expect(page.canResendInvite).toBeFalsy();
|
|
110
118
|
});
|
|
111
119
|
|
|
112
120
|
it("As LU I should resend an invite to an user if I have the capability to do it", async() => {
|
|
121
|
+
expect.assertions(2);
|
|
113
122
|
page = new DisplayUsersContextualMenuPage(context, props);
|
|
114
123
|
await waitFor(() => {});
|
|
115
124
|
|
|
@@ -123,6 +132,7 @@ describe("Display Users Contextual Menu", () => {
|
|
|
123
132
|
});
|
|
124
133
|
|
|
125
134
|
it("As LU I should not disable an user MFA if I don't have the capability to do it", async() => {
|
|
135
|
+
expect.assertions(1);
|
|
126
136
|
page = new DisplayUsersContextualMenuPage(contextWithoutDisableMFA(), props);
|
|
127
137
|
await waitFor(() => {});
|
|
128
138
|
|
|
@@ -130,6 +140,7 @@ describe("Display Users Contextual Menu", () => {
|
|
|
130
140
|
});
|
|
131
141
|
|
|
132
142
|
it("As LU I should disable an user MFA if I have the capability to do it", async() => {
|
|
143
|
+
expect.assertions(3);
|
|
133
144
|
page = new DisplayUsersContextualMenuPage(context, props);
|
|
134
145
|
await waitFor(() => {});
|
|
135
146
|
|
|
@@ -145,12 +156,14 @@ describe("Display Users Contextual Menu", () => {
|
|
|
145
156
|
});
|
|
146
157
|
|
|
147
158
|
it("As LU I should not delete an user if I don't have the capability to do it", async() => {
|
|
159
|
+
expect.assertions(1);
|
|
148
160
|
page = new DisplayUsersContextualMenuPage(contextWithoutDelete(), props);
|
|
149
161
|
await waitFor(() => {});
|
|
150
162
|
expect(page.canDelete).toBeFalsy();
|
|
151
163
|
});
|
|
152
164
|
|
|
153
165
|
it("As LU I should delete an user if I have the capability to do it", async() => {
|
|
166
|
+
expect.assertions(5);
|
|
154
167
|
page = new DisplayUsersContextualMenuPage(context, props);
|
|
155
168
|
await waitFor(() => {});
|
|
156
169
|
|
|
@@ -170,21 +183,22 @@ describe("Display Users Contextual Menu", () => {
|
|
|
170
183
|
});
|
|
171
184
|
|
|
172
185
|
it('As LU I should see an error message if the delete went wrong', async() => {
|
|
186
|
+
expect.assertions(2);
|
|
173
187
|
page = new DisplayUsersContextualMenuPage(context, props);
|
|
174
188
|
await waitFor(() => {});
|
|
175
189
|
|
|
176
190
|
const error = {message: 'some error'};
|
|
177
|
-
const errorDialogProps = {
|
|
191
|
+
const errorDialogProps = {error: error};
|
|
178
192
|
jest.spyOn(context.port, 'request').mockImplementationOnce(() => Promise.reject({message: error.message}));
|
|
179
193
|
|
|
180
194
|
await page.delete();
|
|
181
195
|
|
|
182
196
|
expect(context.port.request).toHaveBeenLastCalledWith("passbolt.users.delete-dry-run", "640ebc06-5ec1-5322-a1ae-6120ed2f3a74");
|
|
183
|
-
expect(
|
|
184
|
-
expect(props.dialogContext.open).toHaveBeenCalledWith(NotifyError);
|
|
197
|
+
expect(props.dialogContext.open).toHaveBeenCalledWith(NotifyError, errorDialogProps);
|
|
185
198
|
});
|
|
186
199
|
|
|
187
200
|
it('As LU I should see an delete dry error message if the delete request has a delete dry error', async() => {
|
|
201
|
+
expect.assertions(2);
|
|
188
202
|
page = new DisplayUsersContextualMenuPage(context, props);
|
|
189
203
|
await waitFor(() => {});
|
|
190
204
|
|
|
@@ -196,4 +210,23 @@ describe("Display Users Contextual Menu", () => {
|
|
|
196
210
|
expect(context.port.request).toHaveBeenLastCalledWith("passbolt.users.delete-dry-run", "640ebc06-5ec1-5322-a1ae-6120ed2f3a74");
|
|
197
211
|
expect(props.dialogContext.open).toHaveBeenCalled();
|
|
198
212
|
});
|
|
213
|
+
|
|
214
|
+
it("As LU I should review an account recovery of a user if I have the capability to do it", async() => {
|
|
215
|
+
expect.assertions(3);
|
|
216
|
+
page = new DisplayUsersContextualMenuPage(context, props);
|
|
217
|
+
await waitFor(() => {});
|
|
218
|
+
|
|
219
|
+
// The logged user is admin
|
|
220
|
+
expect(page.canEdit).toBeTruthy();
|
|
221
|
+
|
|
222
|
+
jest.spyOn(context, 'setContext').mockImplementationOnce(() => {});
|
|
223
|
+
jest.spyOn(props.dialogContext, 'open').mockImplementationOnce(() => {});
|
|
224
|
+
jest.spyOn(props, 'hide').mockImplementationOnce(() => {});
|
|
225
|
+
|
|
226
|
+
await page.reviewRecovery();
|
|
227
|
+
|
|
228
|
+
const accountRecoveryRequestId = props.user.pending_account_recovery_request.id;
|
|
229
|
+
expect(props.workflowContext.start).toHaveBeenCalledWith(HandleReviewAccountRecoveryWorkflow, {accountRecoveryRequestId});
|
|
230
|
+
expect(props.hide).toHaveBeenCalled();
|
|
231
|
+
});
|
|
199
232
|
});
|
|
@@ -139,4 +139,14 @@ export default class DisplayUsersContextualMenuPage {
|
|
|
139
139
|
fireEvent.click(element, leftClick);
|
|
140
140
|
await waitFor(() => {});
|
|
141
141
|
}
|
|
142
|
+
|
|
143
|
+
/**
|
|
144
|
+
* Call to review an account recovery of a user
|
|
145
|
+
*/
|
|
146
|
+
async reviewRecovery() {
|
|
147
|
+
const element = this._page.container.querySelectorAll('li a')[7];
|
|
148
|
+
const leftClick = {button: 0};
|
|
149
|
+
fireEvent.click(element, leftClick);
|
|
150
|
+
await waitFor(() => {});
|
|
151
|
+
}
|
|
142
152
|
}
|
|
@@ -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 {MemoryRouter, Route} from "react-router-dom";
|
|
16
|
+
import React from "react";
|
|
17
|
+
import MockTranslationProvider from "../../../test/mock/components/Internationalisation/MockTranslationProvider";
|
|
18
|
+
import DisplayUsersContextualMenu from "./DisplayUsersContextualMenu";
|
|
19
|
+
import {
|
|
20
|
+
defaultAppContext,
|
|
21
|
+
defaultProps,
|
|
22
|
+
propsWithUserTemporaryHasPendingAccountRecovery
|
|
23
|
+
} from "./DisplayUsersContextualMenu.test.data";
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
export default {
|
|
27
|
+
title: 'Passbolt/User/DisplayUsersContextualMenu',
|
|
28
|
+
component: DisplayUsersContextualMenu
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
const Template = args =>
|
|
33
|
+
<MockTranslationProvider>
|
|
34
|
+
<MemoryRouter initialEntries={['/']}>
|
|
35
|
+
<Route component={routerProps => <DisplayUsersContextualMenu {...args} {...routerProps}/>}></Route>
|
|
36
|
+
</MemoryRouter>
|
|
37
|
+
</MockTranslationProvider>;
|
|
38
|
+
|
|
39
|
+
export const AdminWithoutReviewRecovery = Template.bind({});
|
|
40
|
+
AdminWithoutReviewRecovery.args = Object.assign(defaultProps(), {context: defaultAppContext()});
|
|
41
|
+
|
|
42
|
+
export const AdminWithReviewRecovery = Template.bind({});
|
|
43
|
+
AdminWithReviewRecovery.args = Object.assign(propsWithUserTemporaryHasPendingAccountRecovery(), {context: defaultAppContext()});
|
|
44
|
+
|
|
45
|
+
export const User = Template.bind({});
|
|
46
|
+
const userRole = {
|
|
47
|
+
loggedInUser: {
|
|
48
|
+
role: {
|
|
49
|
+
name: 'user'
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
};
|
|
53
|
+
User.args = Object.assign(defaultProps(), {context: defaultAppContext(userRole)});
|
|
@@ -213,11 +213,9 @@ class EditUser extends Component {
|
|
|
213
213
|
*/
|
|
214
214
|
handleError(error) {
|
|
215
215
|
const errorDialogProps = {
|
|
216
|
-
|
|
217
|
-
message: error.message
|
|
216
|
+
error: error
|
|
218
217
|
};
|
|
219
|
-
this.props.
|
|
220
|
-
this.props.dialogContext.open(NotifyError);
|
|
218
|
+
this.props.dialogContext.open(NotifyError, errorDialogProps);
|
|
221
219
|
}
|
|
222
220
|
|
|
223
221
|
/**
|
|
@@ -3,6 +3,7 @@ import React from "react";
|
|
|
3
3
|
import AppContext from "../../../contexts/AppContext";
|
|
4
4
|
import PropTypes from "prop-types";
|
|
5
5
|
import EditUser from "./EditUser";
|
|
6
|
+
import MockPort from "../../../test/mock/MockPort";
|
|
6
7
|
|
|
7
8
|
|
|
8
9
|
export default {
|
|
@@ -34,7 +35,9 @@ const context = {
|
|
|
34
35
|
],
|
|
35
36
|
editUserDialogProps: {
|
|
36
37
|
id: "8e3874ae-4b40-590b-968a-418f704b9d9a"
|
|
37
|
-
}
|
|
38
|
+
},
|
|
39
|
+
setContext: () => {},
|
|
40
|
+
port: new MockPort()
|
|
38
41
|
};
|
|
39
42
|
|
|
40
43
|
|
|
@@ -50,6 +53,10 @@ Template.propTypes = {
|
|
|
50
53
|
};
|
|
51
54
|
|
|
52
55
|
export const Initial = Template.bind({});
|
|
56
|
+
Initial.args = {
|
|
57
|
+
context: context,
|
|
58
|
+
onClose: () => {}
|
|
59
|
+
};
|
|
53
60
|
Initial.parameters = {
|
|
54
61
|
css: "api_main"
|
|
55
62
|
};
|
package/src/react-extension/components/User/FilterUsersByGroups/DisplayGroupContextualMenu.js
CHANGED
|
@@ -102,11 +102,9 @@ class DisplayGroupContextualMenu extends React.Component {
|
|
|
102
102
|
*/
|
|
103
103
|
handleError(error) {
|
|
104
104
|
const errorDialogProps = {
|
|
105
|
-
|
|
106
|
-
message: error.message
|
|
105
|
+
error: error
|
|
107
106
|
};
|
|
108
|
-
this.props.
|
|
109
|
-
this.props.dialogContext.open(NotifyError);
|
|
107
|
+
this.props.dialogContext.open(NotifyError, errorDialogProps);
|
|
110
108
|
}
|
|
111
109
|
|
|
112
110
|
|
|
@@ -0,0 +1,98 @@
|
|
|
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 from "react";
|
|
15
|
+
import {withUserWorkspace} from "../../../contexts/UserWorkspaceContext";
|
|
16
|
+
import PropTypes from "prop-types";
|
|
17
|
+
import {withAppContext} from "../../../contexts/AppContext";
|
|
18
|
+
import {withRouter} from "react-router-dom";
|
|
19
|
+
import {withTranslation} from "react-i18next";
|
|
20
|
+
import {withActionFeedback} from "../../../contexts/ActionFeedbackContext";
|
|
21
|
+
import HandleReviewAccountRecoveryRequestWorkflow
|
|
22
|
+
from "../../AccountRecovery/HandleReviewAccountRecoveryRequestWorkflow/HandleReviewAccountRecoveryRequestWorkflow";
|
|
23
|
+
import {withWorkflow} from "../../../contexts/WorkflowContext";
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Handle the review account recovery request route.
|
|
27
|
+
* - Select the user in the grid.
|
|
28
|
+
* -Display the review account recovery request dialog.
|
|
29
|
+
*/
|
|
30
|
+
class HandleReviewAccountRecoveryRequestRoute extends React.Component {
|
|
31
|
+
/**
|
|
32
|
+
* ComponentDidMount
|
|
33
|
+
* Invoked immediately after component is inserted into the tree
|
|
34
|
+
* @return {void}
|
|
35
|
+
*/
|
|
36
|
+
componentDidMount() {
|
|
37
|
+
this.handleRoute();
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Handle the review account recovery request route.
|
|
42
|
+
* @returns {Promise<void>}
|
|
43
|
+
*/
|
|
44
|
+
async handleRoute() {
|
|
45
|
+
const accountRecoveryRequestId = this.props.match.params.accountRecoveryRequestId;
|
|
46
|
+
let accountRecoveryRequest;
|
|
47
|
+
|
|
48
|
+
try {
|
|
49
|
+
accountRecoveryRequest = await this.props.context.port.request("passbolt.account-recovery.get-request", accountRecoveryRequestId);
|
|
50
|
+
} catch (error) {
|
|
51
|
+
this.handleAccountRecoveryRequestNotFound();
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
const user = this.props.context.users.find(user => user.id === accountRecoveryRequest.user_id);
|
|
56
|
+
if (!user) {
|
|
57
|
+
this.handleAccountRecoveryRequestUserNotFound();
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
await this.props.userWorkspaceContext.onUserSelected.single(user);
|
|
62
|
+
this.props.workflowContext.start(HandleReviewAccountRecoveryRequestWorkflow, {accountRecoveryRequest});
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* The account recovery request cannot be found.
|
|
67
|
+
*/
|
|
68
|
+
handleAccountRecoveryRequestNotFound() {
|
|
69
|
+
this.props.actionFeedbackContext.displayError(this.props.t("The account recovery request does not exist."));
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* The user who created the account recovery request cannot be found.
|
|
74
|
+
*/
|
|
75
|
+
handleAccountRecoveryRequestUserNotFound() {
|
|
76
|
+
this.props.actionFeedbackContext.displayError(this.props.t("The user who requested an account recovery does not exist."));
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* Render the component
|
|
81
|
+
* @returns {JSX}
|
|
82
|
+
*/
|
|
83
|
+
render() {
|
|
84
|
+
return <></>;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
HandleReviewAccountRecoveryRequestRoute.propTypes = {
|
|
89
|
+
actionFeedbackContext: PropTypes.any, // The action feedback context
|
|
90
|
+
context: PropTypes.any, // The application context
|
|
91
|
+
history: PropTypes.object, // The router match helper
|
|
92
|
+
match: PropTypes.object, // The router match helper
|
|
93
|
+
t: PropTypes.func, // The translation function
|
|
94
|
+
userWorkspaceContext: PropTypes.any, // The user workspace context
|
|
95
|
+
workflowContext: PropTypes.any, // The workflow context
|
|
96
|
+
};
|
|
97
|
+
|
|
98
|
+
export default withAppContext(withUserWorkspace(withActionFeedback(withWorkflow(withRouter(withTranslation("common")(HandleReviewAccountRecoveryRequestRoute))))));
|
|
@@ -0,0 +1,56 @@
|
|
|
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 {v4 as uuidv4} from "uuid";
|
|
16
|
+
import {defaultAppContext} from "../../../contexts/ExtAppContext.test.data";
|
|
17
|
+
import {defaultActionFeedbackContextContext} from "../../../contexts/ActionFeedbackContext.test.data";
|
|
18
|
+
import {defaultUserWorkspaceContext} from "../../../contexts/UserWorkspaceContext.test.data";
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Default props
|
|
22
|
+
* @param {Object} [props] Props to override
|
|
23
|
+
* @returns {Object}
|
|
24
|
+
*/
|
|
25
|
+
export function defaultProps(props = {}) {
|
|
26
|
+
const users = [{id: uuidv4()}];
|
|
27
|
+
const defaultProps = {
|
|
28
|
+
actionFeedbackContext: defaultActionFeedbackContextContext(props?.actionFeedbackContext),
|
|
29
|
+
context: defaultAppContext({users, ...props?.context}),
|
|
30
|
+
match: {
|
|
31
|
+
params: {
|
|
32
|
+
accountRecoveryRequestId: uuidv4()
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
userWorkspaceContext: defaultUserWorkspaceContext()
|
|
36
|
+
};
|
|
37
|
+
delete props.context; // treated in default props.
|
|
38
|
+
delete props.actionFeedbackContext; // treated in default props.
|
|
39
|
+
return Object.assign(defaultProps, props);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Get a pending account recovery request.
|
|
44
|
+
* @param {Object} [data] Properties to override.
|
|
45
|
+
* @returns {Object}
|
|
46
|
+
*/
|
|
47
|
+
export function pendingAccountRecoveryRequest(data = {}) {
|
|
48
|
+
const _default = {
|
|
49
|
+
"id": uuidv4(),
|
|
50
|
+
"user_id": uuidv4(),
|
|
51
|
+
"status": "pending",
|
|
52
|
+
"created": "2020-05-04T20:31:45+00:00",
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
return Object.assign(_default, data);
|
|
56
|
+
}
|