passbolt-styleguide 3.6.2 → 3.7.0-alpha1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -6
- package/build/css/help.min.css +3 -7
- package/build/css/public.min.css +3 -16
- package/build/css/themes/default/api_authentication.min.css +3 -3
- package/build/css/themes/default/api_cloud.min.css +3 -3
- package/build/css/themes/default/api_main.min.css +3 -12
- package/build/css/themes/default/api_reports.min.css +3 -12
- package/build/css/themes/default/api_webinstaller.min.css +3 -12
- package/build/css/themes/default/ext_app.min.css +3 -12
- package/build/css/themes/default/ext_authentication.min.css +3 -3
- package/build/css/themes/default/ext_external.min.css +2 -2
- package/build/css/themes/default/ext_in_form_cta.min.css +3 -3
- package/build/css/themes/default/ext_in_form_menu.min.css +3 -3
- package/build/css/themes/default/ext_quickaccess.min.css +3 -3
- package/build/css/themes/midgar/api_authentication.min.css +3 -3
- package/build/css/themes/midgar/api_main.min.css +3 -12
- package/build/css/themes/midgar/api_reports.min.css +3 -12
- package/build/css/themes/midgar/ext_app.min.css +3 -12
- package/build/css/themes/midgar/ext_authentication.min.css +3 -3
- package/build/css/themes/midgar/ext_in_form_cta.min.css +3 -3
- package/build/css/themes/midgar/ext_in_form_menu.min.css +3 -3
- package/build/css/themes/midgar/ext_quickaccess.min.css +3 -3
- package/build/js/dist/api-account-recovery.js +1 -1
- package/build/js/dist/api-app.js +1 -1
- package/build/js/dist/api-app.js.LICENSE.txt +25 -1
- package/build/js/dist/api-recover.js +1 -1
- package/build/js/dist/api-setup.js +1 -1
- package/build/js/dist/api-triage.js +1 -1
- package/build/js/dist/api-vendors.js +1 -1
- package/build/js/dist/api-vendors.js.LICENSE.txt +43 -7
- package/i18next-parser.config.js +22 -0
- package/package.json +8 -5
- package/src/img/og/og_image.png +0 -0
- package/src/locales/de-DE/common.json +308 -173
- package/src/locales/en-UK/common.json +155 -175
- package/src/locales/es-ES/common.json +955 -0
- package/src/locales/fr-FR/common.json +308 -174
- package/src/locales/ja-JP/common.json +292 -172
- package/src/locales/lt-LT/common.json +985 -0
- package/src/locales/nl-NL/common.json +329 -194
- package/src/locales/pl-PL/common.json +337 -172
- package/src/locales/sv-SE/common.json +307 -172
- package/src/public-website-sign-in/PublicWebsiteSignInBootstrap.js +25 -0
- package/src/public-website-sign-in/lib/SignIn/SignInManager.js +85 -0
- package/src/public-website-sign-in/lib/SignIn/SignInManager.test.data.js +45 -0
- package/src/public-website-sign-in/lib/SignIn/SignInManager.test.js +59 -0
- package/src/public-website-sign-in/lib/SignIn/SignInManager.test.page.js +67 -0
- package/src/react-extension/ExtBootstrapAccountRecovery.js +17 -0
- package/src/react-extension/ExtBootstrapApp.js +17 -0
- package/src/react-extension/ExtBootstrapLogin.js +17 -0
- package/src/react-extension/ExtBootstrapRecover.js +17 -0
- package/src/react-extension/ExtBootstrapSetup.js +17 -0
- package/src/react-extension/components/AccountRecovery/AccountRecoveryInviteUserSettingPreferenceDialog/AccountRecoveryInviteUserSettingPreferenceDialog.test.stories.js +1 -1
- package/src/react-extension/components/AccountRecovery/HandleAccountRecoveryUserSettingsRoute/HandleAccountRecoveryUserSettingsRoute.js +1 -9
- package/src/react-extension/components/AccountRecovery/HandleReviewAccountRecoveryRequestWorkflow/HandleReviewAccountRecoveryRequestWorkflow.js +1 -9
- package/src/react-extension/components/AccountRecovery/ManageAccountRecoveryUserSettings/ManageAccountRecoveryUserSettings.js +1 -1
- package/src/react-extension/components/AccountRecovery/ManageAccountRecoveryUserSettings/ManageAccountRecoveryUserSettings.test.stories.js +1 -1
- package/src/react-extension/components/AccountRecovery/ReviewAccountRecoveryRequest/ReviewAccountRecoveryRequest.js +1 -1
- package/src/react-extension/components/AccountRecovery/ReviewAccountRecoveryRequest/ReviewAccountRecoveryRequest.test.stories.js +1 -1
- package/src/react-extension/components/Administration/ConfirmSaveAccountRecoverySettings/ConfirmSaveAccountRecoverySettings.js +6 -3
- package/src/react-extension/components/Administration/ConfirmSaveAccountRecoverySettings/ConfirmSaveAccountRecoverySettings.test.data.js +10 -7
- package/src/react-extension/components/Administration/ConfirmSaveAccountRecoverySettings/ConfirmSaveAccountRecoverySettings.test.stories.js +1 -1
- package/src/react-extension/components/Administration/DisplayAdministrationMenu/DisplayAdministrationMenu.js +2 -15
- package/src/react-extension/components/Administration/DisplayAdministrationWorkspaceActions/DisplayAdministrationAccountRecoveryAction/DisplayAdministrationAccountRecoveryActions.js +2 -12
- package/src/react-extension/components/Administration/DisplayAdministrationWorkspaceActions/DisplayAdministrationWorkspaceActions.js +2 -11
- package/src/react-extension/components/Administration/DisplayAdministrationWorkspaceBreadcrumb/DisplayAdministrationWorkspaceBreadcrumb.js +1 -1
- package/src/react-extension/components/Administration/DisplayAdministrationWorkspaceBreadcrumb/DisplayAdministrationWorkspaceBreadcrumb.test.js +1 -1
- package/src/react-extension/components/Administration/DisplayEmailNotificationsAdministration/DisplayEmailNotificationsAdministration.js +1 -9
- package/src/react-extension/components/Administration/DisplayEmailNotificationsAdministration/DisplayEmailNotificationsAdministration.test.stories.js +1 -1
- package/src/react-extension/components/Administration/DisplayInternationalizationAdministration/DisplayInternationalizationAdministration.js +1 -9
- package/src/react-extension/components/Administration/DisplayInternationalizationAdministration/DisplayInternationalizationAdministration.test.page.js +1 -1
- package/src/react-extension/components/Administration/DisplayInternationalizationAdministration/DisplayInternationalizationAdministration.test.stories.js +12 -6
- package/src/react-extension/components/Administration/DisplayLoadingDialog/DisplayLoadingDialog.js +2 -11
- package/src/react-extension/components/Administration/DisplayMfaAdministration/DisplayMfaAdministration.js +6 -6
- package/src/react-extension/components/Administration/DisplayMfaAdministration/DisplayMfaAdministration.test.stories.js +1 -1
- package/src/react-extension/components/Administration/DisplaySimulateSynchronizeUserDirectoryAdministration/DisplaySimulateSynchronizeUserDirectoryAdministration.js +25 -1
- package/src/react-extension/components/Administration/DisplaySimulateSynchronizeUserDirectoryAdministration/DisplaySimulateSynchronizeUserDirectoryAdministration.test.js +1 -1
- package/src/react-extension/components/Administration/DisplaySimulateSynchronizeUserDirectoryAdministration/DisplaySimulateSynchronizeUserDirectoryAdministration.test.stories.js +1 -1
- package/src/react-extension/components/Administration/DisplaySubscriptionKey/DisplaySubscriptionKey.test.stories.js +1 -1
- package/src/react-extension/components/Administration/DisplaySynchronizeUserDirectoryAdministration/DisplaySynchronizeUserDirectoryAdministration.js +25 -1
- package/src/react-extension/components/Administration/DisplaySynchronizeUserDirectoryAdministration/DisplaySynchronizeUserDirectoryAdministration.test.js +1 -1
- package/src/react-extension/components/Administration/DisplaySynchronizeUserDirectoryAdministration/DisplaySynchronizeUserDirectoryAdministration.test.stories.js +1 -1
- package/src/react-extension/components/Administration/DisplayTestUserDirectoryAdministration/DisplayTestUserDirectoryAdministration.js +12 -2
- package/src/react-extension/components/Administration/DisplayTestUserDirectoryAdministration/DisplayTestUserDirectoryAdministration.test.js +1 -1
- package/src/react-extension/components/Administration/DisplayTestUserDirectoryAdministration/DisplayTestUserDirectoryAdministration.test.stories.js +1 -1
- package/src/react-extension/components/Administration/DisplayUserDirectoryAdministration/DisplayUserDirectoryAdministration.js +24 -24
- package/src/react-extension/components/Administration/DisplayUserDirectoryAdministration/DisplayUserDirectoryAdministration.test.stories.js +1 -1
- package/src/react-extension/components/Administration/EditSubscriptionKey/EditSubscriptionKey.js +1 -1
- package/src/react-extension/components/Administration/EditSubscriptionKey/EditSubscriptionKey.test.stories.js +1 -1
- package/src/react-extension/components/Administration/ManageAccountRecoveryAdministrationSettings/ManageAccountRecoveryAdministrationSettings.js +6 -3
- package/src/react-extension/components/Administration/ManageAccountRecoveryAdministrationSettings/ManageAccountRecoveryAdministrationSettings.test.data.js +20 -5
- package/src/react-extension/components/Administration/ManageAccountRecoveryAdministrationSettings/ManageAccountRecoveryAdministrationSettings.test.stories.js +1 -1
- package/src/react-extension/components/Administration/ProvideAccountRecoveryOrganizationKey/ProvideAccountRecoveryOrganizationKey.js +1 -11
- package/src/react-extension/components/Administration/ProvideAccountRecoveryOrganizationKey/ProvideAccountRecoveryOrganizationKey.test.stories.js +1 -1
- package/src/react-extension/components/Administration/SelectAccountRecoveryOrganizationKey/DownloadOrganizationKey.js +1 -9
- package/src/react-extension/components/Administration/SelectAccountRecoveryOrganizationKey/DownloadOrganizationKey.test.stories.js +1 -1
- package/src/react-extension/components/Administration/SelectAccountRecoveryOrganizationKey/GenerateOrganizationKey.js +90 -46
- package/src/react-extension/components/Administration/SelectAccountRecoveryOrganizationKey/GenerateOrganizationKey.test.js +61 -17
- package/src/react-extension/components/Administration/SelectAccountRecoveryOrganizationKey/ImportOrganizationKey.js +1 -1
- package/src/react-extension/components/Administration/SelectAccountRecoveryOrganizationKey/SelectAccountRecoveryOrganizationKey.js +1 -9
- package/src/react-extension/components/Administration/SelectAccountRecoveryOrganizationKey/SelectAccountRecoveryOrganizationKey.test.page.js +14 -0
- package/src/react-extension/components/Administration/SelectAccountRecoveryOrganizationKey/SelectAccountRecoveryOrganizationKey.test.stories.js +1 -1
- package/src/react-extension/components/Announcement/AnnouncementWrapper/AnnouncementWrapper.js +3 -2
- package/src/react-extension/components/Announcement/HandleSubscriptionAnnouncement/DisplayExpiredSubscriptionAnnouncement.js +3 -3
- package/src/react-extension/components/Announcement/HandleSubscriptionAnnouncement/DisplayGoingToExpireSubscriptionAnnouncement.js +3 -2
- package/src/react-extension/components/Announcement/HandleSubscriptionAnnouncement/DisplayInvalidSubscriptionAnnouncement.js +3 -3
- package/src/react-extension/components/Authentication/AskForAuthenticationHelpCredentialLost/AskForAuthenticationHelpCredentialLost.js +2 -2
- package/src/react-extension/components/Authentication/AskForAuthenticationHelpCredentialLost/AskForAuthenticationHelpCredentialLost.test.stories.js +1 -1
- package/src/react-extension/components/Authentication/CheckAccountRecoveryEmail/CheckAccountRecoveryEmail.js +2 -2
- package/src/react-extension/components/Authentication/CheckAccountRecoveryEmail/CheckAccountRecoveryEmail.test.stories.js +1 -1
- package/src/react-extension/components/Authentication/CheckMailBox/CheckMailBox.js +2 -12
- package/src/react-extension/components/Authentication/CheckMailBox/CheckMailbox.test.stories.js +1 -1
- package/src/react-extension/components/Authentication/CheckPassphrase/CheckPassphrase.js +88 -41
- package/src/react-extension/components/Authentication/CheckPassphrase/CheckPassphrase.test.stories.js +1 -1
- package/src/react-extension/components/Authentication/ChooseAccountRecoveryPreference/ChooseAccountRecoveryPreference.js +2 -2
- package/src/react-extension/components/Authentication/ChooseAccountRecoveryPreference/ChooseAccountRecoveryPreference.test.stories.js +11 -1
- package/src/react-extension/components/Authentication/ChooseSecurityToken/ChooseSecurityToken.js +2 -2
- package/src/react-extension/components/Authentication/ChooseSecurityToken/ChooseSecurityToken.test.stories.js +1 -1
- package/src/react-extension/components/Authentication/CreateGpgKey/CreateGpgKey.js +24 -14
- package/src/react-extension/components/Authentication/CreateGpgKey/CreateGpgKey.test.js +2 -2
- package/src/react-extension/components/Authentication/CreateGpgKey/CreateGpgKey.test.stories.js +1 -1
- package/src/react-extension/components/Authentication/DisplayAlreadyLoggedInError/DisplayAlreadyLoggedInError.js +2 -2
- package/src/react-extension/components/Authentication/DisplayAlreadyLoggedInError/DisplayAlreadyLoggedInError.test.stories.js +1 -1
- package/src/react-extension/components/Authentication/DisplayBrowserNotSupported/DisplayBrowserNotSupported.js +2 -2
- package/src/react-extension/components/Authentication/DisplayBrowserNotSupported/DisplayBrowserNotSupported.test.stories.js +1 -1
- package/src/react-extension/components/Authentication/DisplayExpiredTokenError/DisplayExpiredTokenError.js +2 -2
- package/src/react-extension/components/Authentication/DisplayExpiredTokenError/DisplayExpiredTokenError.test.stories.js +1 -1
- package/src/react-extension/components/Authentication/DisplayRequireInvitationError/DisplayRequireInvitationError.js +2 -2
- package/src/react-extension/components/Authentication/DisplayRequireInvitationError/DisplayRequireInvitationError.test.stories.js +1 -1
- package/src/react-extension/components/Authentication/DisplayUnexpectedError/DisplayUnexpectedError.js +3 -3
- package/src/react-extension/components/Authentication/DisplayUnexpectedError/DisplayUnexpectedError.test.stories.js +1 -1
- package/src/react-extension/components/Authentication/DownloadRecoveryKit/DownloadRecoveryKit.js +2 -2
- package/src/react-extension/components/Authentication/DownloadRecoveryKit/DownloadRecoveryKit.test.stories.js +1 -1
- package/src/react-extension/components/Authentication/EnterNameForm/EnterNameForm.js +6 -6
- package/src/react-extension/components/Authentication/EnterNameForm/EnterNameForm.test.stories.js +1 -1
- package/src/react-extension/components/Authentication/EnterUsernameForm/EnterUsernameForm.js +1 -1
- package/src/react-extension/components/Authentication/EnterUsernameForm/EnterUsernameForm.test.stories.js +1 -1
- package/src/react-extension/components/Authentication/ImportGpgKey/ImportGpgKey.js +34 -7
- package/src/react-extension/components/Authentication/ImportGpgKey/ImportGpgKey.test.data.js +2 -1
- package/src/react-extension/components/Authentication/ImportGpgKey/ImportGpgKey.test.js +20 -1
- package/src/react-extension/components/Authentication/ImportGpgKey/ImportGpgKey.test.page.js +4 -0
- package/src/react-extension/components/Authentication/ImportGpgKey/ImportGpgKey.test.stories.js +1 -1
- package/src/react-extension/components/Authentication/InstallExtension/InstallExtension.js +2 -2
- package/src/react-extension/components/Authentication/InstallExtension/InstallExtension.test.stories.js +4 -1
- package/src/react-extension/components/Authentication/IntroduceExtension/IntroduceExtension.js +2 -2
- package/src/react-extension/components/Authentication/IntroduceExtension/IntroduceExtension.test.stories.js +1 -1
- package/src/react-extension/components/Authentication/NotifyExpiredSession/NotifyExpiredSession.js +1 -9
- package/src/react-extension/components/Authentication/NotifyExpiredSession/NotifyExpiredSession.test.stories.js +1 -1
- package/src/react-extension/components/Authentication/RequestAccountRecovery/RequestAccountRecovery.js +2 -2
- package/src/react-extension/components/Authentication/RequestAccountRecovery/RequestAccountRecovery.test.stories.js +6 -1
- package/src/react-extension/components/AuthenticationAccountRecovery/DisplayExpiredTokenError/DisplayExpiredTokenError.js +2 -2
- package/src/react-extension/components/AuthenticationAccountRecovery/DisplayExpiredTokenError/DisplayExpiredTokenError.test.stories.js +1 -1
- package/src/react-extension/components/AuthenticationAccountRecovery/DisplayRestartFromScratchError/DisplayRestartFromScratchError.js +2 -2
- package/src/react-extension/components/AuthenticationAccountRecovery/DisplayRestartFromScratchError/DisplayRestartFromScratchError.test.stories.js +1 -1
- package/src/react-extension/components/AuthenticationAccountRecovery/OrchestrateAccountRecovery/OrchestrateAccountRecovery.js +2 -2
- package/src/react-extension/components/AuthenticationLogin/AcceptLoginServerKeyChange/AcceptLoginServerKeyChange.js +2 -2
- package/src/react-extension/components/AuthenticationLogin/AcceptLoginServerKeyChange/AcceptLoginServerKeyChange.test.stories.js +1 -1
- package/src/react-extension/components/AuthenticationLogin/Login/Login.js +1 -9
- package/src/react-extension/components/AuthenticationLogin/Login/Login.test.stories.js +1 -1
- package/src/react-extension/components/AuthenticationLogin/OrchestrateLogin/OrchestrateLoginBoxFooter.js +2 -2
- package/src/react-extension/components/AuthenticationLogin/OrchestrateLogin/OrchestrateLoginBoxMain.js +2 -2
- package/src/react-extension/components/AuthenticationPassphrase/InputPassphrase/InputPassphrase.js +1 -1
- package/src/react-extension/components/AuthenticationPassphrase/InputPassphrase/InputPassphrase.test.stories.js +1 -1
- package/src/react-extension/components/AuthenticationRecover/RecoverAuthentication/RecoverAuthentication.js +3 -2
- package/src/react-extension/components/AuthenticationSetup/SetupAuthentication/SetupAuthentication.js +3 -3
- package/src/react-extension/components/Common/ActionFeedback/DisplayActionFeedbacks.test.stories.js +1 -1
- package/src/react-extension/components/Common/ActionFeedback/ShareActionFeedback.js +2 -2
- package/src/react-extension/components/Common/Autocomplete/Autocomplete.js +8 -2
- package/src/react-extension/components/Common/Avatar/UserAvatar.test.data.js +6 -4
- package/src/react-extension/components/Common/Avatar/UserAvatar.test.stories.js +3 -2
- package/src/react-extension/components/Common/Button/Button.test.stories.js +5 -5
- package/src/react-extension/components/Common/Checkbox/Checkbox.test.stories.js +1 -1
- package/src/react-extension/components/Common/ContextualMenu/ContextualMenu.test.stories.js +1 -1
- package/src/react-extension/components/Common/ContextualMenu/ContextualMenuWrapper.js +10 -8
- package/src/react-extension/components/Common/Dialog/DialogCloseButton/DialogCloseButton.js +2 -1
- package/src/react-extension/components/Common/Dialog/DialogWrapper/DialogFooter.test.stories.js +2 -2
- package/src/react-extension/components/Common/Dialog/DialogWrapper/DialogWrapper.js +2 -2
- package/src/react-extension/components/Common/Dialog/DialogWrapper/DialogWrapper.test.stories.js +1 -1
- package/src/react-extension/components/Common/DragInfo/DragInfo.test.stories.js +10 -8
- package/src/react-extension/components/Common/Error/NotifyError/NotifyError.js +3 -11
- package/src/react-extension/components/Common/Error/NotifyError/NotifyError.test.stories.js +6 -1
- package/src/react-extension/components/Common/Footer/Footer.js +3 -13
- package/src/react-extension/components/Common/Inputs/Autocomplete/Autocomplete.js +16 -7
- package/src/react-extension/components/Common/Inputs/Autocomplete/AutocompleteItemLoading.js +4 -0
- package/src/react-extension/components/Common/Inputs/FormSubmitButton/FormCancelButton.js +3 -12
- package/src/react-extension/components/Common/Inputs/FormSubmitButton/FormSubmitButton.js +2 -2
- package/src/react-extension/components/Common/Internationalisation/TranslationProvider.js +0 -1
- package/src/react-extension/components/Common/Link/Link.test.stories.js +1 -1
- package/src/react-extension/components/Common/Loading/LoadingBar/LoadingBar.test.stories.js +1 -1
- package/src/react-extension/components/Common/Loading/LoadingSpinner/LoadingSpinner.test.stories.js +1 -1
- package/src/react-extension/components/Common/Menu/DisplayMainMenu.js +2 -11
- package/src/react-extension/components/Common/Navigation/Search/SearchBar.js +7 -7
- package/src/react-extension/components/Common/Navigation/Search/SearchBar.test.stories.js +1 -1
- package/src/react-extension/components/Common/Progress/DisplayProgress/DisplayProgress.js +2 -11
- package/src/react-extension/components/Common/Progress/DisplayProgress/DisplayProgress.test.stories.js +1 -1
- package/src/react-extension/components/Common/RadioButton/RadioButton.test.stories.js +1 -1
- package/src/react-extension/components/Common/Select/Select.js +44 -12
- package/src/react-extension/components/Common/Select/Select.test.stories.js +1 -1
- package/src/react-extension/components/Common/Text/Text.test.stories.js +1 -1
- package/src/react-extension/components/Common/TextField/TextField.test.stories.js +1 -1
- package/src/react-extension/components/Common/Toggle/Toggle.test.stories.js +1 -1
- package/src/react-extension/components/Common/Tooltip/Tooltip.test.stories.js +2 -2
- package/src/react-extension/components/Internationalisation/ChangeLocale/ChangeLocale.test.page.js +1 -1
- package/src/react-extension/components/Resource/CreateResource/CreateResource.js +9 -9
- package/src/react-extension/components/Resource/CreateResource/CreateResource.test.stories.js +1 -1
- package/src/react-extension/components/Resource/DeleteResource/DeleteResource.js +3 -3
- package/src/react-extension/components/Resource/DeleteResource/DeleteResource.test.page.js +1 -1
- package/src/react-extension/components/Resource/DeleteResource/DeleteResource.test.stories.js +1 -1
- package/src/react-extension/components/Resource/DisplayResourcesList/DisplayResourcesList.js +4 -4
- package/src/react-extension/components/Resource/DisplayResourcesList/DisplayResourcesList.test.stories.js +1 -1
- package/src/react-extension/components/Resource/DisplayResourcesWorkspace/DisplayResourcesWorkspace.js +1 -9
- package/src/react-extension/components/Resource/DisplayResourcesWorkspace/DisplayResourcesWorkspaceMainMenu.js +8 -17
- package/src/react-extension/components/Resource/DisplayResourcesWorkspace/DisplayResourcesWorkspaceMainMenu.test.js +2 -2
- package/src/react-extension/components/Resource/DisplayResourcesWorkspace/DisplayResourcesWorkspaceMainMenu.test.stories.js +1 -1
- package/src/react-extension/components/Resource/DisplayResourcesWorkspace/DisplayResourcesWorkspaceMenu.js +6 -6
- package/src/react-extension/components/Resource/DisplayResourcesWorkspace/DisplayResourcesWorkspaceMenu.test.stories.js +1 -1
- package/src/react-extension/components/Resource/EditResource/EditResource.js +8 -8
- package/src/react-extension/components/Resource/EditResource/EditResource.test.stories.js +1 -1
- package/src/react-extension/components/Resource/ExportResources/ExportResources.js +9 -10
- package/src/react-extension/components/Resource/ExportResources/ExportResources.test.stories.js +1 -1
- package/src/react-extension/components/Resource/ExportResources/ExportResourcesCredentials.js +1 -1
- package/src/react-extension/components/Resource/ExportResources/ExportResourcesCredentials.test.stories.js +1 -1
- package/src/react-extension/components/Resource/FilterResourcesByBreadcrumb/FilterResourcesByBreadcrumb.test.stories.js +1 -1
- package/src/react-extension/components/Resource/FilterResourcesByFolders/FilterResourcesByFolders.js +2 -11
- package/src/react-extension/components/Resource/FilterResourcesByFolders/FilterResourcesByFolders.test.stories.js +1 -1
- package/src/react-extension/components/Resource/FilterResourcesByFolders/FilterResourcesByFoldersItemContextualMenu.js +2 -11
- package/src/react-extension/components/Resource/FilterResourcesByFolders/FilterResourcesByRootFolderContextualMenu.js +2 -11
- package/src/react-extension/components/Resource/FilterResourcesByGroups/FilterResourcesByGroups.js +2 -11
- package/src/react-extension/components/Resource/FilterResourcesByGroups/FilterResourcesByGroups.test.stories.js +1 -1
- package/src/react-extension/components/Resource/FilterResourcesByShortcuts/FilterResourcesByShortcuts.js +4 -13
- package/src/react-extension/components/Resource/FilterResourcesByShortcuts/FilterResourcesByShortcuts.test.js +1 -1
- package/src/react-extension/components/Resource/FilterResourcesByShortcuts/FilterResourcesByShortcuts.test.stories.js +1 -1
- package/src/react-extension/components/Resource/FilterResourcesByTags/FilterResourcesByTags.test.js +1 -1
- package/src/react-extension/components/Resource/FilterResourcesByTags/FilterResourcesByTags.test.stories.js +1 -1
- package/src/react-extension/components/Resource/FilterResourcesByTags/FilterResourcesByTagsContextualMenu.js +2 -11
- package/src/react-extension/components/Resource/FilterResourcesByTags/FilterResourcesByTagsList.js +2 -11
- package/src/react-extension/components/Resource/FilterResourcesByTags/FilterResourcesByTagsListContextualMenu.js +3 -12
- package/src/react-extension/components/Resource/FilterResourcesByText/FilterResourcesByText.test.stories.js +1 -1
- package/src/react-extension/components/Resource/ImportResources/ImportResources.test.stories.js +1 -1
- package/src/react-extension/components/Resource/ImportResources/ImportResourcesKeyUnlock.js +1 -1
- package/src/react-extension/components/Resource/ImportResources/ImportResourcesKeyUnlock.test.stories.js +1 -1
- package/src/react-extension/components/Resource/ImportResources/ImportResourcesResult.test.stories.js +1 -1
- package/src/react-extension/components/ResourceComment/AddResourceComment/AddResourceComment.test.stories.js +5 -3
- package/src/react-extension/components/ResourceComment/ConfirmResourceCommentDeletion/ConfirmResourceCommentDeletion.js +1 -1
- package/src/react-extension/components/ResourceComment/ConfirmResourceCommentDeletion/ConfirmResourceCommentDeletion.test.stories.js +1 -1
- package/src/react-extension/components/ResourceComment/DeleteResourceComment/DeleteComment.js +2 -1
- package/src/react-extension/components/ResourceComment/DisplayResourceCommentList/DisplayResourceCommentList.js +1 -9
- package/src/react-extension/components/ResourceComment/DisplayResourceCommentList/DisplayResourceCommentList.test.stories.js +5 -3
- package/src/react-extension/components/ResourceDescription/EditResourceDescription/EditResourceDescription.js +2 -2
- package/src/react-extension/components/ResourceDescription/EditResourceDescription/EditResourceDescription.test.stories.js +5 -3
- package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetails.js +3 -3
- package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetailsActivity.test.stories.js +2 -2
- package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetailsComment.js +2 -11
- package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetailsDescription.js +2 -10
- package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetailsDescription.test.stories.js +1 -1
- package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetailsInformation.js +1 -1
- package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetailsInformation.test.data.js +1 -1
- package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetailsPermission.js +2 -10
- package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetailsTag.js +3 -12
- package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetailsTag.test.stories.js +1 -1
- package/src/react-extension/components/ResourceFolder/CreateResourceFolder/CreateResourceFolder.js +1 -1
- package/src/react-extension/components/ResourceFolder/CreateResourceFolder/CreateResourceFolder.test.stories.js +1 -1
- package/src/react-extension/components/ResourceFolder/DefineResourceFolderMoveStrategy/DefineResourceFolderMoveStrategy.test.stories.js +1 -1
- package/src/react-extension/components/ResourceFolder/DeleteResourceFolder/DeleteResourceFolder.js +1 -1
- package/src/react-extension/components/ResourceFolder/DeleteResourceFolder/DeleteResourceFolder.test.stories.js +1 -1
- package/src/react-extension/components/ResourceFolder/RenameResourceFolder/RenameResourceFolder.js +1 -1
- package/src/react-extension/components/ResourceFolder/RenameResourceFolder/RenameResourceFolder.test.stories.js +1 -1
- package/src/react-extension/components/ResourceFolderDetails/DisplayResourceFolderDetails/DisplayResourceFolderDetails.js +1 -1
- package/src/react-extension/components/ResourceFolderDetails/DisplayResourceFolderDetails/DisplayResourceFolderDetailsActivity.test.stories.js +1 -1
- package/src/react-extension/components/ResourceFolderDetails/DisplayResourceFolderDetails/DisplayResourceFolderDetailsInformation.js +1 -9
- package/src/react-extension/components/ResourceFolderDetails/DisplayResourceFolderDetails/DisplayResourceFolderDetailsInformation.test.stories.js +1 -1
- package/src/react-extension/components/ResourceFolderDetails/DisplayResourceFolderDetails/DisplayResourceFolderDetailsPermissions.test.stories.js +1 -1
- package/src/react-extension/components/ResourcePassword/GenerateResourcePassword/ConfigurePassphraseGenerator.js +10 -7
- package/src/react-extension/components/ResourcePassword/GenerateResourcePassword/ConfigurePassphraseGenerator.test.stories.js +1 -1
- package/src/react-extension/components/ResourcePassword/GenerateResourcePassword/ConfigurePasswordGenerator.js +12 -9
- package/src/react-extension/components/ResourcePassword/GenerateResourcePassword/ConfigurePasswordGenerator.test.stories.js +1 -1
- package/src/react-extension/components/ResourcePassword/GenerateResourcePassword/GenerateResourcePassword.js +10 -7
- package/src/react-extension/components/ResourcePassword/GenerateResourcePassword/GenerateResourcePassword.test.stories.js +1 -1
- package/src/react-extension/components/ResourceTag/DeleteResourceTag/DeleteResourceTag.js +2 -2
- package/src/react-extension/components/ResourceTag/DeleteResourceTag/DeleteResourceTag.test.stories.js +1 -1
- package/src/react-extension/components/ResourceTag/EditResourceTag/EditResourceTag.js +1 -1
- package/src/react-extension/components/ResourceTag/EditResourceTag/EditResourceTag.test.stories.js +1 -1
- package/src/react-extension/components/ResourceTag/EditResourceTags/EditResourceTags.js +2 -2
- package/src/react-extension/components/ResourceTag/EditResourceTags/EditResourceTagsItemViewer.js +2 -11
- package/src/react-extension/components/Share/ShareDialog.js +124 -22
- package/src/react-extension/components/Share/ShareDialog.test.data.js +25 -1
- package/src/react-extension/components/Share/ShareDialog.test.js +87 -36
- package/src/react-extension/components/Share/ShareDialog.test.page.js +1 -1
- package/src/react-extension/components/Share/ShareDialog.test.stories.js +1 -1
- package/src/react-extension/components/Share/SharePermissionDeleteButton.js +2 -1
- package/src/react-extension/components/Share/SharePermissionItem.js +56 -0
- package/src/react-extension/components/Share/ShareVariesDetails.js +2 -11
- package/src/react-extension/components/User/ConfirmDisableUserMFA/ConfirmDisableUserMFA.js +1 -1
- package/src/react-extension/components/User/ConfirmDisableUserMFA/ConfirmDisableUserMFA.test.stories.js +1 -1
- package/src/react-extension/components/User/CreateUser/CreateUser.js +9 -9
- package/src/react-extension/components/User/CreateUser/CreateUser.test.stories.js +1 -1
- package/src/react-extension/components/User/DeleteUser/DeleteUser.js +1 -1
- package/src/react-extension/components/User/DeleteUser/DeleteUser.test.stories.js +1 -1
- package/src/react-extension/components/User/DeleteUser/DeleteUserWithConflicts.js +3 -3
- package/src/react-extension/components/User/DeleteUser/DeleteUserWithConflicts.test.stories.js +1 -1
- package/src/react-extension/components/User/DisplayExpiredAccountRecovery/DisplayExpiredAccountRecovery.js +1 -9
- package/src/react-extension/components/User/DisplayExpiredAccountRecovery/DisplayExpiredAccountRecovery.test.stories.js +1 -1
- package/src/react-extension/components/User/DisplayUserBadgeMenu/DisplayUserBadgeMenu.js +8 -17
- package/src/react-extension/components/User/DisplayUserBadgeMenu/DisplayUserBadgeMenu.test.stories.js +1 -1
- package/src/react-extension/components/User/DisplayUserWorkspaceActions/DisplayUserWorkspaceActions.js +3 -3
- package/src/react-extension/components/User/DisplayUserWorkspaceActions/DisplayUserWorkspaceActions.test.stories.js +1 -1
- package/src/react-extension/components/User/DisplayUserWorkspaceMainActions/DisplayUserWorkspaceMainActions.js +8 -17
- package/src/react-extension/components/User/DisplayUserWorkspaceMainActions/DisplayUserWorkspaceMainActions.test.js +4 -4
- package/src/react-extension/components/User/DisplayUsers/DisplayUsers.js +1 -1
- package/src/react-extension/components/User/DisplayUsers/DisplayUsers.test.stories.js +1 -1
- package/src/react-extension/components/User/DisplayUsersContextualMenu/DisplayUsersContextualMenu.test.stories.js +1 -1
- package/src/react-extension/components/User/EditUser/EditUser.js +9 -9
- package/src/react-extension/components/User/EditUser/EditUser.test.stories.js +1 -1
- package/src/react-extension/components/User/FilterUsersByBreadcrumb/FilterUsersByBreadcrumb.test.stories.js +1 -1
- package/src/react-extension/components/User/FilterUsersByGroups/DisplayGroupContextualMenu.js +2 -11
- package/src/react-extension/components/User/FilterUsersByGroups/FilterUsersByGroup.test.stories.js +1 -1
- package/src/react-extension/components/User/FilterUsersByGroups/FilterUsersByGroupContextualMenu.js +2 -11
- package/src/react-extension/components/User/FilterUsersByShortcut/FilterUsersByShortcut.js +3 -12
- package/src/react-extension/components/User/FilterUsersByShortcut/FilterUsersByShortcut.test.stories.js +1 -1
- package/src/react-extension/components/User/FilterUsersByText/FilterUsersByText.js +1 -9
- package/src/react-extension/components/User/FilterUsersByText/FilterUsersByText.test.stories.js +1 -1
- package/src/react-extension/components/UserDetails/DisplayUserDetails/DisplayUserDetails.js +3 -3
- package/src/react-extension/components/UserDetails/DisplayUserDetailsAccountRecovery/DisplayUserDetailsAccountRecovery.js +1 -9
- package/src/react-extension/components/UserDetails/DisplayUserDetailsAccountRecovery/DisplayUserDetailsAccountRecovery.test.data.js +1 -1
- package/src/react-extension/components/UserDetails/DisplayUserDetailsAccountRecovery/DisplayUserDetailsAccountRecovery.test.stories.js +1 -1
- package/src/react-extension/components/UserDetails/DisplayUserDetailsActivity/DisplayUserDetailsActivity.js +1 -9
- package/src/react-extension/components/UserDetails/DisplayUserDetailsActivity/DisplayUserDetailsActivity.test.stories.js +1 -1
- package/src/react-extension/components/UserDetails/DisplayUserDetailsGroups/DisplayUserDetailsGroups.test.stories.js +1 -1
- package/src/react-extension/components/UserDetails/DisplayUserDetailsInformation/DisplayUserDetailsInformation.js +1 -1
- package/src/react-extension/components/UserDetails/DisplayUserDetailsInformation/DisplayUserDetailsInformation.test.stories.js +22 -83
- package/src/react-extension/components/UserDetails/DisplayUserDetailsPublicKey/DisplayUserDetailsPublicKey.js +8 -1
- package/src/react-extension/components/UserDetails/DisplayUserDetailsPublicKey/DisplayUserDetailsPublicKey.test.data.js +20 -2
- package/src/react-extension/components/UserDetails/DisplayUserDetailsPublicKey/DisplayUserDetailsPublicKey.test.js +25 -1
- package/src/react-extension/components/UserDetails/DisplayUserDetailsPublicKey/DisplayUserDetailsPublicKey.test.stories.js +28 -26
- package/src/react-extension/components/UserGroup/CreateUserGroup/CreateUserGroup.js +85 -57
- package/src/react-extension/components/UserGroup/CreateUserGroup/CreateUserGroup.test.js +21 -6
- package/src/react-extension/components/UserGroup/CreateUserGroup/CreateUserGroup.test.stories.js +1 -1
- package/src/react-extension/components/UserGroup/DeleteUserGroup/DeleteUserGroup.js +1 -1
- package/src/react-extension/components/UserGroup/DeleteUserGroup/DeleteUserGroup.test.stories.js +1 -1
- package/src/react-extension/components/UserGroup/DeleteUserGroup/DeleteUserGroupWithConflicts.js +2 -2
- package/src/react-extension/components/UserGroup/DeleteUserGroup/DeleteUserGroupWithConflicts.test.stories.js +1 -1
- package/src/react-extension/components/UserGroup/DisplayUserGroupDetails/DisplayUserGroupDetails.js +1 -1
- package/src/react-extension/components/UserGroup/DisplayUserGroupDetailsInformation/DisplayUserGroupDetailsInformation.test.stories.js +1 -1
- package/src/react-extension/components/UserGroup/DisplayUserGroupDetailsMembers/DisplayUserGroupDetailsMembers.js +4 -13
- package/src/react-extension/components/UserGroup/DisplayUserGroupDetailsMembers/DisplayUserGroupDetailsMembers.test.stories.js +1 -1
- package/src/react-extension/components/UserGroup/DisplayUserGroupDetailsMembers/DisplayUserGroupDetailsMembersGroupMember.js +1 -9
- package/src/react-extension/components/UserGroup/EditUserGroup/EditUserGroup.js +132 -151
- package/src/react-extension/components/UserGroup/EditUserGroup/EditUserGroup.test.js +8 -1
- package/src/react-extension/components/UserGroup/EditUserGroup/EditUserGroup.test.page.js +37 -14
- package/src/react-extension/components/UserGroup/EditUserGroup/EditUserGroup.test.stories.js +5 -2
- package/src/react-extension/components/UserGroup/EditUserGroup/EditUserGroupItem.js +209 -0
- package/src/react-extension/components/UserSetting/ChangeUserPassphrase/ConfirmPassphrase.js +1 -1
- package/src/react-extension/components/UserSetting/ChangeUserPassphrase/DisplayChangePassphraseIntroduction.js +2 -3
- package/src/react-extension/components/UserSetting/ChangeUserPassphrase/DownloadRecoveryKit.js +2 -2
- package/src/react-extension/components/UserSetting/ChangeUserPassphrase/EnterNewPassphrase.js +25 -12
- package/src/react-extension/components/UserSetting/ChangeUserPassphrase/EnterNewPassphrase.test.js +5 -1
- package/src/react-extension/components/UserSetting/ChangeUserPassphrase/EnterNewPassphrase.test.page.js +7 -0
- package/src/react-extension/components/UserSetting/ChangeUserSecurityToken/ChangeUserSecurityToken.js +2 -10
- package/src/react-extension/components/UserSetting/ChangeUserSecurityToken/ChangeUserSecurityToken.test.stories.js +1 -1
- package/src/react-extension/components/UserSetting/DisplayUserAccountRecovery/DisplayAccountRecoveryUserSettings.js +1 -1
- package/src/react-extension/components/UserSetting/DisplayUserAccountRecovery/DisplayAccountRecoveryUserSettings.test.stories.js +1 -1
- package/src/react-extension/components/UserSetting/DisplayUserGpgInformation/DisplayUserGpgInformation.js +9 -2
- package/src/react-extension/components/UserSetting/DisplayUserGpgInformation/DisplayUserGpgInformation.test.stories.js +58 -35
- package/src/react-extension/components/UserSetting/DisplayUserProfile/DisplayUserProfile.js +1 -1
- package/src/react-extension/components/UserSetting/DisplayUserProfile/DisplayUserProfile.test.stories.js +1 -1
- package/src/react-extension/components/UserSetting/DisplayUserSettingWorkspaceActions/DisplayUserSettingWorkspaceActions.js +2 -11
- package/src/react-extension/components/UserSetting/DisplayUserSettingsWorkspaceBreadcrumb/DisplayUserSettingsWorkspaceBreadcrumb.js +2 -2
- package/src/react-extension/components/UserSetting/DisplayUserSettingsWorkspaceBreadcrumb/DisplayUserSettingsWorkspaceBreadcrumb.test.stories.js +1 -1
- package/src/react-extension/components/UserSetting/DisplayUserTheme/DisplayUserTheme.js +1 -9
- package/src/react-extension/components/UserSetting/DisplayUserTheme/DisplayUserTheme.test.stories.js +1 -1
- package/src/react-extension/components/UserSetting/EditUserProfile/EditUserProfile.js +8 -8
- package/src/react-extension/components/UserSetting/EditUserProfile/EditUserProfile.test.stories.js +1 -1
- package/src/react-extension/components/UserSetting/NavigateIntoUserSettingsWorkspace/NavigateIntoUserSettingsWorkspace.js +4 -13
- package/src/react-extension/components/UserSetting/NavigateIntoUserSettingsWorkspace/NavigateIntoUserSettingsWorkspace.test.stories.js +1 -1
- package/src/react-extension/components/UserSetting/UploadUserProfileAvatar/UploadUserProfileAvatar.test.stories.js +1 -1
- package/src/react-extension/contexts/Authentication/AuthenticationRecoverContext.js +14 -1
- package/src/react-extension/test/fixture/Settings/siteSettings.js +20 -14
- package/src/react-extension/test/mock/components/Internationalisation/MockTranslationProvider.js +8 -1
- package/src/react-quickaccess/ExtQuickAccess.js +23 -9
- package/src/react-quickaccess/components/AnimatedSwitch/AnimatedSwitch.js +0 -1
- package/src/react-quickaccess/components/ExtensionSetup/SetupExtensionInProgress/SetupExtensionInProgress.js +2 -5
- package/src/react-quickaccess/components/ExtensionSetup/SetupExtensionInProgress/SetupExtensionInProgressPage.test.stories.js +1 -1
- package/src/react-quickaccess/components/FilterResourcesByFavoritePage/FilterResourcesByFavoritePage.js +2 -2
- package/src/react-quickaccess/components/FilterResourcesByFavoritePage/FilterResourcesByFavoritePage.test.stories.js +1 -1
- package/src/react-quickaccess/components/FilterResourcesByGroupPage/FilterResourcesByGroupPage.js +1 -1
- package/src/react-quickaccess/components/FilterResourcesByGroupPage/FilterResourcesByGroupPage.test.stories.js +1 -1
- package/src/react-quickaccess/components/FilterResourcesByItemsIOwnPage/FilterResourcesByItemsIOwnPage.js +1 -1
- package/src/react-quickaccess/components/FilterResourcesByItemsIOwnPage/FilterResourcesByItemsIOwnPage.test.stories.js +1 -1
- package/src/react-quickaccess/components/FilterResourcesByRecentlyModifiedPage/FilterResourcesByRecentlyModifiedPage.js +1 -1
- package/src/react-quickaccess/components/FilterResourcesByRecentlyModifiedPage/FilterResourcesByRecentlyModifiedPage.test.stories.js +1 -1
- package/src/react-quickaccess/components/FilterResourcesBySharedWithMePage/FilterResourcesBySharedWithMePage.js +1 -1
- package/src/react-quickaccess/components/FilterResourcesBySharedWithMePage/FilterResourcesBySharedWithMePage.test.stories.js +1 -1
- package/src/react-quickaccess/components/FilterResourcesByTagPage/FilterResourcesByTagPage.js +1 -1
- package/src/react-quickaccess/components/FilterResourcesByTagPage/FilterResourcesByTagPage.test.stories.js +1 -1
- package/src/react-quickaccess/components/GeneratePasswordPage/ConfigurePasswordGenerator.js +2 -3
- package/src/react-quickaccess/components/GeneratePasswordPage/GeneratePasswordPage.js +3 -3
- package/src/react-quickaccess/components/GeneratePasswordPage/GeneratePasswordPage.test.stories.js +1 -1
- package/src/react-quickaccess/components/Header/Header.test.stories.js +1 -1
- package/src/react-quickaccess/components/HomePage/HomePage.js +0 -8
- package/src/react-quickaccess/components/HomePage/HomePage.test.stories.js +1 -1
- package/src/react-quickaccess/components/LoginPage/LoginPage.js +1 -9
- package/src/react-quickaccess/components/LoginPage/LoginPage.test.stories.js +1 -1
- package/src/react-quickaccess/components/MoreFiltersPage/MoreFiltersPage.js +1 -1
- package/src/react-quickaccess/components/MoreFiltersPage/MoreFiltersPage.test.stories.js +1 -1
- package/src/react-quickaccess/components/PassphraseDialog/PassphraseDialog.js +5 -5
- package/src/react-quickaccess/components/PassphraseDialog/PassphraseDialog.test.stories.js +1 -1
- package/src/react-quickaccess/components/ResourceAutoSave/SaveResource.js +1 -1
- package/src/react-quickaccess/components/ResourceAutoSave/SaveResource.test.stories.js +1 -1
- package/src/react-quickaccess/components/ResourceCreatePage/ResourceCreatePage.js +4 -4
- package/src/react-quickaccess/components/ResourceCreatePage/ResourceCreatePage.test.stories.js +1 -1
- package/src/react-quickaccess/components/ResourceViewPage/ResourceViewPage.js +3 -3
- package/src/react-quickaccess/components/ResourceViewPage/ResourceViewPage.test.stories.js +1 -1
- package/src/react-quickaccess/components/Search/Search.js +5 -5
- package/src/react-quickaccess/components/Search/Search.test.stories.js +1 -1
- package/src/react-web-integration/BrowserIntegrationBootstrap.js +0 -17
- package/src/react-web-integration/components/AskInFormMenuDisplay/AskInFormMenuDisplay.test.stories.js +1 -1
- package/src/react-web-integration/components/DisplayInFormMenu/DisplayInFormMenu.js +2 -2
- package/src/react-web-integration/components/DisplayInFormMenu/DisplayInFormMenu.test.stories.js +1 -1
- package/src/react-web-integration/lib/InForm/InFormFieldSelector.js +11 -1
- package/src/react-web-integration/lib/InForm/InformManager.test.data.js +60 -0
- package/src/react-web-integration/lib/InForm/InformManager.test.js +151 -6
- package/src/react-web-integration/lib/InForm/InformManager.test.page.js +39 -0
- package/src/shared/components/Icons/Icon.test.stories.js +1 -1
- package/src/shared/components/Password/Password.js +2 -1
- package/src/shared/components/Password/Password.test.page.js +4 -1
- package/src/shared/components/Password/Password.test.stories.js +1 -1
- package/src/shared/components/PasswordComplexity/PasswordComplexity.js +2 -2
- package/src/shared/components/PasswordComplexity/PasswordComplexity.test.stories.js +5 -5
- package/src/stories/assets/intro/hero.png +0 -0
- package/src/stories/assets/intro/intro.css +47 -0
- package/test/jest.setup.js +2 -0
|
@@ -1,100 +1,39 @@
|
|
|
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
|
+
*/
|
|
1
14
|
import {MemoryRouter, Route} from "react-router-dom";
|
|
2
15
|
import React from "react";
|
|
3
|
-
import AppContext from "../../../contexts/AppContext";
|
|
4
16
|
import PropTypes from "prop-types";
|
|
5
17
|
import DisplayUserDetailsInformation from "./DisplayUserDetailsInformation";
|
|
6
|
-
import
|
|
7
|
-
|
|
18
|
+
import {defaultProps} from "./DisplayUserDetailsInformation.test.data";
|
|
8
19
|
|
|
9
20
|
export default {
|
|
10
|
-
title: 'Passbolt/UserDetails/DisplayUserDetailsInformation',
|
|
21
|
+
title: 'Passbolt Component/UserDetails/DisplayUserDetailsInformation',
|
|
11
22
|
component: DisplayUserDetailsInformation
|
|
12
23
|
};
|
|
13
24
|
|
|
14
|
-
const context = {
|
|
15
|
-
port: new MockPort(),
|
|
16
|
-
userSettings: {
|
|
17
|
-
getTrustedDomain: () => (new URL(window.location.href)).origin
|
|
18
|
-
},
|
|
19
|
-
siteSettings: {
|
|
20
|
-
getServerTimezone: () => ""
|
|
21
|
-
},
|
|
22
|
-
roles: [
|
|
23
|
-
{
|
|
24
|
-
id: 'a58de6d3-f52c-5080-b79b-a601a647ac85',
|
|
25
|
-
name: 'Admin'
|
|
26
|
-
}
|
|
27
|
-
]
|
|
28
|
-
};
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
25
|
const Template = args =>
|
|
33
|
-
<
|
|
34
|
-
<div className="
|
|
35
|
-
<
|
|
36
|
-
<
|
|
37
|
-
|
|
38
|
-
</MemoryRouter>
|
|
39
|
-
</div>
|
|
26
|
+
<div className="panel aside">
|
|
27
|
+
<div className="detailed-information">
|
|
28
|
+
<MemoryRouter initialEntries={['/']}>
|
|
29
|
+
<Route component={routerProps => <DisplayUserDetailsInformation {...args} {...routerProps}/>}></Route>
|
|
30
|
+
</MemoryRouter>
|
|
40
31
|
</div>
|
|
41
|
-
</
|
|
32
|
+
</div>;
|
|
42
33
|
|
|
43
34
|
Template.propTypes = {
|
|
44
35
|
context: PropTypes.object,
|
|
45
36
|
};
|
|
46
37
|
|
|
47
38
|
export const Initial = Template.bind({});
|
|
48
|
-
Initial.args =
|
|
49
|
-
userWorkspaceContext: {
|
|
50
|
-
onDetailsLocked: () => {},
|
|
51
|
-
details: {
|
|
52
|
-
user: {
|
|
53
|
-
"id": "54c6278e-f824-5fda-91ff-3e946b18d994",
|
|
54
|
-
"role_id": "a58de6d3-f52c-5080-b79b-a601a647ac85",
|
|
55
|
-
"role": {
|
|
56
|
-
"created": "2012-07-04T13:39:25+00:00",
|
|
57
|
-
"description": "Logged in user",
|
|
58
|
-
"id": "a58de6d3-f52c-5080-b79b-a601a647ac85",
|
|
59
|
-
"modified": "2012-07-04T13:39:25+00:00",
|
|
60
|
-
"name": "user"
|
|
61
|
-
},
|
|
62
|
-
"username": "dame@passbolt.com",
|
|
63
|
-
"active": true,
|
|
64
|
-
"deleted": false,
|
|
65
|
-
"created": "2020-05-13T07:32:49+00:00",
|
|
66
|
-
"modified": "2020-05-13T08:32:49+00:00",
|
|
67
|
-
"profile": {
|
|
68
|
-
"id": "2766ff6b-87f1-53a9-98fd-72cd32a3df69",
|
|
69
|
-
"user_id": "54c6278e-f824-5fda-91ff-3e946b18d994",
|
|
70
|
-
"first_name": "Dame Steve",
|
|
71
|
-
"last_name": "Shirley",
|
|
72
|
-
"created": "2020-05-13T09:32:49+00:00",
|
|
73
|
-
"modified": "2020-05-13T09:32:49+00:00",
|
|
74
|
-
"avatar": {
|
|
75
|
-
"id": "81100609-d60d-4dc8-a8c8-de45522eee1b",
|
|
76
|
-
"user_id": "54c6278e-f824-5fda-91ff-3e946b18d994",
|
|
77
|
-
"foreign_key": "2766ff6b-87f1-53a9-98fd-72cd32a3df69",
|
|
78
|
-
"model": "Avatar",
|
|
79
|
-
"filename": "dame steve.png",
|
|
80
|
-
"filesize": 20676,
|
|
81
|
-
"mime_type": "image\/png",
|
|
82
|
-
"extension": "png",
|
|
83
|
-
"hash": "f2695972b9009970ac85aae95f907693268cd249",
|
|
84
|
-
"path": "Avatar\/1b\/9d\/80\/81100609d60d4dc8a8c8de45522eee1b\/81100609d60d4dc8a8c8de45522eee1b.png",
|
|
85
|
-
"adapter": "Local",
|
|
86
|
-
"created": "2020-05-13T09:32:51+00:00",
|
|
87
|
-
"modified": "2020-05-13T09:32:51+00:00",
|
|
88
|
-
"url": {
|
|
89
|
-
"medium": "img\/public\/Avatar\/1b\/9d\/80\/81100609d60d4dc8a8c8de45522eee1b\/81100609d60d4dc8a8c8de45522eee1b.a99472d5.png",
|
|
90
|
-
"small": "img\/public\/Avatar\/1b\/9d\/80\/81100609d60d4dc8a8c8de45522eee1b\/81100609d60d4dc8a8c8de45522eee1b.65a0ba70.png"
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
},
|
|
94
|
-
"__placeholder_last_logged_in__": "",
|
|
95
|
-
"last_logged_in": "",
|
|
96
|
-
is_mfa_enabled: false
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
};
|
|
39
|
+
Initial.args = defaultProps();
|
|
@@ -91,7 +91,14 @@ class DisplayUserDetailsPublicKey extends React.Component {
|
|
|
91
91
|
const fingerprint = gpgkeyInfo.fingerprint;
|
|
92
92
|
const type = this.gpgkeyType[gpgkeyInfo.algorithm];
|
|
93
93
|
const created = this.formatDate(gpgkeyInfo.created);
|
|
94
|
-
|
|
94
|
+
let expires;
|
|
95
|
+
if (gpgkeyInfo.expires === null) {
|
|
96
|
+
expires = "n/a";
|
|
97
|
+
} else if (gpgkeyInfo.expires === "Infinity") {
|
|
98
|
+
expires = this.translate("Never");
|
|
99
|
+
} else {
|
|
100
|
+
expires = this.formatDate(gpgkeyInfo.expires);
|
|
101
|
+
}
|
|
95
102
|
const armoredKey = gpgkeyInfo.armored_key;
|
|
96
103
|
|
|
97
104
|
const formatedGpgkeyInfo = {fingerprint, type, created, expires, armoredKey};
|
|
@@ -24,7 +24,6 @@ export function defaultAppContext(appContext) {
|
|
|
24
24
|
return Object.assign(defaultAppContext, appContext || {});
|
|
25
25
|
}
|
|
26
26
|
|
|
27
|
-
|
|
28
27
|
/**
|
|
29
28
|
* Default props
|
|
30
29
|
* @returns {any}
|
|
@@ -99,9 +98,28 @@ export const mockGpgKey = {
|
|
|
99
98
|
"keyId": "5D9B054F",
|
|
100
99
|
"fingerprint": "03F60E958F4CB29723ACDF761353B5B15D9B054F",
|
|
101
100
|
"algorithm": "rsa",
|
|
102
|
-
"expires":
|
|
101
|
+
"expires": "Infinity",
|
|
103
102
|
"key_created": "2015-08-09T12:48:31+00:00",
|
|
104
103
|
"deleted": false,
|
|
105
104
|
"created": "2020-08-19T14:56:54+00:00",
|
|
106
105
|
"modified": "2020-08-19T14:56:54+00:00"
|
|
107
106
|
};
|
|
107
|
+
|
|
108
|
+
/**
|
|
109
|
+
* Mocked a gpg key
|
|
110
|
+
*/
|
|
111
|
+
export const mockInvalidGpgKey = {
|
|
112
|
+
"id": "04481719-5d9d-5e22-880a-a6b9270601d2",
|
|
113
|
+
"user_id": "f848277c-5398-58f8-a82a-72397af2d450",
|
|
114
|
+
"armored_key": "-----BEGIN PGP PRIVATE KEY BLOCK-----\nVersion: OpenPGP.js v0.3.0\nComment: https://openpgpjs.org\n\nxbYEUubX7gEBANDWhzoP+Tr/IyRSv++vl5jBesQIPTYGQBdzF4YDnGEBABEB\nAAH+CQMIfzdw4/PKNl5gVXdtfDFdSIN8yJT2rbeg3+SsWexXZNNdRaONWaiB\nZ5cG9Q6+BoXKsEshIdcYOgwsAgRxlPpRA34Vvmg2QBk7PhdrkbK7aqENsJ1w\ndIlLD6p9GmLE20yVff58/fMiUtPRgsD83SpKTAX6EM1ulpkuQQNjmrVc5qc8\n7AMdF80JdW5kZWZpbmVkwj8EEAEIABMFAlLm1+4JEBD8MASZrpALAhsDAAAs\nQgD8CUrwv7Hrp/INR0/UvAvzS52VztREQwQWTJMrgTNHBGjHtgRS5tfuAQEA\nnys9SaSgR+l6iZc/M8hGIUmbuahE2/+mtw+/l0RO+WcAEQEAAf4JAwjr39Yi\nFzjxImDN1IoYVsonA9M+BtIIJHafuQUHjyEr1paJJK5xS6KlyGgpMTXTD6y/\nqxS3ZSPPzHGRrs2CmkVEiPmurn9Ed05tb0y9OnJkWtuh3z9VVq9d8zHzuENa\nbUfli+P/v+dRaZ+1rSOxUFbFYbFB5XK/A9b/OPFrv+mb4KrtLxugwj8EGAEI\nABMFAlLm1+4JEBD8MASZrpALAhsMAAC3IgD8DnLGbMnpLtrX72RCkPW1ffLq\n71vlXMJNXvoCeuejiRw=\n-----END PGP PRIVATE KEY BLOCK-----",
|
|
115
|
+
"bits": 256,
|
|
116
|
+
"uid": "undefined \u003C\u003E",
|
|
117
|
+
"keyId": "99ae900b",
|
|
118
|
+
"fingerprint": "C694577FF69DE85C07935DF310FC300499AE900B",
|
|
119
|
+
"algorithm": "rsa",
|
|
120
|
+
"expires": null,
|
|
121
|
+
"key_created": "2014-01-27T22:04:30.000Z",
|
|
122
|
+
"deleted": false,
|
|
123
|
+
"created": "2020-08-19T14:56:54+00:00",
|
|
124
|
+
"modified": "2020-08-19T14:56:54+00:00"
|
|
125
|
+
};
|
|
@@ -16,13 +16,22 @@
|
|
|
16
16
|
* Unit tests on FilterUserByShortcut in regard of specifications
|
|
17
17
|
*/
|
|
18
18
|
|
|
19
|
-
import {defaultAppContext, defaultProps, mockGpgKey} from "./DisplayUserDetailsPublicKey.test.data";
|
|
19
|
+
import {defaultAppContext, defaultProps, mockGpgKey, mockInvalidGpgKey} from "./DisplayUserDetailsPublicKey.test.data";
|
|
20
20
|
import DisplayUserDetailsPublicKeyPage from "./DisplayUserDetailsPublicKey.test.page";
|
|
21
|
+
import {DateTime} from "luxon";
|
|
21
22
|
|
|
22
23
|
beforeEach(() => {
|
|
23
24
|
jest.resetModules();
|
|
24
25
|
});
|
|
25
26
|
|
|
27
|
+
function formatDate(data) {
|
|
28
|
+
try {
|
|
29
|
+
return DateTime.fromJSDate(new Date(data)).setLocale("en-US").toLocaleString(DateTime.DATETIME_FULL);
|
|
30
|
+
} catch (error) {
|
|
31
|
+
return "";
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
26
35
|
describe("Display User Details Information", () => {
|
|
27
36
|
let page; // The page to test against
|
|
28
37
|
const context = defaultAppContext(); // The applicative context
|
|
@@ -37,10 +46,12 @@ describe("Display User Details Information", () => {
|
|
|
37
46
|
});
|
|
38
47
|
|
|
39
48
|
it('As LU I should not initially see the information area as expanded', () => {
|
|
49
|
+
expect.assertions(1);
|
|
40
50
|
expect(page.isCollapsed).toBeTruthy();
|
|
41
51
|
});
|
|
42
52
|
|
|
43
53
|
it('As LU I should see the information area when I collapse the area', async() => {
|
|
54
|
+
expect.assertions(2);
|
|
44
55
|
await page.toggleCollapse();
|
|
45
56
|
expect(page.isCollapsed).toBeFalsy();
|
|
46
57
|
|
|
@@ -49,6 +60,7 @@ describe("Display User Details Information", () => {
|
|
|
49
60
|
});
|
|
50
61
|
|
|
51
62
|
it('As LU I should copy the public key', async() => {
|
|
63
|
+
expect.assertions(2);
|
|
52
64
|
jest.spyOn(props.actionFeedbackContext, "displaySuccess").mockImplementationOnce(() => {});
|
|
53
65
|
await page.toggleCollapse();
|
|
54
66
|
await page.copyPublicKey();
|
|
@@ -57,8 +69,20 @@ describe("Display User Details Information", () => {
|
|
|
57
69
|
});
|
|
58
70
|
|
|
59
71
|
it('As LU I should see the appropriate detailed user fingerprint', async() => {
|
|
72
|
+
expect.assertions(2);
|
|
60
73
|
await page.toggleCollapse();
|
|
61
74
|
expect(page.fingerprint).toContain('03F6 0E95 8F4C B297 23AC<br>DF76 1353 B5B1 5D9B 054F');
|
|
62
75
|
expect(page.type).toBe('RSA');
|
|
63
76
|
});
|
|
77
|
+
|
|
78
|
+
it('As LU I should see the details of an invalid key', async() => {
|
|
79
|
+
expect.assertions(4);
|
|
80
|
+
jest.spyOn(context.port, 'request').mockImplementation(jest.fn(() => mockInvalidGpgKey));
|
|
81
|
+
|
|
82
|
+
await page.toggleCollapse();
|
|
83
|
+
expect(page.fingerprint).toContain('C694 577F F69D E85C 0793<br>5DF3 10FC 3004 99AE 900B');
|
|
84
|
+
expect(page.type).toBe('RSA');
|
|
85
|
+
expect(page.created).toBe(formatDate('2020-08-19T14:56:54+00:00'));
|
|
86
|
+
expect(page.expires).toBe('n/a');
|
|
87
|
+
});
|
|
64
88
|
});
|
|
@@ -3,38 +3,23 @@ import React from "react";
|
|
|
3
3
|
import AppContext from "../../../contexts/AppContext";
|
|
4
4
|
import PropTypes from "prop-types";
|
|
5
5
|
import DisplayUserDetailsPublicKey from "./DisplayUserDetailsPublicKey";
|
|
6
|
-
|
|
6
|
+
import {mockGpgKey, mockInvalidGpgKey} from "./DisplayUserDetailsPublicKey.test.data";
|
|
7
7
|
|
|
8
8
|
export default {
|
|
9
|
-
title: 'Passbolt/UserDetails/DisplayUserDetailsPublicKey',
|
|
9
|
+
title: 'Passbolt Component/UserDetails/DisplayUserDetailsPublicKey',
|
|
10
10
|
component: DisplayUserDetailsPublicKey
|
|
11
11
|
};
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
"uid": "Passbolt Default Admin \u003Cadmin@passbolt.com\u003E",
|
|
22
|
-
"key_id": "D06426D3",
|
|
23
|
-
"fingerprint": "0C1D1761110D1E33C9006D1A5B1B332ED06426D3",
|
|
24
|
-
"type": "RSA",
|
|
25
|
-
"expires": null,
|
|
26
|
-
"key_created": "2015-10-31T16:21:43+00:00",
|
|
27
|
-
"deleted": false,
|
|
28
|
-
"created": "2020-04-20T11:32:18+00:00",
|
|
29
|
-
"modified": "2020-04-20T11:32:18+00:00",
|
|
30
|
-
"algorithm": "rsa_encrypt_sign",
|
|
31
|
-
"length": 4096
|
|
32
|
-
})
|
|
33
|
-
}
|
|
34
|
-
};
|
|
35
|
-
|
|
13
|
+
function defaultContext(data = {}) {
|
|
14
|
+
const defaultData = {
|
|
15
|
+
port: {
|
|
16
|
+
request: () => mockGpgKey
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
return Object.assign(defaultData, data);
|
|
20
|
+
}
|
|
36
21
|
|
|
37
|
-
const Template = args =>
|
|
22
|
+
const Template = ({context, ...args}) =>
|
|
38
23
|
<AppContext.Provider value={context}>
|
|
39
24
|
<div className="panel aside">
|
|
40
25
|
<div className="detailed-information">
|
|
@@ -51,6 +36,23 @@ Template.propTypes = {
|
|
|
51
36
|
|
|
52
37
|
export const Initial = Template.bind({});
|
|
53
38
|
Initial.args = {
|
|
39
|
+
context: defaultContext(),
|
|
40
|
+
userWorkspaceContext: {
|
|
41
|
+
details: {
|
|
42
|
+
user: {
|
|
43
|
+
"id": "54c6278e-f824-5fda-91ff-3e946b18d994",
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
export const InvalidKey = Template.bind({});
|
|
50
|
+
InvalidKey.args = {
|
|
51
|
+
context: defaultContext({
|
|
52
|
+
port: {
|
|
53
|
+
request: () => mockInvalidGpgKey
|
|
54
|
+
}
|
|
55
|
+
}),
|
|
54
56
|
userWorkspaceContext: {
|
|
55
57
|
details: {
|
|
56
58
|
user: {
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
* @since 2.13.0
|
|
13
13
|
*/
|
|
14
14
|
import React, {Component} from "react";
|
|
15
|
+
import ReactList from "react-list";
|
|
15
16
|
import PropTypes from "prop-types";
|
|
16
17
|
|
|
17
18
|
import FormSubmitButton from "../../Common/Inputs/FormSubmitButton/FormSubmitButton";
|
|
@@ -22,11 +23,8 @@ import Autocomplete from "../../Common/Inputs/Autocomplete/Autocomplete";
|
|
|
22
23
|
import {withAppContext} from "../../../contexts/AppContext";
|
|
23
24
|
import {withDialog} from "../../../contexts/DialogContext";
|
|
24
25
|
import {withActionFeedback} from "../../../contexts/ActionFeedbackContext";
|
|
25
|
-
import UserAvatar from "../../Common/Avatar/UserAvatar";
|
|
26
|
-
import Icon from "../../../../shared/components/Icons/Icon";
|
|
27
26
|
import {Trans, withTranslation} from "react-i18next";
|
|
28
|
-
import
|
|
29
|
-
import Select from "../../Common/Select/Select";
|
|
27
|
+
import EditUserGroupItem from "../EditUserGroup/EditUserGroupItem";
|
|
30
28
|
|
|
31
29
|
class CreateUserGroup extends Component {
|
|
32
30
|
/**
|
|
@@ -77,6 +75,9 @@ class CreateUserGroup extends Component {
|
|
|
77
75
|
this.handleNameInputKeyUp = this.handleNameInputKeyUp.bind(this);
|
|
78
76
|
this.handleSelectUpdate = this.handleSelectUpdate.bind(this);
|
|
79
77
|
this.handleDeleteClickEvent = this.handleDeleteClickEvent.bind(this);
|
|
78
|
+
|
|
79
|
+
this.renderItem = this.renderItem.bind(this);
|
|
80
|
+
this.renderContainer = this.renderContainer.bind(this);
|
|
80
81
|
}
|
|
81
82
|
|
|
82
83
|
/**
|
|
@@ -320,7 +321,7 @@ class CreateUserGroup extends Component {
|
|
|
320
321
|
groups_users.push({user: aro, is_admin});
|
|
321
322
|
this.setState({groups_users}, () => {
|
|
322
323
|
// scroll at the bottom of the group users list
|
|
323
|
-
this.groupUsersListRef.current.
|
|
324
|
+
this.groupUsersListRef.current.scrollTo(groups_users.length - 1);
|
|
324
325
|
});
|
|
325
326
|
}
|
|
326
327
|
|
|
@@ -357,16 +358,26 @@ class CreateUserGroup extends Component {
|
|
|
357
358
|
const matchUser = (word, user) => matchUsernameProperty(word, user) || matchNameProperty(word, user);
|
|
358
359
|
const matchText = user => words.every(word => matchUser(word, user));
|
|
359
360
|
|
|
360
|
-
|
|
361
|
-
|
|
361
|
+
let currentCount = 0;
|
|
362
|
+
const firstUsersMatched = this.props.context.users.filter(user => {
|
|
363
|
+
const isUserMatching = currentCount < Autocomplete.DISPLAY_LIMIT
|
|
364
|
+
&& user.active === true
|
|
365
|
+
&& !userAlreadyAdded(user)
|
|
366
|
+
&& matchText(user);
|
|
367
|
+
|
|
368
|
+
if (isUserMatching) {
|
|
369
|
+
currentCount++;
|
|
370
|
+
}
|
|
371
|
+
return isUserMatching;
|
|
372
|
+
});
|
|
362
373
|
|
|
363
|
-
return this.decorateUsersWithGpgKey(
|
|
374
|
+
return this.decorateUsersWithGpgKey(firstUsersMatched);
|
|
364
375
|
}
|
|
365
376
|
|
|
366
377
|
/**
|
|
367
378
|
* Decorate a list of users with their gpg key.
|
|
368
379
|
* @param {array} users
|
|
369
|
-
* @returns {array}
|
|
380
|
+
* @returns {Promise<array}
|
|
370
381
|
*/
|
|
371
382
|
async decorateUsersWithGpgKey(users) {
|
|
372
383
|
const decorateGroupsUsersWithGpgKey = async user => Object.assign(user, {gpgkey: await this.props.context.port.request('passbolt.keyring.get-public-key-info-by-user', user.id)});
|
|
@@ -449,6 +460,44 @@ class CreateUserGroup extends Component {
|
|
|
449
460
|
];
|
|
450
461
|
}
|
|
451
462
|
|
|
463
|
+
/**
|
|
464
|
+
* Use to render a single item of the user group list
|
|
465
|
+
* @param {integer} index of the item in the source list
|
|
466
|
+
* @param {integer} key index of the HTML element in the ReactList
|
|
467
|
+
* @returns {JSX.Element}
|
|
468
|
+
*/
|
|
469
|
+
renderItem(index, key) {
|
|
470
|
+
const groupUser = this.state.groups_users[index];
|
|
471
|
+
const createUserGroupItemKey = groupUser.user.id;
|
|
472
|
+
return (
|
|
473
|
+
<EditUserGroupItem
|
|
474
|
+
key={createUserGroupItemKey}
|
|
475
|
+
itemKey={createUserGroupItemKey}
|
|
476
|
+
groupUser={groupUser}
|
|
477
|
+
onMemberRoleChange={event => this.handleSelectUpdate(event, groupUser.user.id)}
|
|
478
|
+
onMemberRemoved={event => this.handleDeleteClickEvent(event, groupUser.user.id)}
|
|
479
|
+
isLastItemDisplayed={key >= 2}
|
|
480
|
+
isMemberChanged={true}
|
|
481
|
+
isMemberAdded={true}
|
|
482
|
+
areActionsAllowed={!this.hasAllInputDisabled()}
|
|
483
|
+
/>
|
|
484
|
+
);
|
|
485
|
+
}
|
|
486
|
+
|
|
487
|
+
/**
|
|
488
|
+
* Use to render the container of the list of the ReactList component
|
|
489
|
+
* @param {Array<JSX.Element>} items the list of the items to be rendered as children element of the conainer
|
|
490
|
+
* @param {*} ref the ref ReactList needs to manage the scroll
|
|
491
|
+
* @returns {JSX.Element}
|
|
492
|
+
*/
|
|
493
|
+
renderContainer(items, ref) {
|
|
494
|
+
return (
|
|
495
|
+
<ul className="permissions groups_users" ref={ref}>
|
|
496
|
+
{items}
|
|
497
|
+
</ul>
|
|
498
|
+
);
|
|
499
|
+
}
|
|
500
|
+
|
|
452
501
|
/**
|
|
453
502
|
* Get the translate function
|
|
454
503
|
* @returns {function(...[*]=)}
|
|
@@ -470,11 +519,11 @@ class CreateUserGroup extends Component {
|
|
|
470
519
|
disabled={this.hasAllInputDisabled()}>
|
|
471
520
|
<form className="group-form" onSubmit={this.handleFormSubmit} noValidate>
|
|
472
521
|
<div className="form-content">
|
|
473
|
-
<div className={`input text required ${this.state.nameError ? "error" : ""}`}>
|
|
522
|
+
<div className={`input text required ${this.state.nameError ? "error" : ""} ${this.hasAllInputDisabled() ? 'disabled' : ''}`}>
|
|
474
523
|
<label htmlFor="group_name"><Trans>Group name</Trans></label>
|
|
475
524
|
<input id="group-name-input" name="name" className="required" maxLength="50" type="text" placeholder={this.translate("group name")}
|
|
476
525
|
onKeyUp={this.handleNameInputKeyUp} onChange={this.handleInputChange}
|
|
477
|
-
disabled={this.
|
|
526
|
+
disabled={this.hasAllInputDisabled()} ref={this.nameInputRef}/>
|
|
478
527
|
{this.state.nameError &&
|
|
479
528
|
<div className="name error-message">{this.state.nameError}</div>
|
|
480
529
|
}
|
|
@@ -485,55 +534,34 @@ class CreateUserGroup extends Component {
|
|
|
485
534
|
</div>
|
|
486
535
|
</div>
|
|
487
536
|
<div className="group_members">
|
|
488
|
-
<div className="form-content permission-edit">
|
|
537
|
+
<div className="form-content scroll permission-edit">
|
|
489
538
|
{this.hasMembers() &&
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
</Tooltip>
|
|
500
|
-
</div>
|
|
501
|
-
<div className="permission_changes">
|
|
502
|
-
<span><Trans>Will be added</Trans></span>
|
|
503
|
-
</div>
|
|
504
|
-
</div>
|
|
505
|
-
<div className="rights">
|
|
506
|
-
<Select className="inline" items={this.permissions} value={groups_user.is_admin} disabled={this.hasAllInputDisabled()}
|
|
507
|
-
onChange={event => this.handleSelectUpdate(event, groups_user.user.id)}/>
|
|
508
|
-
</div>
|
|
509
|
-
<div className="actions">
|
|
510
|
-
<a className={`remove-item button button-transparent ${this.hasAllInputDisabled() ? "disabled" : ""}`}
|
|
511
|
-
onClick={event => this.handleDeleteClickEvent(event, groups_user.user.id)} role="button">
|
|
512
|
-
<Icon name='close'/>
|
|
513
|
-
<span className="visually-hidden">Remove</span>
|
|
514
|
-
</a>
|
|
515
|
-
</div>
|
|
516
|
-
</li>
|
|
517
|
-
)
|
|
518
|
-
}
|
|
519
|
-
</ul>
|
|
520
|
-
}
|
|
521
|
-
{!this.hasMembers() &&
|
|
522
|
-
<div className="message warning">
|
|
523
|
-
<span><Trans>The group is empty, please add a group manager.</Trans></span>
|
|
524
|
-
</div>
|
|
525
|
-
}
|
|
526
|
-
{this.hasMembers() && !this.hasManager() &&
|
|
527
|
-
<div className="message error">
|
|
528
|
-
<span><Trans>Please make sure there is at least one group manager.</Trans></span>
|
|
529
|
-
</div>
|
|
530
|
-
}
|
|
531
|
-
{this.hasManager() &&
|
|
532
|
-
<div className="message warning">
|
|
533
|
-
<span><Trans>You need to click save for the changes to take place.</Trans></span>
|
|
534
|
-
</div>
|
|
539
|
+
<ReactList
|
|
540
|
+
ref={this.groupUsersListRef}
|
|
541
|
+
itemRenderer={this.renderItem}
|
|
542
|
+
itemsRenderer={this.renderContainer}
|
|
543
|
+
length={this.state.groups_users.length}
|
|
544
|
+
minSize={4}
|
|
545
|
+
type={this.state.groups_users.length < 3 ? "simple" : "uniform"}
|
|
546
|
+
threshold={30}>
|
|
547
|
+
</ReactList>
|
|
535
548
|
}
|
|
536
549
|
</div>
|
|
550
|
+
{!this.hasMembers() &&
|
|
551
|
+
<div className="message warning">
|
|
552
|
+
<span><Trans>The group is empty, please add a group manager.</Trans></span>
|
|
553
|
+
</div>
|
|
554
|
+
}
|
|
555
|
+
{this.hasMembers() && !this.hasManager() &&
|
|
556
|
+
<div className="message error">
|
|
557
|
+
<span><Trans>Please make sure there is at least one group manager.</Trans></span>
|
|
558
|
+
</div>
|
|
559
|
+
}
|
|
560
|
+
{this.hasManager() &&
|
|
561
|
+
<div className="message warning">
|
|
562
|
+
<span><Trans>You need to click save for the changes to take place.</Trans></span>
|
|
563
|
+
</div>
|
|
564
|
+
}
|
|
537
565
|
<div className="form-content permission-add">
|
|
538
566
|
<Autocomplete
|
|
539
567
|
id="user-name-input"
|
|
@@ -36,6 +36,11 @@ describe("See the Create Dialog Group", () => {
|
|
|
36
36
|
const requestGpgMockImpl = jest.fn(() => mockGpgKey);
|
|
37
37
|
mockContextRequest(context, requestGpgMockImpl);
|
|
38
38
|
page = new CreateUserGroupPage(context, props);
|
|
39
|
+
jest.useFakeTimers();
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
afterEach(() => {
|
|
43
|
+
jest.clearAllTimers();
|
|
39
44
|
});
|
|
40
45
|
|
|
41
46
|
it('As AD I see a success toaster message after adding a group with success', async() => {
|
|
@@ -52,8 +57,10 @@ describe("See the Create Dialog Group", () => {
|
|
|
52
57
|
const requestGpgMockImpl = jest.fn(() => mockGpgKey);
|
|
53
58
|
mockContextRequest(context, requestGpgMockImpl);
|
|
54
59
|
page.createGroup.fillInput(page.createGroup.usernameInput, "ada");
|
|
55
|
-
|
|
60
|
+
jest.runOnlyPendingTimers();
|
|
61
|
+
|
|
56
62
|
expect(context.port.request).toHaveBeenCalledWith("passbolt.keyring.get-public-key-info-by-user", mockUsers[1].id);
|
|
63
|
+
await waitFor(() => {});
|
|
57
64
|
await page.createGroup.click(page.createGroup.userAutocomplete);
|
|
58
65
|
|
|
59
66
|
await page.createGroup.selectFirstItem(2);
|
|
@@ -86,8 +93,10 @@ describe("See the Create Dialog Group", () => {
|
|
|
86
93
|
const requestGpgMockImpl = jest.fn(() => mockGpgKey);
|
|
87
94
|
mockContextRequest(context, requestGpgMockImpl);
|
|
88
95
|
page.createGroup.fillInput(page.createGroup.usernameInput, "ada");
|
|
89
|
-
|
|
96
|
+
jest.runOnlyPendingTimers();
|
|
97
|
+
|
|
90
98
|
expect(context.port.request).toHaveBeenCalledWith("passbolt.keyring.get-public-key-info-by-user", mockUsers[1].id);
|
|
99
|
+
await waitFor(() => {});
|
|
91
100
|
await page.createGroup.click(page.createGroup.userAutocomplete);
|
|
92
101
|
|
|
93
102
|
// Mock the request function to make it the expected result
|
|
@@ -118,10 +127,12 @@ describe("See the Create Dialog Group", () => {
|
|
|
118
127
|
const requestGpgMockImpl = jest.fn(() => mockGpgKey);
|
|
119
128
|
mockContextRequest(context, requestGpgMockImpl);
|
|
120
129
|
page.createGroup.fillInput(page.createGroup.usernameInput, "ada");
|
|
121
|
-
|
|
130
|
+
jest.runOnlyPendingTimers();
|
|
131
|
+
|
|
122
132
|
expect(context.port.request).toHaveBeenCalledWith("passbolt.keyring.get-public-key-info-by-user", mockUsers[1].id);
|
|
123
|
-
await
|
|
133
|
+
await waitFor(() => {});
|
|
124
134
|
|
|
135
|
+
await page.createGroup.click(page.createGroup.userAutocomplete);
|
|
125
136
|
await page.createGroup.click(page.createGroup.saveButton);
|
|
126
137
|
|
|
127
138
|
// Throw error message
|
|
@@ -153,8 +164,10 @@ describe("See the Create Dialog Group", () => {
|
|
|
153
164
|
const requestGpgMockImpl = jest.fn(() => mockGpgKey);
|
|
154
165
|
mockContextRequest(context, requestGpgMockImpl);
|
|
155
166
|
page.createGroup.fillInput(page.createGroup.usernameInput, "ada");
|
|
156
|
-
|
|
167
|
+
jest.runOnlyPendingTimers();
|
|
168
|
+
|
|
157
169
|
expect(context.port.request).toHaveBeenCalledWith("passbolt.keyring.get-public-key-info-by-user", mockUsers[1].id);
|
|
170
|
+
await waitFor(() => {});
|
|
158
171
|
await page.createGroup.click(page.createGroup.userAutocomplete);
|
|
159
172
|
|
|
160
173
|
// Mock the request function to make it return an error.
|
|
@@ -176,8 +189,10 @@ describe("See the Create Dialog Group", () => {
|
|
|
176
189
|
const requestGpgMockImpl = jest.fn(() => mockGpgKey);
|
|
177
190
|
mockContextRequest(context, requestGpgMockImpl);
|
|
178
191
|
page.createGroup.fillInput(page.createGroup.usernameInput, "ada");
|
|
179
|
-
|
|
192
|
+
jest.runOnlyPendingTimers();
|
|
193
|
+
|
|
180
194
|
expect(context.port.request).toHaveBeenCalledWith("passbolt.keyring.get-public-key-info-by-user", mockUsers[1].id);
|
|
195
|
+
await waitFor(() => {});
|
|
181
196
|
await page.createGroup.click(page.createGroup.userAutocomplete);
|
|
182
197
|
|
|
183
198
|
const data = {
|
|
@@ -132,7 +132,7 @@ class DeleteUserGroup extends Component {
|
|
|
132
132
|
Are you sure you want to delete the group <strong>{{groupName: this.group.name}}</strong>?
|
|
133
133
|
</Trans>
|
|
134
134
|
</p>
|
|
135
|
-
<p><Trans>
|
|
135
|
+
<p><Trans>This action can’t be undone. Users in this group may lose access to the content shared with it.</Trans></p>
|
|
136
136
|
</div>
|
|
137
137
|
<div className="submit-wrapper clearfix">
|
|
138
138
|
<FormCancelButton disabled={this.hasAllInputDisabled()} onClick={this.handleCloseClick}/>
|
package/src/react-extension/components/UserGroup/DeleteUserGroup/DeleteUserGroupWithConflicts.js
CHANGED
|
@@ -381,7 +381,7 @@ class DeleteUserGroupWithConflicts extends Component {
|
|
|
381
381
|
<ul className="ownership-transfer-items">
|
|
382
382
|
{this.foldersErrors.map(folderError =>
|
|
383
383
|
<li key={folderError.id}>
|
|
384
|
-
<div className=
|
|
384
|
+
<div className={`select-wrapper input required ${this.state.processing ? 'disabled' : ''}`}>
|
|
385
385
|
<label htmlFor="transfer_folder_owner">{folderError.name} <Trans>(Folder) new owner:</Trans></label>
|
|
386
386
|
<Select className="form-element" value={this.state.owners[folderError.id]} items={this.getAcoPermissionsList(folderError.id)} onChange={event => this.handleOnChangeOwner(event, folderError.id)}/>
|
|
387
387
|
</div>
|
|
@@ -396,7 +396,7 @@ class DeleteUserGroupWithConflicts extends Component {
|
|
|
396
396
|
<ul className="ownership-transfer-items">
|
|
397
397
|
{this.resourcesErrors.map(resourceError =>
|
|
398
398
|
<li key={resourceError.id}>
|
|
399
|
-
<div className=
|
|
399
|
+
<div className={`select-wrapper input required ${this.state.processing ? 'disabled' : ''}`}>
|
|
400
400
|
<label htmlFor="transfer_resource_owner">{resourceError.name} (<Trans>Password</Trans>) <Trans>new owner</Trans>:</label>
|
|
401
401
|
<Select className="form-element" value={this.state.owners[resourceError.id]} items={this.getAcoPermissionsList(resourceError.id)} onChange={event => this.handleOnChangeOwner(event, resourceError.id)}/>
|
|
402
402
|
</div>
|