passbolt-styleguide 3.8.4 → 3.9.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 +3 -3
- package/build/css/themes/default/api_authentication.min.css +3 -3
- package/build/css/themes/default/api_cloud.min.css +3 -3
- package/build/css/themes/default/api_main.min.css +3 -3
- package/build/css/themes/default/api_reports.min.css +3 -3
- package/build/css/themes/default/api_webinstaller.min.css +3 -3
- package/build/css/themes/default/ext_app.min.css +3 -3
- package/build/css/themes/default/ext_authentication.min.css +3 -3
- package/build/css/themes/default/ext_external.min.css +2 -2
- package/build/css/themes/default/ext_in_form_cta.min.css +3 -3
- package/build/css/themes/default/ext_in_form_menu.min.css +3 -3
- package/build/css/themes/default/ext_quickaccess.min.css +3 -3
- package/build/css/themes/midgar/api_authentication.min.css +3 -3
- package/build/css/themes/midgar/api_main.min.css +3 -3
- package/build/css/themes/midgar/api_reports.min.css +3 -3
- package/build/css/themes/midgar/ext_app.min.css +3 -3
- 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/css/themes/solarized_dark/api_authentication.min.css +1 -1
- package/build/css/themes/solarized_dark/api_main.min.css +1 -1
- package/build/css/themes/solarized_dark/api_reports.min.css +1 -1
- package/build/css/themes/solarized_dark/ext_app.min.css +1 -1
- package/build/css/themes/solarized_dark/ext_authentication.min.css +1 -1
- package/build/css/themes/solarized_dark/ext_in_form_cta.min.css +1 -1
- package/build/css/themes/solarized_dark/ext_in_form_menu.min.css +1 -1
- package/build/css/themes/solarized_dark/ext_quickaccess.min.css +1 -1
- package/build/css/themes/solarized_light/api_authentication.min.css +1 -1
- package/build/css/themes/solarized_light/api_main.min.css +1 -1
- package/build/css/themes/solarized_light/api_reports.min.css +1 -1
- package/build/css/themes/solarized_light/ext_app.min.css +1 -1
- package/build/css/themes/solarized_light/ext_authentication.min.css +1 -1
- package/build/css/themes/solarized_light/ext_in_form_cta.min.css +1 -1
- package/build/css/themes/solarized_light/ext_in_form_menu.min.css +1 -1
- package/build/css/themes/solarized_light/ext_quickaccess.min.css +1 -1
- package/build/js/dist/api-account-recovery.js +1 -1
- package/build/js/dist/api-app.js +1 -1
- package/build/js/dist/api-app.js.LICENSE.txt +75 -5
- package/build/js/dist/api-feedback.js +2 -0
- package/build/js/dist/api-feedback.js.LICENSE.txt +45 -0
- 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 +19 -9
- package/build/js/dist/src/locales/de-DE/common.json +995 -0
- package/build/js/dist/src/locales/en-UK/common.json +1061 -0
- package/build/js/dist/src/locales/es-ES/common.json +995 -0
- package/build/js/dist/src/locales/fr-FR/common.json +995 -0
- package/build/js/dist/src/locales/ja-JP/common.json +980 -0
- package/build/js/dist/src/locales/lt-LT/common.json +1025 -0
- package/build/js/dist/src/locales/nl-NL/common.json +995 -0
- package/build/js/dist/src/locales/pl-PL/common.json +1025 -0
- package/build/js/dist/src/locales/sv-SE/common.json +995 -0
- package/package.json +18 -1
- package/src/img/controls/attention.svg +1 -0
- package/src/locales/en-UK/common.json +80 -16
- package/src/react-extension/ApiApp.js +17 -5
- package/src/react-extension/ApiFeedback.entry.js +24 -0
- package/src/react-extension/ExtApp.js +12 -5
- package/src/react-extension/ExtAuthenticationLogin.js +17 -15
- package/src/react-extension/ExtAuthenticationLogin.test.stories.js +59 -0
- package/src/react-extension/ExtBootstrapApp.js +1 -0
- package/src/react-extension/components/Administration/AdministrationWorkspace.js +24 -0
- package/src/react-extension/components/Administration/AdministrationWorkspace.test.data.js +3 -3
- package/src/react-extension/components/Administration/AdministrationWorkspace.test.js +13 -1
- package/src/react-extension/components/Administration/AdministrationWorkspace.test.page.js +7 -0
- package/src/react-extension/components/Administration/ConfirmDeleteSsoSettingsDialog/ConfirmDeleteSsoSettingsDialog.js +101 -0
- package/src/react-extension/components/Administration/ConfirmDeleteSsoSettingsDialog/ConfirmDeleteSsoSettingsDialog.test.data.js +23 -0
- package/src/react-extension/components/Administration/ConfirmDeleteSsoSettingsDialog/ConfirmDeleteSsoSettingsDialog.test.stories.js +27 -0
- package/src/react-extension/components/Administration/ConfirmSaveAccountRecoverySettings/ConfirmSaveAccountRecoverySettings.js +1 -1
- package/src/react-extension/components/Administration/DisplayAdministrationMenu/DisplayAdministrationMenu.js +78 -2
- package/src/react-extension/components/Administration/DisplayAdministrationMenu/DisplayAdministrationMenu.test.data.js +3 -1
- package/src/react-extension/components/Administration/DisplayAdministrationMenu/DisplayAdministrationMenu.test.js +60 -0
- package/src/react-extension/components/Administration/DisplayAdministrationMenu/DisplayAdministrationMenu.test.page.js +23 -4
- package/src/react-extension/components/Administration/DisplayAdministrationWorkspaceActions/DisplayAdministrationInternationalisationActions/DisplayAdministrationInternationalisationActions.js +125 -0
- package/src/react-extension/components/Administration/DisplayAdministrationWorkspaceActions/DisplayAdministrationMfaActions/DisplayAdministrationMfaActions.js +131 -0
- package/src/react-extension/components/Administration/DisplayAdministrationWorkspaceActions/DisplayAdministrationSelfRegistrationActions/DisplayAdministrationSelfRegistrationActions.js +103 -0
- package/src/react-extension/components/Administration/DisplayAdministrationWorkspaceActions/DisplayAdministrationSsoActions/DisplayAdministrationSsoActions.js +91 -0
- package/src/react-extension/components/Administration/DisplayAdministrationWorkspaceActions/DisplayAdministrationSubscriptionActions/DisplayAdministrationSubscriptionActions.js +85 -0
- package/src/react-extension/components/Administration/DisplayAdministrationWorkspaceActions/DisplayAdministrationUserDirectoryActions/DisplayAdministrationUserDirectoryActions.js +228 -0
- package/src/react-extension/components/Administration/DisplayAdministrationWorkspaceBreadcrumb/DisplayAdministrationWorkspaceBreadcrumb.js +4 -0
- package/src/react-extension/components/Administration/DisplayAdministrationWorkspaceBreadcrumb/DisplayAdministrationWorkspaceBreadcrumb.test.js +9 -0
- package/src/react-extension/components/Administration/DisplayEmailNotificationsAdministration/DisplayEmailNotificationsAdministration.js +3 -3
- package/src/react-extension/components/Administration/DisplayEmailNotificationsAdministration/DisplayEmailNotificationsAdministration.test.data.js +14 -0
- package/src/react-extension/components/Administration/DisplayEmailNotificationsAdministration/DisplayEmailNotificationsAdministration.test.page.js +0 -17
- package/src/react-extension/components/Administration/DisplayInternationalizationAdministration/DisplayInternationalizationAdministration.js +18 -115
- package/src/react-extension/components/Administration/DisplayInternationalizationAdministration/DisplayInternationalizationAdministration.test.data.js +11 -13
- package/src/react-extension/components/Administration/DisplayInternationalizationAdministration/DisplayInternationalizationAdministration.test.js +38 -43
- package/src/react-extension/components/Administration/DisplayInternationalizationAdministration/DisplayInternationalizationAdministration.test.page.js +47 -10
- package/src/react-extension/components/Administration/DisplayInternationalizationAdministration/DisplayInternationalizationAdministration.test.stories.js +10 -43
- package/src/react-extension/components/Administration/DisplayMfaAdministration/DisplayMfaAdministration.js +82 -367
- package/src/react-extension/components/Administration/DisplayMfaAdministration/DisplayMfaAdministration.test.data.js +128 -42
- package/src/react-extension/components/Administration/DisplayMfaAdministration/DisplayMfaAdministration.test.js +75 -121
- package/src/react-extension/components/Administration/DisplayMfaAdministration/DisplayMfaAdministration.test.page.js +46 -16
- package/src/react-extension/components/Administration/DisplayMfaAdministration/DisplayMfaAdministration.test.stories.js +18 -14
- package/src/react-extension/components/Administration/DisplaySelfRegistrationAdministration/ConfirmDeletionSelfRegistrationSettings/ConfirmDeletionSelfRegistrationSettings.js +103 -0
- package/src/react-extension/components/Administration/DisplaySelfRegistrationAdministration/ConfirmDeletionSelfRegistrationSettings/ConfirmDeletionSelfRegistrationSettings.test.js +53 -0
- package/src/react-extension/components/Administration/DisplaySelfRegistrationAdministration/ConfirmDeletionSelfRegistrationSettings/ConfirmDeletionSelfRegistrationSettings.test.page.js +81 -0
- package/src/react-extension/components/Administration/DisplaySelfRegistrationAdministration/ConfirmDeletionSelfRegistrationSettings/ConfirmDeletionSelfRegistrationSettings.test.stories.js +34 -0
- package/src/react-extension/components/Administration/DisplaySelfRegistrationAdministration/ConfirmSaveSelfRegistrationSettings/ConfirmSaveSelfRegistrationSettings.js +125 -0
- package/src/react-extension/components/Administration/DisplaySelfRegistrationAdministration/ConfirmSaveSelfRegistrationSettings/ConfirmSaveSelfRegistrationSettings.test.data.js +63 -0
- package/src/react-extension/components/Administration/DisplaySelfRegistrationAdministration/ConfirmSaveSelfRegistrationSettings/ConfirmSaveSelfRegistrationSettings.test.js +54 -0
- package/src/react-extension/components/Administration/DisplaySelfRegistrationAdministration/ConfirmSaveSelfRegistrationSettings/ConfirmSaveSelfRegistrationSettings.test.page.js +88 -0
- package/src/react-extension/components/Administration/DisplaySelfRegistrationAdministration/ConfirmSaveSelfRegistrationSettings/ConfirmSaveSelfRegistrationSettings.test.stories.js +35 -0
- package/src/react-extension/components/Administration/DisplaySelfRegistrationAdministration/DisplaySelfRegistrationAdministration.js +381 -0
- package/src/react-extension/components/Administration/DisplaySelfRegistrationAdministration/DisplaySelfRegistrationAdministration.test.data.js +69 -0
- package/src/react-extension/components/Administration/DisplaySelfRegistrationAdministration/DisplaySelfRegistrationAdministration.test.js +332 -0
- package/src/react-extension/components/Administration/DisplaySelfRegistrationAdministration/DisplaySelfRegistrationAdministration.test.page.js +247 -0
- package/src/react-extension/components/Administration/DisplaySelfRegistrationAdministration/DisplaySelfRegistrationAdministration.test.stories.js +72 -0
- package/src/react-extension/components/Administration/DisplaySimulateSynchronizeUserDirectoryAdministration/DisplaySimulateSynchronizeUserDirectoryAdministration.js +19 -19
- package/src/react-extension/components/Administration/DisplaySimulateSynchronizeUserDirectoryAdministration/DisplaySimulateSynchronizeUserDirectoryAdministration.test.data.js +1717 -1729
- package/src/react-extension/components/Administration/DisplaySimulateSynchronizeUserDirectoryAdministration/DisplaySimulateSynchronizeUserDirectoryAdministration.test.js +11 -3
- package/src/react-extension/components/Administration/DisplaySimulateSynchronizeUserDirectoryAdministration/DisplaySimulateSynchronizeUserDirectoryAdministration.test.page.js +4 -1
- package/src/react-extension/components/Administration/DisplaySimulateSynchronizeUserDirectoryAdministration/DisplaySimulateSynchronizeUserDirectoryAdministration.test.stories.js +11 -1784
- package/src/react-extension/components/Administration/DisplaySubscriptionKey/DisplaySubscriptionKey.js +41 -140
- package/src/react-extension/components/Administration/DisplaySubscriptionKey/DisplaySubscriptionKey.test.data.js +15 -3
- package/src/react-extension/components/Administration/DisplaySubscriptionKey/DisplaySubscriptionKey.test.js +22 -49
- package/src/react-extension/components/Administration/DisplaySubscriptionKey/DisplaySubscriptionKey.test.page.js +19 -11
- package/src/react-extension/components/Administration/DisplaySubscriptionKey/DisplaySubscriptionKey.test.stories.js +9 -3
- package/src/react-extension/components/Administration/DisplaySynchronizeUserDirectoryAdministration/DisplaySynchronizeUserDirectoryAdministration.js +5 -6
- package/src/react-extension/components/Administration/DisplaySynchronizeUserDirectoryAdministration/DisplaySynchronizeUserDirectoryAdministration.test.data.js +1717 -1728
- package/src/react-extension/components/Administration/DisplaySynchronizeUserDirectoryAdministration/DisplaySynchronizeUserDirectoryAdministration.test.js +11 -3
- package/src/react-extension/components/Administration/DisplaySynchronizeUserDirectoryAdministration/DisplaySynchronizeUserDirectoryAdministration.test.page.js +4 -1
- package/src/react-extension/components/Administration/DisplaySynchronizeUserDirectoryAdministration/DisplaySynchronizeUserDirectoryAdministration.test.stories.js +11 -1784
- package/src/react-extension/components/Administration/DisplayUserDirectoryAdministration/DisplayUserDirectoryAdministration.js +362 -835
- package/src/react-extension/components/Administration/DisplayUserDirectoryAdministration/DisplayUserDirectoryAdministration.test.data.js +427 -418
- package/src/react-extension/components/Administration/DisplayUserDirectoryAdministration/DisplayUserDirectoryAdministration.test.js +134 -175
- package/src/react-extension/components/Administration/DisplayUserDirectoryAdministration/DisplayUserDirectoryAdministration.test.page.js +108 -11
- package/src/react-extension/components/Administration/DisplayUserDirectoryAdministration/DisplayUserDirectoryAdministration.test.stories.js +17 -25
- package/src/react-extension/components/Administration/EditSubscriptionKey/EditSubscriptionKey.js +4 -2
- package/src/react-extension/components/Administration/ManageAccountRecoveryAdministrationSettings/ManageAccountRecoveryAdministrationSettings.js +3 -3
- package/src/react-extension/components/Administration/ManageAccountRecoveryAdministrationSettings/ManageAccountRecoveryAdministrationSettings.test.js +1 -1
- package/src/react-extension/components/Administration/ManageSmtpAdministrationSettings/ManageSmtpAdministrationSettings.js +32 -7
- package/src/react-extension/components/Administration/ManageSmtpAdministrationSettings/ManageSmtpAdministrationSettings.test.data.js +0 -3
- package/src/react-extension/components/Administration/ManageSmtpAdministrationSettings/ManageSmtpAdministrationSettings.test.js +145 -1
- package/src/react-extension/components/Administration/ManageSmtpAdministrationSettings/ManageSmtpAdministrationSettings.test.page.js +52 -1
- package/src/react-extension/components/Administration/ManageSmtpAdministrationSettings/ManageSmtpAdministrationSettings.test.stories.js +15 -0
- package/src/react-extension/components/Administration/ManageSsoSettings/ManageSsoSettings.js +340 -0
- package/src/react-extension/components/Administration/ManageSsoSettings/ManageSsoSettings.test.data.js +56 -0
- package/src/react-extension/components/Administration/ManageSsoSettings/ManageSsoSettings.test.js +223 -0
- package/src/react-extension/components/Administration/ManageSsoSettings/ManageSsoSettings.test.page.js +235 -0
- package/src/react-extension/components/Administration/ManageSsoSettings/ManageSsoSettings.test.stories.js +55 -0
- package/src/react-extension/components/Administration/ManageSsoSettings/SsoProviders.data.js +34 -0
- package/src/react-extension/components/Administration/SelectAccountRecoveryOrganizationKey/GenerateOrganizationKey.js +12 -3
- package/src/react-extension/components/Administration/SelectAccountRecoveryOrganizationKey/GenerateOrganizationKey.test.js +27 -0
- package/src/react-extension/components/Administration/SelectAccountRecoveryOrganizationKey/SelectAccountRecoveryOrganizationKey.test.page.js +8 -0
- package/src/react-extension/components/Administration/TestSsoSettingsDialog/TestSsoSettingsDialog.js +197 -0
- package/src/react-extension/components/Administration/TestSsoSettingsDialog/TestSsoSettingsDialog.test.data.js +37 -0
- package/src/react-extension/components/Administration/TestSsoSettingsDialog/TestSsoSettingsDialog.test.js +187 -0
- package/src/react-extension/components/Administration/TestSsoSettingsDialog/TestSsoSettingsDialog.test.page.js +120 -0
- package/src/react-extension/components/Administration/TestSsoSettingsDialog/TestSsoSettingsDialog.test.stories.js +31 -0
- package/src/react-extension/components/Authentication/CheckPassphrase/CheckPassphrase.js +9 -5
- package/src/react-extension/components/Authentication/CheckPassphrase/CheckPassphrase.test.data.js +4 -0
- package/src/react-extension/components/Authentication/CheckPassphrase/CheckPassphrase.test.js +11 -42
- package/src/react-extension/components/Authentication/CheckPassphrase/CheckPassphrase.test.page.js +1 -0
- package/src/react-extension/components/Authentication/CreateGpgKey/CreateGpgKey.js +9 -5
- package/src/react-extension/components/Authentication/CreateGpgKey/CreateGpgKey.test.data.js +4 -0
- package/src/react-extension/components/Authentication/CreateGpgKey/CreateGpgKey.test.js +16 -2
- package/src/react-extension/components/Authentication/CreateGpgKey/CreateGpgKey.test.page.js +17 -1
- package/src/react-extension/components/AuthenticationLogin/Login/Login.js +159 -61
- package/src/react-extension/components/AuthenticationLogin/Login/Login.test.data.js +14 -11
- package/src/react-extension/components/AuthenticationLogin/Login/Login.test.js +79 -0
- package/src/react-extension/components/AuthenticationLogin/Login/Login.test.page.js +16 -0
- package/src/react-extension/components/AuthenticationLogin/OrchestrateLogin/OrchestrateLoginBoxMain.js +2 -0
- package/src/react-extension/components/AuthenticationSetup/SetupAuthentication/SetupAuthentication.js +4 -0
- package/src/react-extension/components/Common/Error/ApiError/ApiError.js +119 -0
- package/src/react-extension/components/Common/Error/ApiError/ApiError.test.js +43 -0
- package/src/react-extension/components/Common/Error/ApiError/ApiError.test.page.js +108 -0
- package/src/react-extension/components/Common/Error/ApiError/ApiError.test.stories.js +39 -0
- package/src/react-extension/components/Common/Inputs/Autocomplete/Autocomplete.test.js +12 -0
- package/src/react-extension/components/Common/Inputs/Autocomplete/AutocompleteItem.js +2 -2
- package/src/react-extension/components/Common/Legacy/HandleLegacyAppjs.js +1 -1
- package/src/react-extension/components/Common/Navigation/Header/Logo.js +13 -1
- package/src/react-extension/components/Resource/CreateResource/CreateResource.js +103 -30
- package/src/react-extension/components/Resource/CreateResource/CreateResource.test.js +44 -10
- package/src/react-extension/components/Resource/CreateResource/CreateResource.test.page.js +35 -7
- package/src/react-extension/components/Resource/DisplayResourcesList/DisplayResourcesList.js +3 -3
- package/src/react-extension/components/Resource/DisplayResourcesList/DisplayResourcesListContextualMenu.js +6 -5
- package/src/react-extension/components/Resource/DisplayResourcesWorkspace/DisplayResourcesWorkspaceMenu.js +5 -4
- package/src/react-extension/components/Resource/EditResource/EditResource.js +95 -23
- package/src/react-extension/components/Resource/EditResource/EditResource.test.js +45 -13
- package/src/react-extension/components/Resource/EditResource/EditResource.test.page.js +35 -2
- package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetails.js +2 -1
- package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetailsInformation.js +3 -2
- package/src/react-extension/components/ResourceFolder/CreateResourceFolder/CreateResourceFolder.js +23 -2
- package/src/react-extension/components/ResourceFolder/CreateResourceFolder/CreateResourceFolder.test.js +8 -0
- package/src/react-extension/components/ResourceFolder/CreateResourceFolder/CreateResourceFolder.test.page.js +26 -2
- package/src/react-extension/components/ResourceFolder/RenameResourceFolder/RenameResourceFolder.js +22 -1
- package/src/react-extension/components/ResourceFolder/RenameResourceFolder/RenameResourceFolder.test.js +8 -0
- package/src/react-extension/components/ResourceFolder/RenameResourceFolder/RenameResourceFolder.test.page.js +25 -2
- package/src/react-extension/components/ResourceFolderDetails/DisplayResourceFolderDetails/DisplayResourceFolderDetails.js +2 -1
- package/src/react-extension/components/ResourcePassword/GenerateResourcePassword/GenerateResourcePassword.js +2 -1
- package/src/react-extension/components/ResourceTag/EditResourceTag/EditResourceTag.js +14 -1
- package/src/react-extension/components/ResourceTag/EditResourceTag/EditResourceTag.test.js +8 -0
- package/src/react-extension/components/ResourceTag/EditResourceTag/EditResourceTag.test.page.js +12 -0
- package/src/react-extension/components/User/CreateUser/CreateUser.js +42 -3
- package/src/react-extension/components/User/CreateUser/CreateUser.test.js +16 -0
- package/src/react-extension/components/User/CreateUser/CreateUser.test.page.js +26 -0
- package/src/react-extension/components/User/DisplayUserWorkspaceActions/DisplayUserWorkspaceActions.js +2 -1
- package/src/react-extension/components/User/DisplayUsersContextualMenu/DisplayUsersContextualMenu.js +5 -5
- package/src/react-extension/components/User/EditUser/EditUser.js +29 -2
- package/src/react-extension/components/User/EditUser/EditUser.test.js +12 -0
- package/src/react-extension/components/User/EditUser/EditUser.test.page.js +26 -0
- package/src/react-extension/components/UserDetails/DisplayUserDetails/DisplayUserDetails.js +2 -1
- package/src/react-extension/components/UserDetails/DisplayUserDetails/DisplayUserDetails.test.data.js +1332 -1331
- package/src/react-extension/components/UserDetails/DisplayUserDetailsPublicKey/DisplayUserDetailsPublicKey.js +2 -1
- package/src/react-extension/components/UserGroup/CreateUserGroup/CreateUserGroup.js +19 -1
- package/src/react-extension/components/UserGroup/CreateUserGroup/CreateUserGroup.test.js +9 -0
- package/src/react-extension/components/UserGroup/CreateUserGroup/CreateUserGroup.test.page.js +12 -0
- package/src/react-extension/components/UserGroup/DisplayUserGroupDetails/DisplayUserGroupDetails.js +2 -1
- package/src/react-extension/components/UserGroup/EditUserGroup/EditUserGroup.js +16 -1
- package/src/react-extension/components/UserGroup/EditUserGroup/EditUserGroup.test.js +8 -0
- package/src/react-extension/components/UserGroup/EditUserGroup/EditUserGroup.test.page.js +26 -1
- package/src/react-extension/components/UserSetting/ChangeUserPassphrase/ConfirmPassphrase.js +1 -1
- package/src/react-extension/components/UserSetting/ChangeUserPassphrase/EnterNewPassphrase.js +6 -4
- package/src/react-extension/components/UserSetting/ChangeUserPassphrase/EnterNewPassphrase.test.data.js +4 -1
- package/src/react-extension/components/UserSetting/ChangeUserPassphrase/EnterNewPassphrase.test.js +21 -11
- package/src/react-extension/components/UserSetting/ChangeUserPassphrase/EnterNewPassphrase.test.page.js +10 -1
- package/src/react-extension/contexts/AdminSmtpSettingsContext.js +2 -0
- package/src/react-extension/contexts/AdminSmtpSettingsContext.test.data.js +13 -0
- package/src/react-extension/contexts/AdminSmtpSettingsContext.test.js +3 -1
- package/src/react-extension/contexts/AdminSsoContext.js +558 -0
- package/src/react-extension/contexts/AdminSsoContext.test.data.js +51 -0
- package/src/react-extension/contexts/Administration/AdministrationInternationalizationContext/AdministrationInternationalizationContext.js +194 -0
- package/src/react-extension/contexts/Administration/AdministrationInternationalizationContext/AdministrationInternationalizationContext.test.js +111 -0
- package/src/react-extension/contexts/Administration/AdministrationMfa/AdministrationMfaContext.js +265 -0
- package/src/react-extension/contexts/Administration/AdministrationMfa/AdministrationMfaContext.test.js +178 -0
- package/src/react-extension/contexts/Administration/AdministrationSelfRegistration/AdministrationSelfRegistrationContext.js +453 -0
- package/src/react-extension/contexts/Administration/AdministrationSelfRegistration/AdministrationSelfRegistrationContext.test.js +218 -0
- package/src/react-extension/contexts/Administration/AdministrationSubscription/AdministrationSubscription.js +168 -0
- package/src/react-extension/contexts/Administration/AdministrationSubscription/AdministrationSubscription.test.js +73 -0
- package/src/react-extension/contexts/Administration/AdministrationUserDirectory/AdministrationUserDirectoryContext.js +353 -0
- package/src/react-extension/contexts/Administration/AdministrationUserDirectory/AdministrationUserDirectoryContext.test.js +220 -0
- package/src/react-extension/contexts/AdministrationWorkspaceContext.js +17 -178
- package/src/react-extension/contexts/AdministrationWorkspaceContext.test.js +0 -26
- package/src/react-extension/contexts/ApiAppContext.test.data.js +4 -2
- package/src/react-extension/contexts/Authentication/AuthenticationLoginContext.js +54 -4
- package/src/react-extension/contexts/Authentication/AuthenticationLoginContext.test.data.js +10 -1
- package/src/react-extension/contexts/Authentication/AuthenticationLoginContext.test.js +92 -14
- package/src/react-extension/contexts/Authentication/AuthenticationSetupContext.js +1 -0
- package/src/react-extension/contexts/NavigationContext.js +34 -0
- package/src/react-extension/contexts/SsoContext.js +151 -0
- package/src/react-extension/contexts/SsoContext.test.data.js +36 -0
- package/src/react-extension/contexts/SsoContext.test.js +104 -0
- package/src/react-extension/lib/Domain/DomainUtil.js +70 -0
- package/src/react-extension/lib/Domain/DomainUtil.test.js +129 -0
- package/src/react-extension/lib/Domain/Domains.js +6113 -0
- package/src/react-extension/lib/Error/InputValidator.js +24 -0
- package/src/react-extension/lib/Map/DynamicRef.js +49 -0
- package/src/react-extension/lib/Map/DynamicRef.test.js +56 -0
- package/src/react-extension/lib/Map/MapObject.js +48 -0
- package/src/react-extension/lib/Map/MapObject.test.js +43 -0
- package/src/react-quickaccess/ExtQuickAccess.js +7 -4
- package/src/react-quickaccess/components/GeneratePasswordPage/GeneratePasswordPage.js +3 -1
- package/src/react-quickaccess/components/GeneratePasswordPage/GeneratePasswordPage.test.data.js +4 -0
- package/src/react-quickaccess/components/LoginPage/LoginPage.js +115 -4
- package/src/react-quickaccess/components/LoginPage/LoginPage.test.data.js +10 -0
- package/src/react-quickaccess/components/LoginPage/LoginPage.test.stories.js +30 -3
- package/src/react-quickaccess/components/ResourceAutoSave/SaveResource.js +33 -1
- package/src/react-quickaccess/components/ResourceAutoSave/SaveResource.test.data.js +25 -0
- package/src/react-quickaccess/components/ResourceAutoSave/SaveResource.test.js +60 -0
- package/src/react-quickaccess/components/ResourceAutoSave/SaveResource.test.page.js +60 -0
- package/src/react-quickaccess/components/ResourceCreatePage/ResourceCreatePage.js +33 -1
- package/src/react-quickaccess/components/ResourceCreatePage/ResourceCreatePage.test.js +36 -7
- package/src/react-quickaccess/components/ResourceViewPage/ResourceViewPage.js +3 -2
- package/src/react-quickaccess/contexts/SsoContext.js +150 -0
- package/src/react-web-integration/lib/InForm/InFormFieldSelector.js +5 -0
- package/src/shared/constants/inputs.const.js +30 -0
- package/src/shared/lib/Browser/clipBoard.js +45 -0
- package/src/shared/lib/Browser/clipBoard.test.js +59 -0
- package/src/shared/models/Mfa/Duo.js +36 -0
- package/src/shared/models/Mfa/Duo.test.js +59 -0
- package/src/shared/models/Mfa/MfaDTO.js +51 -0
- package/src/shared/models/Mfa/MfaDTO.test.js +48 -0
- package/src/shared/models/Mfa/MfaEnumeration.js +17 -0
- package/src/shared/models/Mfa/MfaModel.js +48 -0
- package/src/shared/models/Mfa/MfaModel.test.js +37 -0
- package/src/shared/models/Mfa/Yubikey.js +35 -0
- package/src/shared/models/Mfa/Yubikey.test.js +47 -0
- package/src/shared/models/selfRegistration/SelfRegistrationDomainsViewModel.js +55 -0
- package/src/shared/models/selfRegistration/SelfRegistrationDomainsViewModel.test.js +37 -0
- package/src/shared/models/selfRegistration/SelfRegistrationDto.js +42 -0
- package/src/shared/models/selfRegistration/SelfRegistrationDto.test.js +48 -0
- package/src/shared/models/selfRegistration/SelfRegistrationEnumeration.js +17 -0
- package/src/shared/models/subscription/SubscriptionDto.js +34 -0
- package/src/shared/models/subscription/SubscriptionDto.test.js +31 -0
- package/src/shared/models/subscription/SubscriptionModel.js +33 -0
- package/src/shared/models/subscription/SubscriptionModel.test.js +48 -0
- package/src/shared/models/user/UserModel.js +37 -0
- package/src/shared/models/userDirectory/UserDirectoryDTO.js +57 -0
- package/src/shared/models/userDirectory/UserDirectoryDTO.test.js +40 -0
- package/src/shared/models/userDirectory/UserDirectoryEnum.js +22 -0
- package/src/shared/models/userDirectory/UserDirectoryModel.js +64 -0
- package/src/shared/models/userDirectory/UserDirectoryModel.test.js +37 -0
- package/src/shared/services/actions/subscription/SubscriptionActionService.js +69 -0
- package/src/shared/services/actions/subscription/SubscriptionActionService.test.js +73 -0
- package/src/shared/services/api/Internationalisation/InternationalisationService.js +46 -0
- package/src/shared/services/api/Mfa/MfaService.js +54 -0
- package/src/shared/services/{accountRecovery → api/accountRecovery}/ApiAppAccountRecoveryUserService.js +2 -2
- package/src/shared/services/{accountRecovery → api/accountRecovery}/ExtAppAccountRecoveryUserService.js +0 -0
- package/src/shared/services/api/secrets/pownedService.js +64 -0
- package/src/shared/services/api/secrets/pownedService.test.js +63 -0
- package/src/shared/services/api/selfRegistration/selfRegistrationService.js +64 -0
- package/src/shared/services/api/user/UserService.js +45 -0
- package/src/shared/services/api/userDirectory/UserDirectoryService.js +108 -0
- package/src/shared/services/forms/Mfa/MfaFormService.js +195 -0
- package/src/shared/services/forms/Mfa/MfaFormService.test.js +341 -0
- package/src/shared/services/forms/selfRegistration/SelfRegistrationFormService.js +92 -0
- package/src/shared/services/forms/selfRegistration/SelfRegistrationFormService.test.js +101 -0
- package/src/shared/services/forms/userDirectory/UserDirectoryFormService.js +118 -0
- package/src/shared/services/forms/userDirectory/UserDirectoryFormService.test.js +128 -0
- package/src/react-extension/components/Administration/DisplayAdministrationWorkspaceActions/DisplayAdministrationWorkspaceActions.js +0 -205
- package/src/react-extension/components/Administration/DisplayAdministrationWorkspaceActions/DisplayAdministrationWorkspaceActions.test.data.js +0 -37
- package/src/react-extension/components/Administration/DisplayAdministrationWorkspaceActions/DisplayAdministrationWorkspaceActions.test.js +0 -197
- package/src/react-extension/components/Administration/DisplayAdministrationWorkspaceActions/DisplayAdministrationWorkspaceActions.test.page.js +0 -133
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
/**
|
|
2
|
+
*import { userDirectoryContext } from '../../../../react-extension/contexts/Administration/AdministrationMfa/AdministrationMfaContext';
|
|
3
|
+
* Passbolt ~ Open source password manager for teams
|
|
4
|
+
* Copyright (c) 2022 Passbolt SA (https://www.passbolt.com)
|
|
5
|
+
*
|
|
6
|
+
* Licensed under GNU Affero General Public License version 3 of the or any later version.
|
|
7
|
+
* For full copyright and license information, please see the LICENSE.txt
|
|
8
|
+
* Redistributions of files must retain the above copyright notice.
|
|
9
|
+
*
|
|
10
|
+
* @copyright Copyright (c) 2022 Passbolt SA (https://www.passbolt.com)
|
|
11
|
+
* @license https://opensource.org/licenses/AGPL-3.0 AGPL License
|
|
12
|
+
* @link https://www.passbolt.com Passbolt(tm)
|
|
13
|
+
* @since 3.8.0
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
import {defaultProps} from "../../../../react-extension/components/Administration/DisplayUserDirectoryAdministration/DisplayUserDirectoryAdministration.test.data";
|
|
17
|
+
import {enableFetchMocks} from 'jest-fetch-mock';
|
|
18
|
+
import {AdminUserDirectoryContextProvider} from "../../../../react-extension/contexts/Administration/AdministrationUserDirectory/AdministrationUserDirectoryContext";
|
|
19
|
+
import UserDirectoryFormService from '../userDirectory/UserDirectoryFormService';
|
|
20
|
+
|
|
21
|
+
beforeEach(() => {
|
|
22
|
+
jest.resetModules();
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
describe("UserDirectoryFormService", () => {
|
|
26
|
+
let userDirectoryContext, // The userDirectoryContext to test
|
|
27
|
+
userDirectoryFormService;
|
|
28
|
+
const translation = message => message;
|
|
29
|
+
const props = defaultProps(); // The props to pass
|
|
30
|
+
|
|
31
|
+
beforeEach(() => {
|
|
32
|
+
jest.resetAllMocks();
|
|
33
|
+
userDirectoryContext = new AdminUserDirectoryContextProvider(props);
|
|
34
|
+
const setStateMock = state => userDirectoryContext.state = Object.assign(userDirectoryContext.state, state);
|
|
35
|
+
jest.spyOn(userDirectoryContext, "setState").mockImplementation(setStateMock);
|
|
36
|
+
UserDirectoryFormService.killInstance();
|
|
37
|
+
userDirectoryFormService = UserDirectoryFormService.getInstance(userDirectoryContext, translation);
|
|
38
|
+
enableFetchMocks();
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
describe("UserDirectoryFormService::getInstance", () => {
|
|
42
|
+
it("should be a singleton", () => {
|
|
43
|
+
expect.assertions(1);
|
|
44
|
+
expect(userDirectoryFormService).toBeDefined();
|
|
45
|
+
});
|
|
46
|
+
|
|
47
|
+
it("should not create a new instance -", () => {
|
|
48
|
+
const newInstance = UserDirectoryFormService.getInstance();
|
|
49
|
+
expect.assertions(1);
|
|
50
|
+
expect(userDirectoryFormService).toEqual(newInstance);
|
|
51
|
+
});
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
describe("UserDirectoryFormService::killInstance", () => {
|
|
56
|
+
it("should kill the instance and create a new one", () => {
|
|
57
|
+
UserDirectoryFormService.killInstance();
|
|
58
|
+
userDirectoryFormService = UserDirectoryFormService.getInstance(null, null);
|
|
59
|
+
expect.assertions(1);
|
|
60
|
+
expect(userDirectoryFormService).toEqual({"context": null, "translate": null});
|
|
61
|
+
});
|
|
62
|
+
});
|
|
63
|
+
|
|
64
|
+
describe("UserDirectoryFormService::validateHostInput", () => {
|
|
65
|
+
it("should return required message", () => {
|
|
66
|
+
userDirectoryContext.setSettings("host", "");
|
|
67
|
+
const requiredMessage = {"hostError": "A host is required."};
|
|
68
|
+
const result = userDirectoryFormService.validateHostInput();
|
|
69
|
+
expect.assertions(2);
|
|
70
|
+
expect(result).toEqual(requiredMessage);
|
|
71
|
+
expect(userDirectoryContext.getErrors().hostError).toEqual(requiredMessage.hostError);
|
|
72
|
+
});
|
|
73
|
+
it("should not return message", () => {
|
|
74
|
+
userDirectoryContext.setSettings("host", "192.0.0.0");
|
|
75
|
+
const result = userDirectoryFormService.validateHostInput();
|
|
76
|
+
expect.assertions(2);
|
|
77
|
+
expect(result.hostError).toEqual(null);
|
|
78
|
+
expect(userDirectoryContext.getErrors().hostError).toEqual(null);
|
|
79
|
+
});
|
|
80
|
+
});
|
|
81
|
+
|
|
82
|
+
describe("UserDirectoryFormService::validatePortInput", () => {
|
|
83
|
+
it("should return required message", () => {
|
|
84
|
+
userDirectoryContext.setSettings("port", "");
|
|
85
|
+
const requiredMessage = {"portError": "A port is required."};
|
|
86
|
+
const result = userDirectoryFormService.validatePortInput();
|
|
87
|
+
expect.assertions(2);
|
|
88
|
+
expect(result).toEqual(requiredMessage);
|
|
89
|
+
expect(userDirectoryContext.getErrors().portError).toEqual(requiredMessage.portError);
|
|
90
|
+
});
|
|
91
|
+
it("should return regex message", () => {
|
|
92
|
+
//Only numbers are allowed
|
|
93
|
+
userDirectoryContext.setSettings("port", "ABC");
|
|
94
|
+
const regExMessage = {"portError": "Only numeric characters allowed."};
|
|
95
|
+
const result = userDirectoryFormService.validatePortInput();
|
|
96
|
+
expect.assertions(2);
|
|
97
|
+
expect(result).toEqual(regExMessage);
|
|
98
|
+
expect(userDirectoryContext.getErrors().portError).toEqual(regExMessage.portError);
|
|
99
|
+
});
|
|
100
|
+
it("should not return message", () => {
|
|
101
|
+
userDirectoryContext.setSettings("port", "389");
|
|
102
|
+
const result = userDirectoryFormService.validatePortInput();
|
|
103
|
+
expect.assertions(2);
|
|
104
|
+
expect(result.portError).toEqual(null);
|
|
105
|
+
expect(userDirectoryContext.getErrors().portError).toEqual(null);
|
|
106
|
+
});
|
|
107
|
+
});
|
|
108
|
+
|
|
109
|
+
describe("UserDirectoryFormService::validateDomainInput", () => {
|
|
110
|
+
it("should return required message", () => {
|
|
111
|
+
userDirectoryContext.setSettings("domain", "");
|
|
112
|
+
const requiredMessage = {"domainError": "A domain name is required."};
|
|
113
|
+
const result = userDirectoryFormService.validateDomainInput();
|
|
114
|
+
expect.assertions(2);
|
|
115
|
+
expect(result).toEqual(requiredMessage);
|
|
116
|
+
expect(userDirectoryContext.getErrors().domainError).toEqual(requiredMessage.domainError);
|
|
117
|
+
});
|
|
118
|
+
it("should not return message", () => {
|
|
119
|
+
userDirectoryContext.setSettings("domain", "passbolt.com");
|
|
120
|
+
const result = userDirectoryFormService.validateDomainInput();
|
|
121
|
+
expect.assertions(2);
|
|
122
|
+
expect(result.domainError).toEqual(null);
|
|
123
|
+
expect(userDirectoryContext.getErrors().domainError).toEqual(null);
|
|
124
|
+
});
|
|
125
|
+
});
|
|
126
|
+
});
|
|
127
|
+
|
|
128
|
+
|
|
@@ -1,205 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Passbolt ~ Open source password manager for teams
|
|
3
|
-
* Copyright (c) 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) 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 2.13.0
|
|
13
|
-
*/
|
|
14
|
-
|
|
15
|
-
import React from "react";
|
|
16
|
-
import PropTypes from "prop-types";
|
|
17
|
-
import Icon from "../../../../shared/components/Icons/Icon";
|
|
18
|
-
import {
|
|
19
|
-
AdministrationWorkspaceMenuTypes,
|
|
20
|
-
withAdministrationWorkspace
|
|
21
|
-
} from "../../../contexts/AdministrationWorkspaceContext";
|
|
22
|
-
import DisplaySimulateSynchronizeUserDirectoryAdministration
|
|
23
|
-
from "../DisplaySimulateSynchronizeUserDirectoryAdministration/DisplaySimulateSynchronizeUserDirectoryAdministration";
|
|
24
|
-
import {withDialog} from "../../../contexts/DialogContext";
|
|
25
|
-
import DisplaySynchronizeUserDirectoryAdministration
|
|
26
|
-
from "../DisplaySynchronizeUserDirectoryAdministration/DisplaySynchronizeUserDirectoryAdministration";
|
|
27
|
-
import {Trans, withTranslation} from "react-i18next";
|
|
28
|
-
|
|
29
|
-
/**
|
|
30
|
-
* This component is a container of multiple actions applicable on setting
|
|
31
|
-
*/
|
|
32
|
-
class DisplayAdministrationWorkspaceActions extends React.Component {
|
|
33
|
-
/**
|
|
34
|
-
* Constructor
|
|
35
|
-
* @param {Object} props
|
|
36
|
-
*/
|
|
37
|
-
constructor(props) {
|
|
38
|
-
super(props);
|
|
39
|
-
this.bindCallbacks();
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
/**
|
|
43
|
-
* Bind callbacks methods
|
|
44
|
-
*/
|
|
45
|
-
bindCallbacks() {
|
|
46
|
-
this.handleSaveClick = this.handleSaveClick.bind(this);
|
|
47
|
-
this.handleTestClick = this.handleTestClick.bind(this);
|
|
48
|
-
this.handleSimulateSynchronizeClick = this.handleSimulateSynchronizeClick.bind(this);
|
|
49
|
-
this.handleSynchronizeClick = this.handleSynchronizeClick.bind(this);
|
|
50
|
-
this.handleEditSubscriptionClick = this.handleEditSubscriptionClick.bind(this);
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
/**
|
|
54
|
-
* Whenever the component has updated in terms of props or state
|
|
55
|
-
* @param prevProps
|
|
56
|
-
*/
|
|
57
|
-
async componentDidUpdate(prevProps) {
|
|
58
|
-
await this.handleMustSynchronize(prevProps.administrationWorkspaceContext.must.synchronize);
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
/**
|
|
62
|
-
* Handle must synchronize settings
|
|
63
|
-
*/
|
|
64
|
-
handleMustSynchronize(previousMustSynchronizeSettings) {
|
|
65
|
-
const hasMustSynchronizeChanged = this.props.administrationWorkspaceContext.must.synchronize !== previousMustSynchronizeSettings;
|
|
66
|
-
if (hasMustSynchronizeChanged && this.props.administrationWorkspaceContext.must.synchronize) {
|
|
67
|
-
this.handleSynchronizeClick();
|
|
68
|
-
this.props.administrationWorkspaceContext.onResetActionsSettings();
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
/**
|
|
73
|
-
* Handle save settings
|
|
74
|
-
*/
|
|
75
|
-
handleSaveClick() {
|
|
76
|
-
this.props.administrationWorkspaceContext.onMustSaveSettings();
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
/**
|
|
80
|
-
* Handle test settings
|
|
81
|
-
*/
|
|
82
|
-
handleTestClick() {
|
|
83
|
-
this.props.administrationWorkspaceContext.onMustTestSettings();
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
/**
|
|
87
|
-
* Handle simulate synchronize settings
|
|
88
|
-
*/
|
|
89
|
-
handleSimulateSynchronizeClick() {
|
|
90
|
-
this.props.dialogContext.open(DisplaySimulateSynchronizeUserDirectoryAdministration);
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
/**
|
|
94
|
-
* Handle synchronize settings
|
|
95
|
-
*/
|
|
96
|
-
handleSynchronizeClick() {
|
|
97
|
-
this.props.dialogContext.open(DisplaySynchronizeUserDirectoryAdministration);
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
/**
|
|
101
|
-
* Handle edit subscription key
|
|
102
|
-
*/
|
|
103
|
-
handleEditSubscriptionClick() {
|
|
104
|
-
this.props.administrationWorkspaceContext.onMustEditSubscriptionKey();
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
/**
|
|
108
|
-
* Is save button enable
|
|
109
|
-
*/
|
|
110
|
-
isSaveEnabled() {
|
|
111
|
-
return this.props.administrationWorkspaceContext.can.save;
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
/**
|
|
115
|
-
* Is test button enable
|
|
116
|
-
*/
|
|
117
|
-
isTestEnabled() {
|
|
118
|
-
return this.props.administrationWorkspaceContext.can.test;
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
/**
|
|
122
|
-
* Is save button enable
|
|
123
|
-
*/
|
|
124
|
-
isSynchronizeEnabled() {
|
|
125
|
-
return this.props.administrationWorkspaceContext.can.synchronize;
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
/**
|
|
129
|
-
* If User Directory menu is selected
|
|
130
|
-
* @returns {boolean}
|
|
131
|
-
*/
|
|
132
|
-
isUserDirectorySelected() {
|
|
133
|
-
return AdministrationWorkspaceMenuTypes.USER_DIRECTORY === this.props.administrationWorkspaceContext.selectedAdministration;
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
/**
|
|
137
|
-
* If subscription menu is selected
|
|
138
|
-
* @returns {boolean}
|
|
139
|
-
*/
|
|
140
|
-
isSubscriptionSelected() {
|
|
141
|
-
return AdministrationWorkspaceMenuTypes.SUBSCRIPTION === this.props.administrationWorkspaceContext.selectedAdministration;
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
/**
|
|
145
|
-
* Render the component
|
|
146
|
-
* @returns {JSX}
|
|
147
|
-
*/
|
|
148
|
-
render() {
|
|
149
|
-
return (
|
|
150
|
-
<div className="col2_3 actions-wrapper">
|
|
151
|
-
<div className="actions">
|
|
152
|
-
{!this.isSubscriptionSelected() &&
|
|
153
|
-
<div>
|
|
154
|
-
<li>
|
|
155
|
-
<a className={`button ${this.isSaveEnabled() ? "" : "disabled"}`} onClick={this.handleSaveClick}>
|
|
156
|
-
<Icon name="save"/>
|
|
157
|
-
<span><Trans>Save settings</Trans></span>
|
|
158
|
-
</a>
|
|
159
|
-
</li>
|
|
160
|
-
{this.isUserDirectorySelected() &&
|
|
161
|
-
<div>
|
|
162
|
-
<li>
|
|
163
|
-
<a className={`button ${this.isTestEnabled() ? "" : "disabled"}`} onClick={this.handleTestClick}>
|
|
164
|
-
<Icon name="plug"/>
|
|
165
|
-
<span><Trans>Test settings</Trans></span>
|
|
166
|
-
</a>
|
|
167
|
-
</li>
|
|
168
|
-
<li>
|
|
169
|
-
<a className={`button ${this.isSynchronizeEnabled() ? "" : "disabled"}`} onClick={this.handleSimulateSynchronizeClick}>
|
|
170
|
-
<Icon name="magic-wand"/>
|
|
171
|
-
<span><Trans>Simulate synchronize</Trans></span>
|
|
172
|
-
</a>
|
|
173
|
-
</li>
|
|
174
|
-
<li>
|
|
175
|
-
<a className={`button ${this.isSynchronizeEnabled() ? "" : "disabled"}`} onClick={this.handleSynchronizeClick}>
|
|
176
|
-
<Icon name="refresh"/>
|
|
177
|
-
<span><Trans>Synchronize</Trans></span>
|
|
178
|
-
</a>
|
|
179
|
-
</li>
|
|
180
|
-
</div>
|
|
181
|
-
}
|
|
182
|
-
</div>
|
|
183
|
-
}
|
|
184
|
-
{this.isSubscriptionSelected() &&
|
|
185
|
-
<div>
|
|
186
|
-
<li>
|
|
187
|
-
<a className="button" onClick={this.handleEditSubscriptionClick}>
|
|
188
|
-
<Icon name="edit"/>
|
|
189
|
-
<span><Trans>Update key</Trans></span>
|
|
190
|
-
</a>
|
|
191
|
-
</li>
|
|
192
|
-
</div>
|
|
193
|
-
}
|
|
194
|
-
</div>
|
|
195
|
-
</div>
|
|
196
|
-
);
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
|
|
200
|
-
DisplayAdministrationWorkspaceActions.propTypes = {
|
|
201
|
-
administrationWorkspaceContext: PropTypes.object, // The administration workspace context
|
|
202
|
-
dialogContext: PropTypes.any, // The dialog context
|
|
203
|
-
};
|
|
204
|
-
|
|
205
|
-
export default withDialog(withAdministrationWorkspace(withTranslation("common")(DisplayAdministrationWorkspaceActions)));
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Returns the default app context for the unit test
|
|
3
|
-
* @param appContext An existing app context
|
|
4
|
-
* @returns {any}
|
|
5
|
-
*/
|
|
6
|
-
export function defaultAppContext(appContext) {
|
|
7
|
-
const defaultAppContext = {
|
|
8
|
-
trustedDomain: "http://localhost:3000",
|
|
9
|
-
};
|
|
10
|
-
return Object.assign(defaultAppContext, appContext || {});
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
/**
|
|
14
|
-
* Default props
|
|
15
|
-
* @returns {{resource: {id: string, name: string}}}
|
|
16
|
-
*/
|
|
17
|
-
export function defaultProps(selectedAdministration) {
|
|
18
|
-
return {
|
|
19
|
-
administrationWorkspaceContext: {
|
|
20
|
-
selectedAdministration,
|
|
21
|
-
can: {
|
|
22
|
-
save: false,
|
|
23
|
-
test: false,
|
|
24
|
-
synchronize: false
|
|
25
|
-
},
|
|
26
|
-
must: {
|
|
27
|
-
synchronize: false
|
|
28
|
-
},
|
|
29
|
-
onResetActionsSettings: jest.fn(),
|
|
30
|
-
onMustSaveSettings: jest.fn(),
|
|
31
|
-
onMustTestSettings: jest.fn(),
|
|
32
|
-
},
|
|
33
|
-
dialogContext: {
|
|
34
|
-
open: jest.fn()
|
|
35
|
-
}
|
|
36
|
-
};
|
|
37
|
-
}
|
|
@@ -1,197 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Passbolt ~ Open source password manager for teams
|
|
3
|
-
* Copyright (c) 2020 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) 2020 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 2.11.0
|
|
13
|
-
*/
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
* Unit tests on DisplayUserWorkspaceActions in regard of specifications
|
|
17
|
-
*/
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
import DisplayUserWorkspaceActionsPage from "./DisplayAdministrationWorkspaceActions.test.page";
|
|
21
|
-
import {AdministrationWorkspaceMenuTypes} from "../../../contexts/AdministrationWorkspaceContext";
|
|
22
|
-
import {defaultAppContext, defaultProps} from "./DisplayAdministrationWorkspaceActions.test.data";
|
|
23
|
-
import DisplaySimulateSynchronizeUserDirectoryAdministration
|
|
24
|
-
from "../DisplaySimulateSynchronizeUserDirectoryAdministration/DisplaySimulateSynchronizeUserDirectoryAdministration";
|
|
25
|
-
import DisplaySynchronizeUserDirectoryAdministration
|
|
26
|
-
from "../DisplaySynchronizeUserDirectoryAdministration/DisplaySynchronizeUserDirectoryAdministration";
|
|
27
|
-
|
|
28
|
-
beforeEach(() => {
|
|
29
|
-
jest.resetModules();
|
|
30
|
-
});
|
|
31
|
-
|
|
32
|
-
describe("As AD I can see the administration menu", () => {
|
|
33
|
-
/**
|
|
34
|
-
* As AD I should see the breadcrumb
|
|
35
|
-
* And I should be able to identify each item
|
|
36
|
-
*/
|
|
37
|
-
let page; // The page to test against
|
|
38
|
-
const context = defaultAppContext(); // The applicative context
|
|
39
|
-
|
|
40
|
-
it('As AD I should see only the save button for the mfa', async() => {
|
|
41
|
-
const props = defaultProps(AdministrationWorkspaceMenuTypes.MFA);
|
|
42
|
-
page = new DisplayUserWorkspaceActionsPage(context, props);
|
|
43
|
-
expect(page.exists()).toBeTruthy();
|
|
44
|
-
expect(page.count).toBe(1);
|
|
45
|
-
expect(Boolean(page.saveButton)).toBeTruthy();
|
|
46
|
-
expect(Boolean(page.testButton)).toBeFalsy();
|
|
47
|
-
expect(Boolean(page.simulateSynchronizeButton)).toBeFalsy();
|
|
48
|
-
expect(Boolean(page.synchronizeButton)).toBeFalsy();
|
|
49
|
-
});
|
|
50
|
-
|
|
51
|
-
it('As AD I should see only the save button for the email notifications', async() => {
|
|
52
|
-
const props = defaultProps(AdministrationWorkspaceMenuTypes.EMAIL_NOTIFICATION);
|
|
53
|
-
page = new DisplayUserWorkspaceActionsPage(context, props);
|
|
54
|
-
expect(page.exists()).toBeTruthy();
|
|
55
|
-
expect(page.count).toBe(1);
|
|
56
|
-
expect(Boolean(page.saveButton)).toBeTruthy();
|
|
57
|
-
expect(Boolean(page.testButton)).toBeFalsy();
|
|
58
|
-
expect(Boolean(page.simulateSynchronizeButton)).toBeFalsy();
|
|
59
|
-
expect(Boolean(page.synchronizeButton)).toBeFalsy();
|
|
60
|
-
});
|
|
61
|
-
|
|
62
|
-
it('As AD I should see all buttons for the user directory', async() => {
|
|
63
|
-
const props = defaultProps(AdministrationWorkspaceMenuTypes.USER_DIRECTORY);
|
|
64
|
-
page = new DisplayUserWorkspaceActionsPage(context, props);
|
|
65
|
-
expect(page.exists()).toBeTruthy();
|
|
66
|
-
expect(page.count).toBe(4);
|
|
67
|
-
expect(Boolean(page.saveButton)).toBeTruthy();
|
|
68
|
-
expect(Boolean(page.testButton)).toBeTruthy();
|
|
69
|
-
expect(Boolean(page.simulateSynchronizeButton)).toBeTruthy();
|
|
70
|
-
expect(Boolean(page.synchronizeButton)).toBeTruthy();
|
|
71
|
-
});
|
|
72
|
-
|
|
73
|
-
it('As AD I should see all button disabled', async() => {
|
|
74
|
-
const props = defaultProps(AdministrationWorkspaceMenuTypes.USER_DIRECTORY);
|
|
75
|
-
page = new DisplayUserWorkspaceActionsPage(context, props);
|
|
76
|
-
expect(page.saveButton.className).toBe('button disabled');
|
|
77
|
-
expect(page.testButton.className).toBe('button disabled');
|
|
78
|
-
expect(page.simulateSynchronizeButton.className).toBe('button disabled');
|
|
79
|
-
expect(page.synchronizeButton.className).toBe('button disabled');
|
|
80
|
-
});
|
|
81
|
-
|
|
82
|
-
it('As AD I should see all button enabled', async() => {
|
|
83
|
-
const props = {
|
|
84
|
-
administrationWorkspaceContext: {
|
|
85
|
-
selectedAdministration: AdministrationWorkspaceMenuTypes.USER_DIRECTORY,
|
|
86
|
-
can: {
|
|
87
|
-
save: true,
|
|
88
|
-
test: true,
|
|
89
|
-
synchronize: true
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
};
|
|
93
|
-
page = new DisplayUserWorkspaceActionsPage(context, props);
|
|
94
|
-
expect(page.saveButton.className).toBe('button ');
|
|
95
|
-
expect(page.testButton.className).toBe('button ');
|
|
96
|
-
expect(page.simulateSynchronizeButton.className).toBe('button ');
|
|
97
|
-
expect(page.synchronizeButton.className).toBe('button ');
|
|
98
|
-
});
|
|
99
|
-
|
|
100
|
-
it('As AD I can save', async() => {
|
|
101
|
-
const props = {
|
|
102
|
-
administrationWorkspaceContext: {
|
|
103
|
-
selectedAdministration: AdministrationWorkspaceMenuTypes.USER_DIRECTORY,
|
|
104
|
-
can: {
|
|
105
|
-
save: true,
|
|
106
|
-
test: false,
|
|
107
|
-
synchronize: false
|
|
108
|
-
},
|
|
109
|
-
mustSynchronizeSettings: false,
|
|
110
|
-
onMustSaveSettings: jest.fn(),
|
|
111
|
-
},
|
|
112
|
-
};
|
|
113
|
-
page = new DisplayUserWorkspaceActionsPage(context, props);
|
|
114
|
-
await page.save();
|
|
115
|
-
expect(props.administrationWorkspaceContext.onMustSaveSettings).toHaveBeenCalled();
|
|
116
|
-
});
|
|
117
|
-
|
|
118
|
-
it('As AD I can test a user directory', async() => {
|
|
119
|
-
const props = {
|
|
120
|
-
administrationWorkspaceContext: {
|
|
121
|
-
selectedAdministration: AdministrationWorkspaceMenuTypes.USER_DIRECTORY,
|
|
122
|
-
can: {
|
|
123
|
-
save: true,
|
|
124
|
-
test: true,
|
|
125
|
-
synchronize: false
|
|
126
|
-
},
|
|
127
|
-
onMustTestSettings: jest.fn(),
|
|
128
|
-
},
|
|
129
|
-
dialogContext: {
|
|
130
|
-
open: jest.fn()
|
|
131
|
-
}
|
|
132
|
-
};
|
|
133
|
-
page = new DisplayUserWorkspaceActionsPage(context, props);
|
|
134
|
-
await page.test();
|
|
135
|
-
expect(props.administrationWorkspaceContext.onMustTestSettings).toHaveBeenCalled();
|
|
136
|
-
});
|
|
137
|
-
|
|
138
|
-
it('As AD I can simulate synchronize a user directory', async() => {
|
|
139
|
-
const props = {
|
|
140
|
-
administrationWorkspaceContext: {
|
|
141
|
-
selectedAdministration: AdministrationWorkspaceMenuTypes.USER_DIRECTORY,
|
|
142
|
-
can: {
|
|
143
|
-
save: true,
|
|
144
|
-
test: true,
|
|
145
|
-
synchronize: true
|
|
146
|
-
},
|
|
147
|
-
onMustTestSettings: jest.fn(),
|
|
148
|
-
},
|
|
149
|
-
dialogContext: {
|
|
150
|
-
open: jest.fn()
|
|
151
|
-
}
|
|
152
|
-
};
|
|
153
|
-
page = new DisplayUserWorkspaceActionsPage(context, props);
|
|
154
|
-
await page.simulateSynchronize();
|
|
155
|
-
expect(props.dialogContext.open).toHaveBeenCalledWith(DisplaySimulateSynchronizeUserDirectoryAdministration);
|
|
156
|
-
});
|
|
157
|
-
|
|
158
|
-
it('As AD I can synchronize a user directory', async() => {
|
|
159
|
-
const props = {
|
|
160
|
-
administrationWorkspaceContext: {
|
|
161
|
-
selectedAdministration: AdministrationWorkspaceMenuTypes.USER_DIRECTORY,
|
|
162
|
-
can: {
|
|
163
|
-
save: true,
|
|
164
|
-
test: true,
|
|
165
|
-
synchronize: true
|
|
166
|
-
},
|
|
167
|
-
onMustTestSettings: jest.fn(),
|
|
168
|
-
},
|
|
169
|
-
dialogContext: {
|
|
170
|
-
open: jest.fn()
|
|
171
|
-
}
|
|
172
|
-
};
|
|
173
|
-
page = new DisplayUserWorkspaceActionsPage(context, props);
|
|
174
|
-
await page.synchronize();
|
|
175
|
-
expect(props.dialogContext.open).toHaveBeenCalledWith(DisplaySynchronizeUserDirectoryAdministration);
|
|
176
|
-
});
|
|
177
|
-
|
|
178
|
-
it('As AD I can edit a subscription key', async() => {
|
|
179
|
-
const props = {
|
|
180
|
-
administrationWorkspaceContext: {
|
|
181
|
-
selectedAdministration: AdministrationWorkspaceMenuTypes.SUBSCRIPTION,
|
|
182
|
-
can: {
|
|
183
|
-
save: false,
|
|
184
|
-
test: false,
|
|
185
|
-
synchronize: false
|
|
186
|
-
},
|
|
187
|
-
onMustEditSubscriptionKey: jest.fn(),
|
|
188
|
-
},
|
|
189
|
-
dialogContext: {
|
|
190
|
-
open: jest.fn()
|
|
191
|
-
}
|
|
192
|
-
};
|
|
193
|
-
page = new DisplayUserWorkspaceActionsPage(context, props);
|
|
194
|
-
await page.editSubscriptionKey();
|
|
195
|
-
expect(props.administrationWorkspaceContext.onMustEditSubscriptionKey).toHaveBeenCalled();
|
|
196
|
-
});
|
|
197
|
-
});
|
|
@@ -1,133 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
/**
|
|
3
|
-
* Passbolt ~ Open source password manager for teams
|
|
4
|
-
* Copyright (c) 2020 Passbolt SA (https://www.passbolt.com)
|
|
5
|
-
*
|
|
6
|
-
* Licensed under GNU Affero General Public License version 3 of the or any later version.
|
|
7
|
-
* For full copyright and license information, please see the LICENSE.txt
|
|
8
|
-
* Redistributions of files must retain the above copyright notice.
|
|
9
|
-
*
|
|
10
|
-
* @copyright Copyright (c) 2020 Passbolt SA (https://www.passbolt.com)
|
|
11
|
-
* @license https://opensource.org/licenses/AGPL-3.0 AGPL License
|
|
12
|
-
* @link https://www.passbolt.com Passbolt(tm)
|
|
13
|
-
* @since 2.11.0
|
|
14
|
-
*/
|
|
15
|
-
import {fireEvent, render, waitFor} from "@testing-library/react";
|
|
16
|
-
import AppContext from "../../../contexts/AppContext";
|
|
17
|
-
import React from "react";
|
|
18
|
-
import DisplayUserWorkspaceActions from "./DisplayAdministrationWorkspaceActions";
|
|
19
|
-
import MockTranslationProvider from "../../../test/mock/components/Internationalisation/MockTranslationProvider";
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* The DisplayUserWorkspaceActions component represented as a page
|
|
23
|
-
*/
|
|
24
|
-
export default class DisplayUserWorkspaceActionsPage {
|
|
25
|
-
/**
|
|
26
|
-
* Default constructor
|
|
27
|
-
* @param appContext An app context
|
|
28
|
-
* @param props Props to attach
|
|
29
|
-
*/
|
|
30
|
-
constructor(appContext, props) {
|
|
31
|
-
this._page = render(
|
|
32
|
-
<MockTranslationProvider>
|
|
33
|
-
<AppContext.Provider value={appContext}>
|
|
34
|
-
<DisplayUserWorkspaceActions {...props}/>
|
|
35
|
-
</AppContext.Provider>
|
|
36
|
-
</MockTranslationProvider>
|
|
37
|
-
);
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
/**
|
|
41
|
-
* Returns the workspace action
|
|
42
|
-
*/
|
|
43
|
-
get workspaceAction() {
|
|
44
|
-
return this._page.container.querySelector('.actions');
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
/**
|
|
48
|
-
* Returns the number of actions
|
|
49
|
-
*/
|
|
50
|
-
get count() {
|
|
51
|
-
return this._page.container.querySelectorAll('li').length;
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
/**
|
|
55
|
-
* Returns the save button
|
|
56
|
-
*/
|
|
57
|
-
get saveButton() {
|
|
58
|
-
return this._page.container.querySelectorAll('li a')[0];
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
/**
|
|
62
|
-
* Returns the test button
|
|
63
|
-
*/
|
|
64
|
-
get testButton() {
|
|
65
|
-
return this._page.container.querySelectorAll('li a')[1];
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
/**
|
|
69
|
-
* Returns the save button
|
|
70
|
-
*/
|
|
71
|
-
get simulateSynchronizeButton() {
|
|
72
|
-
return this._page.container.querySelectorAll('li a')[2];
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
/**
|
|
76
|
-
* Returns the save button
|
|
77
|
-
*/
|
|
78
|
-
get synchronizeButton() {
|
|
79
|
-
return this._page.container.querySelectorAll('li a')[3];
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
/**
|
|
83
|
-
* Returns the edit subscription key button
|
|
84
|
-
*/
|
|
85
|
-
get editSubscriptionKeyButton() {
|
|
86
|
-
return this._page.container.querySelector('li a');
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
/**
|
|
90
|
-
* Returns true if the page object exists in the container
|
|
91
|
-
*/
|
|
92
|
-
exists() {
|
|
93
|
-
return this.workspaceAction !== null;
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
/** Click on the element */
|
|
97
|
-
async click(element) {
|
|
98
|
-
const leftClick = {button: 0};
|
|
99
|
-
fireEvent.click(element, leftClick);
|
|
100
|
-
await waitFor(() => {
|
|
101
|
-
});
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
/** Click on the save element */
|
|
105
|
-
async save() {
|
|
106
|
-
await this.click(this.saveButton);
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
/** Click on the test element */
|
|
110
|
-
async test() {
|
|
111
|
-
await this.click(this.testButton);
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
/** Click on the simulate synchronize element */
|
|
115
|
-
async simulateSynchronize() {
|
|
116
|
-
await this.click(this.simulateSynchronizeButton);
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
/** Click on the synchronize element */
|
|
120
|
-
async synchronize() {
|
|
121
|
-
await this.click(this.synchronizeButton);
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
/** Click on the edit subscription key element */
|
|
125
|
-
async editSubscriptionKey() {
|
|
126
|
-
await this.click(this.editSubscriptionKeyButton);
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|