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.
Files changed (318) hide show
  1. package/build/css/help.min.css +3 -3
  2. package/build/css/public.min.css +3 -3
  3. package/build/css/themes/default/api_authentication.min.css +3 -3
  4. package/build/css/themes/default/api_cloud.min.css +3 -3
  5. package/build/css/themes/default/api_main.min.css +3 -3
  6. package/build/css/themes/default/api_reports.min.css +3 -3
  7. package/build/css/themes/default/api_webinstaller.min.css +3 -3
  8. package/build/css/themes/default/ext_app.min.css +3 -3
  9. package/build/css/themes/default/ext_authentication.min.css +3 -3
  10. package/build/css/themes/default/ext_external.min.css +2 -2
  11. package/build/css/themes/default/ext_in_form_cta.min.css +3 -3
  12. package/build/css/themes/default/ext_in_form_menu.min.css +3 -3
  13. package/build/css/themes/default/ext_quickaccess.min.css +3 -3
  14. package/build/css/themes/midgar/api_authentication.min.css +3 -3
  15. package/build/css/themes/midgar/api_main.min.css +3 -3
  16. package/build/css/themes/midgar/api_reports.min.css +3 -3
  17. package/build/css/themes/midgar/ext_app.min.css +3 -3
  18. package/build/css/themes/midgar/ext_authentication.min.css +3 -3
  19. package/build/css/themes/midgar/ext_in_form_cta.min.css +3 -3
  20. package/build/css/themes/midgar/ext_in_form_menu.min.css +3 -3
  21. package/build/css/themes/midgar/ext_quickaccess.min.css +3 -3
  22. package/build/css/themes/solarized_dark/api_authentication.min.css +1 -1
  23. package/build/css/themes/solarized_dark/api_main.min.css +1 -1
  24. package/build/css/themes/solarized_dark/api_reports.min.css +1 -1
  25. package/build/css/themes/solarized_dark/ext_app.min.css +1 -1
  26. package/build/css/themes/solarized_dark/ext_authentication.min.css +1 -1
  27. package/build/css/themes/solarized_dark/ext_in_form_cta.min.css +1 -1
  28. package/build/css/themes/solarized_dark/ext_in_form_menu.min.css +1 -1
  29. package/build/css/themes/solarized_dark/ext_quickaccess.min.css +1 -1
  30. package/build/css/themes/solarized_light/api_authentication.min.css +1 -1
  31. package/build/css/themes/solarized_light/api_main.min.css +1 -1
  32. package/build/css/themes/solarized_light/api_reports.min.css +1 -1
  33. package/build/css/themes/solarized_light/ext_app.min.css +1 -1
  34. package/build/css/themes/solarized_light/ext_authentication.min.css +1 -1
  35. package/build/css/themes/solarized_light/ext_in_form_cta.min.css +1 -1
  36. package/build/css/themes/solarized_light/ext_in_form_menu.min.css +1 -1
  37. package/build/css/themes/solarized_light/ext_quickaccess.min.css +1 -1
  38. package/build/js/dist/api-account-recovery.js +1 -1
  39. package/build/js/dist/api-app.js +1 -1
  40. package/build/js/dist/api-app.js.LICENSE.txt +75 -5
  41. package/build/js/dist/api-feedback.js +2 -0
  42. package/build/js/dist/api-feedback.js.LICENSE.txt +45 -0
  43. package/build/js/dist/api-recover.js +1 -1
  44. package/build/js/dist/api-setup.js +1 -1
  45. package/build/js/dist/api-triage.js +1 -1
  46. package/build/js/dist/api-vendors.js +1 -1
  47. package/build/js/dist/api-vendors.js.LICENSE.txt +19 -9
  48. package/build/js/dist/src/locales/de-DE/common.json +995 -0
  49. package/build/js/dist/src/locales/en-UK/common.json +1061 -0
  50. package/build/js/dist/src/locales/es-ES/common.json +995 -0
  51. package/build/js/dist/src/locales/fr-FR/common.json +995 -0
  52. package/build/js/dist/src/locales/ja-JP/common.json +980 -0
  53. package/build/js/dist/src/locales/lt-LT/common.json +1025 -0
  54. package/build/js/dist/src/locales/nl-NL/common.json +995 -0
  55. package/build/js/dist/src/locales/pl-PL/common.json +1025 -0
  56. package/build/js/dist/src/locales/sv-SE/common.json +995 -0
  57. package/package.json +18 -1
  58. package/src/img/controls/attention.svg +1 -0
  59. package/src/locales/en-UK/common.json +80 -16
  60. package/src/react-extension/ApiApp.js +17 -5
  61. package/src/react-extension/ApiFeedback.entry.js +24 -0
  62. package/src/react-extension/ExtApp.js +12 -5
  63. package/src/react-extension/ExtAuthenticationLogin.js +17 -15
  64. package/src/react-extension/ExtAuthenticationLogin.test.stories.js +59 -0
  65. package/src/react-extension/ExtBootstrapApp.js +1 -0
  66. package/src/react-extension/components/Administration/AdministrationWorkspace.js +24 -0
  67. package/src/react-extension/components/Administration/AdministrationWorkspace.test.data.js +3 -3
  68. package/src/react-extension/components/Administration/AdministrationWorkspace.test.js +13 -1
  69. package/src/react-extension/components/Administration/AdministrationWorkspace.test.page.js +7 -0
  70. package/src/react-extension/components/Administration/ConfirmDeleteSsoSettingsDialog/ConfirmDeleteSsoSettingsDialog.js +101 -0
  71. package/src/react-extension/components/Administration/ConfirmDeleteSsoSettingsDialog/ConfirmDeleteSsoSettingsDialog.test.data.js +23 -0
  72. package/src/react-extension/components/Administration/ConfirmDeleteSsoSettingsDialog/ConfirmDeleteSsoSettingsDialog.test.stories.js +27 -0
  73. package/src/react-extension/components/Administration/ConfirmSaveAccountRecoverySettings/ConfirmSaveAccountRecoverySettings.js +1 -1
  74. package/src/react-extension/components/Administration/DisplayAdministrationMenu/DisplayAdministrationMenu.js +78 -2
  75. package/src/react-extension/components/Administration/DisplayAdministrationMenu/DisplayAdministrationMenu.test.data.js +3 -1
  76. package/src/react-extension/components/Administration/DisplayAdministrationMenu/DisplayAdministrationMenu.test.js +60 -0
  77. package/src/react-extension/components/Administration/DisplayAdministrationMenu/DisplayAdministrationMenu.test.page.js +23 -4
  78. package/src/react-extension/components/Administration/DisplayAdministrationWorkspaceActions/DisplayAdministrationInternationalisationActions/DisplayAdministrationInternationalisationActions.js +125 -0
  79. package/src/react-extension/components/Administration/DisplayAdministrationWorkspaceActions/DisplayAdministrationMfaActions/DisplayAdministrationMfaActions.js +131 -0
  80. package/src/react-extension/components/Administration/DisplayAdministrationWorkspaceActions/DisplayAdministrationSelfRegistrationActions/DisplayAdministrationSelfRegistrationActions.js +103 -0
  81. package/src/react-extension/components/Administration/DisplayAdministrationWorkspaceActions/DisplayAdministrationSsoActions/DisplayAdministrationSsoActions.js +91 -0
  82. package/src/react-extension/components/Administration/DisplayAdministrationWorkspaceActions/DisplayAdministrationSubscriptionActions/DisplayAdministrationSubscriptionActions.js +85 -0
  83. package/src/react-extension/components/Administration/DisplayAdministrationWorkspaceActions/DisplayAdministrationUserDirectoryActions/DisplayAdministrationUserDirectoryActions.js +228 -0
  84. package/src/react-extension/components/Administration/DisplayAdministrationWorkspaceBreadcrumb/DisplayAdministrationWorkspaceBreadcrumb.js +4 -0
  85. package/src/react-extension/components/Administration/DisplayAdministrationWorkspaceBreadcrumb/DisplayAdministrationWorkspaceBreadcrumb.test.js +9 -0
  86. package/src/react-extension/components/Administration/DisplayEmailNotificationsAdministration/DisplayEmailNotificationsAdministration.js +3 -3
  87. package/src/react-extension/components/Administration/DisplayEmailNotificationsAdministration/DisplayEmailNotificationsAdministration.test.data.js +14 -0
  88. package/src/react-extension/components/Administration/DisplayEmailNotificationsAdministration/DisplayEmailNotificationsAdministration.test.page.js +0 -17
  89. package/src/react-extension/components/Administration/DisplayInternationalizationAdministration/DisplayInternationalizationAdministration.js +18 -115
  90. package/src/react-extension/components/Administration/DisplayInternationalizationAdministration/DisplayInternationalizationAdministration.test.data.js +11 -13
  91. package/src/react-extension/components/Administration/DisplayInternationalizationAdministration/DisplayInternationalizationAdministration.test.js +38 -43
  92. package/src/react-extension/components/Administration/DisplayInternationalizationAdministration/DisplayInternationalizationAdministration.test.page.js +47 -10
  93. package/src/react-extension/components/Administration/DisplayInternationalizationAdministration/DisplayInternationalizationAdministration.test.stories.js +10 -43
  94. package/src/react-extension/components/Administration/DisplayMfaAdministration/DisplayMfaAdministration.js +82 -367
  95. package/src/react-extension/components/Administration/DisplayMfaAdministration/DisplayMfaAdministration.test.data.js +128 -42
  96. package/src/react-extension/components/Administration/DisplayMfaAdministration/DisplayMfaAdministration.test.js +75 -121
  97. package/src/react-extension/components/Administration/DisplayMfaAdministration/DisplayMfaAdministration.test.page.js +46 -16
  98. package/src/react-extension/components/Administration/DisplayMfaAdministration/DisplayMfaAdministration.test.stories.js +18 -14
  99. package/src/react-extension/components/Administration/DisplaySelfRegistrationAdministration/ConfirmDeletionSelfRegistrationSettings/ConfirmDeletionSelfRegistrationSettings.js +103 -0
  100. package/src/react-extension/components/Administration/DisplaySelfRegistrationAdministration/ConfirmDeletionSelfRegistrationSettings/ConfirmDeletionSelfRegistrationSettings.test.js +53 -0
  101. package/src/react-extension/components/Administration/DisplaySelfRegistrationAdministration/ConfirmDeletionSelfRegistrationSettings/ConfirmDeletionSelfRegistrationSettings.test.page.js +81 -0
  102. package/src/react-extension/components/Administration/DisplaySelfRegistrationAdministration/ConfirmDeletionSelfRegistrationSettings/ConfirmDeletionSelfRegistrationSettings.test.stories.js +34 -0
  103. package/src/react-extension/components/Administration/DisplaySelfRegistrationAdministration/ConfirmSaveSelfRegistrationSettings/ConfirmSaveSelfRegistrationSettings.js +125 -0
  104. package/src/react-extension/components/Administration/DisplaySelfRegistrationAdministration/ConfirmSaveSelfRegistrationSettings/ConfirmSaveSelfRegistrationSettings.test.data.js +63 -0
  105. package/src/react-extension/components/Administration/DisplaySelfRegistrationAdministration/ConfirmSaveSelfRegistrationSettings/ConfirmSaveSelfRegistrationSettings.test.js +54 -0
  106. package/src/react-extension/components/Administration/DisplaySelfRegistrationAdministration/ConfirmSaveSelfRegistrationSettings/ConfirmSaveSelfRegistrationSettings.test.page.js +88 -0
  107. package/src/react-extension/components/Administration/DisplaySelfRegistrationAdministration/ConfirmSaveSelfRegistrationSettings/ConfirmSaveSelfRegistrationSettings.test.stories.js +35 -0
  108. package/src/react-extension/components/Administration/DisplaySelfRegistrationAdministration/DisplaySelfRegistrationAdministration.js +381 -0
  109. package/src/react-extension/components/Administration/DisplaySelfRegistrationAdministration/DisplaySelfRegistrationAdministration.test.data.js +69 -0
  110. package/src/react-extension/components/Administration/DisplaySelfRegistrationAdministration/DisplaySelfRegistrationAdministration.test.js +332 -0
  111. package/src/react-extension/components/Administration/DisplaySelfRegistrationAdministration/DisplaySelfRegistrationAdministration.test.page.js +247 -0
  112. package/src/react-extension/components/Administration/DisplaySelfRegistrationAdministration/DisplaySelfRegistrationAdministration.test.stories.js +72 -0
  113. package/src/react-extension/components/Administration/DisplaySimulateSynchronizeUserDirectoryAdministration/DisplaySimulateSynchronizeUserDirectoryAdministration.js +19 -19
  114. package/src/react-extension/components/Administration/DisplaySimulateSynchronizeUserDirectoryAdministration/DisplaySimulateSynchronizeUserDirectoryAdministration.test.data.js +1717 -1729
  115. package/src/react-extension/components/Administration/DisplaySimulateSynchronizeUserDirectoryAdministration/DisplaySimulateSynchronizeUserDirectoryAdministration.test.js +11 -3
  116. package/src/react-extension/components/Administration/DisplaySimulateSynchronizeUserDirectoryAdministration/DisplaySimulateSynchronizeUserDirectoryAdministration.test.page.js +4 -1
  117. package/src/react-extension/components/Administration/DisplaySimulateSynchronizeUserDirectoryAdministration/DisplaySimulateSynchronizeUserDirectoryAdministration.test.stories.js +11 -1784
  118. package/src/react-extension/components/Administration/DisplaySubscriptionKey/DisplaySubscriptionKey.js +41 -140
  119. package/src/react-extension/components/Administration/DisplaySubscriptionKey/DisplaySubscriptionKey.test.data.js +15 -3
  120. package/src/react-extension/components/Administration/DisplaySubscriptionKey/DisplaySubscriptionKey.test.js +22 -49
  121. package/src/react-extension/components/Administration/DisplaySubscriptionKey/DisplaySubscriptionKey.test.page.js +19 -11
  122. package/src/react-extension/components/Administration/DisplaySubscriptionKey/DisplaySubscriptionKey.test.stories.js +9 -3
  123. package/src/react-extension/components/Administration/DisplaySynchronizeUserDirectoryAdministration/DisplaySynchronizeUserDirectoryAdministration.js +5 -6
  124. package/src/react-extension/components/Administration/DisplaySynchronizeUserDirectoryAdministration/DisplaySynchronizeUserDirectoryAdministration.test.data.js +1717 -1728
  125. package/src/react-extension/components/Administration/DisplaySynchronizeUserDirectoryAdministration/DisplaySynchronizeUserDirectoryAdministration.test.js +11 -3
  126. package/src/react-extension/components/Administration/DisplaySynchronizeUserDirectoryAdministration/DisplaySynchronizeUserDirectoryAdministration.test.page.js +4 -1
  127. package/src/react-extension/components/Administration/DisplaySynchronizeUserDirectoryAdministration/DisplaySynchronizeUserDirectoryAdministration.test.stories.js +11 -1784
  128. package/src/react-extension/components/Administration/DisplayUserDirectoryAdministration/DisplayUserDirectoryAdministration.js +362 -835
  129. package/src/react-extension/components/Administration/DisplayUserDirectoryAdministration/DisplayUserDirectoryAdministration.test.data.js +427 -418
  130. package/src/react-extension/components/Administration/DisplayUserDirectoryAdministration/DisplayUserDirectoryAdministration.test.js +134 -175
  131. package/src/react-extension/components/Administration/DisplayUserDirectoryAdministration/DisplayUserDirectoryAdministration.test.page.js +108 -11
  132. package/src/react-extension/components/Administration/DisplayUserDirectoryAdministration/DisplayUserDirectoryAdministration.test.stories.js +17 -25
  133. package/src/react-extension/components/Administration/EditSubscriptionKey/EditSubscriptionKey.js +4 -2
  134. package/src/react-extension/components/Administration/ManageAccountRecoveryAdministrationSettings/ManageAccountRecoveryAdministrationSettings.js +3 -3
  135. package/src/react-extension/components/Administration/ManageAccountRecoveryAdministrationSettings/ManageAccountRecoveryAdministrationSettings.test.js +1 -1
  136. package/src/react-extension/components/Administration/ManageSmtpAdministrationSettings/ManageSmtpAdministrationSettings.js +32 -7
  137. package/src/react-extension/components/Administration/ManageSmtpAdministrationSettings/ManageSmtpAdministrationSettings.test.data.js +0 -3
  138. package/src/react-extension/components/Administration/ManageSmtpAdministrationSettings/ManageSmtpAdministrationSettings.test.js +145 -1
  139. package/src/react-extension/components/Administration/ManageSmtpAdministrationSettings/ManageSmtpAdministrationSettings.test.page.js +52 -1
  140. package/src/react-extension/components/Administration/ManageSmtpAdministrationSettings/ManageSmtpAdministrationSettings.test.stories.js +15 -0
  141. package/src/react-extension/components/Administration/ManageSsoSettings/ManageSsoSettings.js +340 -0
  142. package/src/react-extension/components/Administration/ManageSsoSettings/ManageSsoSettings.test.data.js +56 -0
  143. package/src/react-extension/components/Administration/ManageSsoSettings/ManageSsoSettings.test.js +223 -0
  144. package/src/react-extension/components/Administration/ManageSsoSettings/ManageSsoSettings.test.page.js +235 -0
  145. package/src/react-extension/components/Administration/ManageSsoSettings/ManageSsoSettings.test.stories.js +55 -0
  146. package/src/react-extension/components/Administration/ManageSsoSettings/SsoProviders.data.js +34 -0
  147. package/src/react-extension/components/Administration/SelectAccountRecoveryOrganizationKey/GenerateOrganizationKey.js +12 -3
  148. package/src/react-extension/components/Administration/SelectAccountRecoveryOrganizationKey/GenerateOrganizationKey.test.js +27 -0
  149. package/src/react-extension/components/Administration/SelectAccountRecoveryOrganizationKey/SelectAccountRecoveryOrganizationKey.test.page.js +8 -0
  150. package/src/react-extension/components/Administration/TestSsoSettingsDialog/TestSsoSettingsDialog.js +197 -0
  151. package/src/react-extension/components/Administration/TestSsoSettingsDialog/TestSsoSettingsDialog.test.data.js +37 -0
  152. package/src/react-extension/components/Administration/TestSsoSettingsDialog/TestSsoSettingsDialog.test.js +187 -0
  153. package/src/react-extension/components/Administration/TestSsoSettingsDialog/TestSsoSettingsDialog.test.page.js +120 -0
  154. package/src/react-extension/components/Administration/TestSsoSettingsDialog/TestSsoSettingsDialog.test.stories.js +31 -0
  155. package/src/react-extension/components/Authentication/CheckPassphrase/CheckPassphrase.js +9 -5
  156. package/src/react-extension/components/Authentication/CheckPassphrase/CheckPassphrase.test.data.js +4 -0
  157. package/src/react-extension/components/Authentication/CheckPassphrase/CheckPassphrase.test.js +11 -42
  158. package/src/react-extension/components/Authentication/CheckPassphrase/CheckPassphrase.test.page.js +1 -0
  159. package/src/react-extension/components/Authentication/CreateGpgKey/CreateGpgKey.js +9 -5
  160. package/src/react-extension/components/Authentication/CreateGpgKey/CreateGpgKey.test.data.js +4 -0
  161. package/src/react-extension/components/Authentication/CreateGpgKey/CreateGpgKey.test.js +16 -2
  162. package/src/react-extension/components/Authentication/CreateGpgKey/CreateGpgKey.test.page.js +17 -1
  163. package/src/react-extension/components/AuthenticationLogin/Login/Login.js +159 -61
  164. package/src/react-extension/components/AuthenticationLogin/Login/Login.test.data.js +14 -11
  165. package/src/react-extension/components/AuthenticationLogin/Login/Login.test.js +79 -0
  166. package/src/react-extension/components/AuthenticationLogin/Login/Login.test.page.js +16 -0
  167. package/src/react-extension/components/AuthenticationLogin/OrchestrateLogin/OrchestrateLoginBoxMain.js +2 -0
  168. package/src/react-extension/components/AuthenticationSetup/SetupAuthentication/SetupAuthentication.js +4 -0
  169. package/src/react-extension/components/Common/Error/ApiError/ApiError.js +119 -0
  170. package/src/react-extension/components/Common/Error/ApiError/ApiError.test.js +43 -0
  171. package/src/react-extension/components/Common/Error/ApiError/ApiError.test.page.js +108 -0
  172. package/src/react-extension/components/Common/Error/ApiError/ApiError.test.stories.js +39 -0
  173. package/src/react-extension/components/Common/Inputs/Autocomplete/Autocomplete.test.js +12 -0
  174. package/src/react-extension/components/Common/Inputs/Autocomplete/AutocompleteItem.js +2 -2
  175. package/src/react-extension/components/Common/Legacy/HandleLegacyAppjs.js +1 -1
  176. package/src/react-extension/components/Common/Navigation/Header/Logo.js +13 -1
  177. package/src/react-extension/components/Resource/CreateResource/CreateResource.js +103 -30
  178. package/src/react-extension/components/Resource/CreateResource/CreateResource.test.js +44 -10
  179. package/src/react-extension/components/Resource/CreateResource/CreateResource.test.page.js +35 -7
  180. package/src/react-extension/components/Resource/DisplayResourcesList/DisplayResourcesList.js +3 -3
  181. package/src/react-extension/components/Resource/DisplayResourcesList/DisplayResourcesListContextualMenu.js +6 -5
  182. package/src/react-extension/components/Resource/DisplayResourcesWorkspace/DisplayResourcesWorkspaceMenu.js +5 -4
  183. package/src/react-extension/components/Resource/EditResource/EditResource.js +95 -23
  184. package/src/react-extension/components/Resource/EditResource/EditResource.test.js +45 -13
  185. package/src/react-extension/components/Resource/EditResource/EditResource.test.page.js +35 -2
  186. package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetails.js +2 -1
  187. package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetailsInformation.js +3 -2
  188. package/src/react-extension/components/ResourceFolder/CreateResourceFolder/CreateResourceFolder.js +23 -2
  189. package/src/react-extension/components/ResourceFolder/CreateResourceFolder/CreateResourceFolder.test.js +8 -0
  190. package/src/react-extension/components/ResourceFolder/CreateResourceFolder/CreateResourceFolder.test.page.js +26 -2
  191. package/src/react-extension/components/ResourceFolder/RenameResourceFolder/RenameResourceFolder.js +22 -1
  192. package/src/react-extension/components/ResourceFolder/RenameResourceFolder/RenameResourceFolder.test.js +8 -0
  193. package/src/react-extension/components/ResourceFolder/RenameResourceFolder/RenameResourceFolder.test.page.js +25 -2
  194. package/src/react-extension/components/ResourceFolderDetails/DisplayResourceFolderDetails/DisplayResourceFolderDetails.js +2 -1
  195. package/src/react-extension/components/ResourcePassword/GenerateResourcePassword/GenerateResourcePassword.js +2 -1
  196. package/src/react-extension/components/ResourceTag/EditResourceTag/EditResourceTag.js +14 -1
  197. package/src/react-extension/components/ResourceTag/EditResourceTag/EditResourceTag.test.js +8 -0
  198. package/src/react-extension/components/ResourceTag/EditResourceTag/EditResourceTag.test.page.js +12 -0
  199. package/src/react-extension/components/User/CreateUser/CreateUser.js +42 -3
  200. package/src/react-extension/components/User/CreateUser/CreateUser.test.js +16 -0
  201. package/src/react-extension/components/User/CreateUser/CreateUser.test.page.js +26 -0
  202. package/src/react-extension/components/User/DisplayUserWorkspaceActions/DisplayUserWorkspaceActions.js +2 -1
  203. package/src/react-extension/components/User/DisplayUsersContextualMenu/DisplayUsersContextualMenu.js +5 -5
  204. package/src/react-extension/components/User/EditUser/EditUser.js +29 -2
  205. package/src/react-extension/components/User/EditUser/EditUser.test.js +12 -0
  206. package/src/react-extension/components/User/EditUser/EditUser.test.page.js +26 -0
  207. package/src/react-extension/components/UserDetails/DisplayUserDetails/DisplayUserDetails.js +2 -1
  208. package/src/react-extension/components/UserDetails/DisplayUserDetails/DisplayUserDetails.test.data.js +1332 -1331
  209. package/src/react-extension/components/UserDetails/DisplayUserDetailsPublicKey/DisplayUserDetailsPublicKey.js +2 -1
  210. package/src/react-extension/components/UserGroup/CreateUserGroup/CreateUserGroup.js +19 -1
  211. package/src/react-extension/components/UserGroup/CreateUserGroup/CreateUserGroup.test.js +9 -0
  212. package/src/react-extension/components/UserGroup/CreateUserGroup/CreateUserGroup.test.page.js +12 -0
  213. package/src/react-extension/components/UserGroup/DisplayUserGroupDetails/DisplayUserGroupDetails.js +2 -1
  214. package/src/react-extension/components/UserGroup/EditUserGroup/EditUserGroup.js +16 -1
  215. package/src/react-extension/components/UserGroup/EditUserGroup/EditUserGroup.test.js +8 -0
  216. package/src/react-extension/components/UserGroup/EditUserGroup/EditUserGroup.test.page.js +26 -1
  217. package/src/react-extension/components/UserSetting/ChangeUserPassphrase/ConfirmPassphrase.js +1 -1
  218. package/src/react-extension/components/UserSetting/ChangeUserPassphrase/EnterNewPassphrase.js +6 -4
  219. package/src/react-extension/components/UserSetting/ChangeUserPassphrase/EnterNewPassphrase.test.data.js +4 -1
  220. package/src/react-extension/components/UserSetting/ChangeUserPassphrase/EnterNewPassphrase.test.js +21 -11
  221. package/src/react-extension/components/UserSetting/ChangeUserPassphrase/EnterNewPassphrase.test.page.js +10 -1
  222. package/src/react-extension/contexts/AdminSmtpSettingsContext.js +2 -0
  223. package/src/react-extension/contexts/AdminSmtpSettingsContext.test.data.js +13 -0
  224. package/src/react-extension/contexts/AdminSmtpSettingsContext.test.js +3 -1
  225. package/src/react-extension/contexts/AdminSsoContext.js +558 -0
  226. package/src/react-extension/contexts/AdminSsoContext.test.data.js +51 -0
  227. package/src/react-extension/contexts/Administration/AdministrationInternationalizationContext/AdministrationInternationalizationContext.js +194 -0
  228. package/src/react-extension/contexts/Administration/AdministrationInternationalizationContext/AdministrationInternationalizationContext.test.js +111 -0
  229. package/src/react-extension/contexts/Administration/AdministrationMfa/AdministrationMfaContext.js +265 -0
  230. package/src/react-extension/contexts/Administration/AdministrationMfa/AdministrationMfaContext.test.js +178 -0
  231. package/src/react-extension/contexts/Administration/AdministrationSelfRegistration/AdministrationSelfRegistrationContext.js +453 -0
  232. package/src/react-extension/contexts/Administration/AdministrationSelfRegistration/AdministrationSelfRegistrationContext.test.js +218 -0
  233. package/src/react-extension/contexts/Administration/AdministrationSubscription/AdministrationSubscription.js +168 -0
  234. package/src/react-extension/contexts/Administration/AdministrationSubscription/AdministrationSubscription.test.js +73 -0
  235. package/src/react-extension/contexts/Administration/AdministrationUserDirectory/AdministrationUserDirectoryContext.js +353 -0
  236. package/src/react-extension/contexts/Administration/AdministrationUserDirectory/AdministrationUserDirectoryContext.test.js +220 -0
  237. package/src/react-extension/contexts/AdministrationWorkspaceContext.js +17 -178
  238. package/src/react-extension/contexts/AdministrationWorkspaceContext.test.js +0 -26
  239. package/src/react-extension/contexts/ApiAppContext.test.data.js +4 -2
  240. package/src/react-extension/contexts/Authentication/AuthenticationLoginContext.js +54 -4
  241. package/src/react-extension/contexts/Authentication/AuthenticationLoginContext.test.data.js +10 -1
  242. package/src/react-extension/contexts/Authentication/AuthenticationLoginContext.test.js +92 -14
  243. package/src/react-extension/contexts/Authentication/AuthenticationSetupContext.js +1 -0
  244. package/src/react-extension/contexts/NavigationContext.js +34 -0
  245. package/src/react-extension/contexts/SsoContext.js +151 -0
  246. package/src/react-extension/contexts/SsoContext.test.data.js +36 -0
  247. package/src/react-extension/contexts/SsoContext.test.js +104 -0
  248. package/src/react-extension/lib/Domain/DomainUtil.js +70 -0
  249. package/src/react-extension/lib/Domain/DomainUtil.test.js +129 -0
  250. package/src/react-extension/lib/Domain/Domains.js +6113 -0
  251. package/src/react-extension/lib/Error/InputValidator.js +24 -0
  252. package/src/react-extension/lib/Map/DynamicRef.js +49 -0
  253. package/src/react-extension/lib/Map/DynamicRef.test.js +56 -0
  254. package/src/react-extension/lib/Map/MapObject.js +48 -0
  255. package/src/react-extension/lib/Map/MapObject.test.js +43 -0
  256. package/src/react-quickaccess/ExtQuickAccess.js +7 -4
  257. package/src/react-quickaccess/components/GeneratePasswordPage/GeneratePasswordPage.js +3 -1
  258. package/src/react-quickaccess/components/GeneratePasswordPage/GeneratePasswordPage.test.data.js +4 -0
  259. package/src/react-quickaccess/components/LoginPage/LoginPage.js +115 -4
  260. package/src/react-quickaccess/components/LoginPage/LoginPage.test.data.js +10 -0
  261. package/src/react-quickaccess/components/LoginPage/LoginPage.test.stories.js +30 -3
  262. package/src/react-quickaccess/components/ResourceAutoSave/SaveResource.js +33 -1
  263. package/src/react-quickaccess/components/ResourceAutoSave/SaveResource.test.data.js +25 -0
  264. package/src/react-quickaccess/components/ResourceAutoSave/SaveResource.test.js +60 -0
  265. package/src/react-quickaccess/components/ResourceAutoSave/SaveResource.test.page.js +60 -0
  266. package/src/react-quickaccess/components/ResourceCreatePage/ResourceCreatePage.js +33 -1
  267. package/src/react-quickaccess/components/ResourceCreatePage/ResourceCreatePage.test.js +36 -7
  268. package/src/react-quickaccess/components/ResourceViewPage/ResourceViewPage.js +3 -2
  269. package/src/react-quickaccess/contexts/SsoContext.js +150 -0
  270. package/src/react-web-integration/lib/InForm/InFormFieldSelector.js +5 -0
  271. package/src/shared/constants/inputs.const.js +30 -0
  272. package/src/shared/lib/Browser/clipBoard.js +45 -0
  273. package/src/shared/lib/Browser/clipBoard.test.js +59 -0
  274. package/src/shared/models/Mfa/Duo.js +36 -0
  275. package/src/shared/models/Mfa/Duo.test.js +59 -0
  276. package/src/shared/models/Mfa/MfaDTO.js +51 -0
  277. package/src/shared/models/Mfa/MfaDTO.test.js +48 -0
  278. package/src/shared/models/Mfa/MfaEnumeration.js +17 -0
  279. package/src/shared/models/Mfa/MfaModel.js +48 -0
  280. package/src/shared/models/Mfa/MfaModel.test.js +37 -0
  281. package/src/shared/models/Mfa/Yubikey.js +35 -0
  282. package/src/shared/models/Mfa/Yubikey.test.js +47 -0
  283. package/src/shared/models/selfRegistration/SelfRegistrationDomainsViewModel.js +55 -0
  284. package/src/shared/models/selfRegistration/SelfRegistrationDomainsViewModel.test.js +37 -0
  285. package/src/shared/models/selfRegistration/SelfRegistrationDto.js +42 -0
  286. package/src/shared/models/selfRegistration/SelfRegistrationDto.test.js +48 -0
  287. package/src/shared/models/selfRegistration/SelfRegistrationEnumeration.js +17 -0
  288. package/src/shared/models/subscription/SubscriptionDto.js +34 -0
  289. package/src/shared/models/subscription/SubscriptionDto.test.js +31 -0
  290. package/src/shared/models/subscription/SubscriptionModel.js +33 -0
  291. package/src/shared/models/subscription/SubscriptionModel.test.js +48 -0
  292. package/src/shared/models/user/UserModel.js +37 -0
  293. package/src/shared/models/userDirectory/UserDirectoryDTO.js +57 -0
  294. package/src/shared/models/userDirectory/UserDirectoryDTO.test.js +40 -0
  295. package/src/shared/models/userDirectory/UserDirectoryEnum.js +22 -0
  296. package/src/shared/models/userDirectory/UserDirectoryModel.js +64 -0
  297. package/src/shared/models/userDirectory/UserDirectoryModel.test.js +37 -0
  298. package/src/shared/services/actions/subscription/SubscriptionActionService.js +69 -0
  299. package/src/shared/services/actions/subscription/SubscriptionActionService.test.js +73 -0
  300. package/src/shared/services/api/Internationalisation/InternationalisationService.js +46 -0
  301. package/src/shared/services/api/Mfa/MfaService.js +54 -0
  302. package/src/shared/services/{accountRecovery → api/accountRecovery}/ApiAppAccountRecoveryUserService.js +2 -2
  303. package/src/shared/services/{accountRecovery → api/accountRecovery}/ExtAppAccountRecoveryUserService.js +0 -0
  304. package/src/shared/services/api/secrets/pownedService.js +64 -0
  305. package/src/shared/services/api/secrets/pownedService.test.js +63 -0
  306. package/src/shared/services/api/selfRegistration/selfRegistrationService.js +64 -0
  307. package/src/shared/services/api/user/UserService.js +45 -0
  308. package/src/shared/services/api/userDirectory/UserDirectoryService.js +108 -0
  309. package/src/shared/services/forms/Mfa/MfaFormService.js +195 -0
  310. package/src/shared/services/forms/Mfa/MfaFormService.test.js +341 -0
  311. package/src/shared/services/forms/selfRegistration/SelfRegistrationFormService.js +92 -0
  312. package/src/shared/services/forms/selfRegistration/SelfRegistrationFormService.test.js +101 -0
  313. package/src/shared/services/forms/userDirectory/UserDirectoryFormService.js +118 -0
  314. package/src/shared/services/forms/userDirectory/UserDirectoryFormService.test.js +128 -0
  315. package/src/react-extension/components/Administration/DisplayAdministrationWorkspaceActions/DisplayAdministrationWorkspaceActions.js +0 -205
  316. package/src/react-extension/components/Administration/DisplayAdministrationWorkspaceActions/DisplayAdministrationWorkspaceActions.test.data.js +0 -37
  317. package/src/react-extension/components/Administration/DisplayAdministrationWorkspaceActions/DisplayAdministrationWorkspaceActions.test.js +0 -197
  318. package/src/react-extension/components/Administration/DisplayAdministrationWorkspaceActions/DisplayAdministrationWorkspaceActions.test.page.js +0 -133
@@ -0,0 +1,103 @@
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 3.9.0
13
+ */
14
+ import React, {Component} from "react";
15
+ import PropTypes from "prop-types";
16
+ import {Trans, withTranslation} from "react-i18next";
17
+ import DialogWrapper from "../../../Common/Dialog/DialogWrapper/DialogWrapper";
18
+ import FormCancelButton from "../../../Common/Inputs/FormSubmitButton/FormCancelButton";
19
+ import FormSubmitButton from "../../../Common/Inputs/FormSubmitButton/FormSubmitButton";
20
+ import {withAdminSelfRegistration} from "../../../../contexts/Administration/AdministrationSelfRegistration/AdministrationSelfRegistrationContext";
21
+
22
+ class ConfirmDeletionSelfRegistrationSettings extends Component {
23
+ /**
24
+ * Constructor
25
+ * @param {Object} props
26
+ */
27
+ constructor(props) {
28
+ super(props);
29
+ this.bindCallbacks();
30
+ }
31
+
32
+ /**
33
+ * Bind callbacks methods
34
+ */
35
+ bindCallbacks() {
36
+ this.handleSubmit = this.handleSubmit.bind(this);
37
+ this.handleClose = this.handleClose.bind(this);
38
+ }
39
+
40
+ /**
41
+ * Handle close button click.
42
+ */
43
+ handleClose() {
44
+ this.props.onClose();
45
+ }
46
+
47
+ /**
48
+ * Go to the next process
49
+ * @param {Event} event A form submit event
50
+ */
51
+ async handleSubmit(event) {
52
+ event.preventDefault();
53
+ await this.props.onSubmit();
54
+ this.props.onClose();
55
+ }
56
+
57
+ /**
58
+ * Render the component
59
+ * @returns {JSX}
60
+ */
61
+ render() {
62
+ const isProcessing = this.props.adminSelfRegistrationContext.isProcessing();
63
+
64
+ return (
65
+ <DialogWrapper
66
+ title={this.props.t("Disable self registration")}
67
+ onClose={this.handleClose}
68
+ disabled={isProcessing}
69
+ className="delete-self-registration-settings-dialog">
70
+ <form onSubmit={this.handleSubmit}>
71
+ <div className="form-content">
72
+ <p>
73
+ <Trans>Are you sure to disable the self registration for the organization ?</Trans>
74
+ </p>
75
+ <p>
76
+ <Trans>Users will not be able to self register anymore.</Trans> <Trans>Only administrators would be able to invite users to register. </Trans>
77
+ </p>
78
+ </div>
79
+ <div className="submit-wrapper clearfix">
80
+ <FormCancelButton
81
+ onClick={this.handleClose}
82
+ disabled={isProcessing}/>
83
+ <FormSubmitButton
84
+ value={this.props.t("Save")}
85
+ disabled={isProcessing}
86
+ processing={isProcessing}
87
+ warning={true}/>
88
+ </div>
89
+ </form>
90
+ </DialogWrapper>
91
+ );
92
+ }
93
+ }
94
+
95
+ ConfirmDeletionSelfRegistrationSettings.propTypes = {
96
+ adminSelfRegistrationContext: PropTypes.object, // The self registration workspace context
97
+ onClose: PropTypes.func, // Callback when the dialog must be closed
98
+ onSubmit: PropTypes.func, // The submit callback
99
+ t: PropTypes.func, // The translation function
100
+ };
101
+ export default withAdminSelfRegistration(withTranslation('common')(ConfirmDeletionSelfRegistrationSettings));
102
+
103
+
@@ -0,0 +1,53 @@
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 3.8.3
13
+ */
14
+
15
+ /**
16
+ * Unit tests on ConfirmDeletionSelfRegistrationSettings in regard of specifications
17
+ */
18
+ import {waitFor} from "@testing-library/react";
19
+ import {defaultAppContext} from "../../../../contexts/ApiAppContext.test.data";
20
+ import {defaultProps} from "../ConfirmSaveSelfRegistrationSettings/ConfirmSaveSelfRegistrationSettings.test.data";
21
+ import ConfirmDeletionSelfRegistrationSettingsPage from './ConfirmDeletionSelfRegistrationSettings.test.page';
22
+
23
+ beforeEach(() => {
24
+ jest.resetModules();
25
+ });
26
+
27
+ describe("See the confirm disable self registration settings dialog", () => {
28
+ let page; // The page to test agains
29
+
30
+ describe('As a logged in administrator ', () => {
31
+ /**
32
+ * I should see the account recovery settings dialog
33
+ */
34
+ it('As a logged in administrator I can reset the “User self registration” settings when I disable and enable the setting', async() => {
35
+ const props = defaultProps(); // The props to pass
36
+ page = new ConfirmDeletionSelfRegistrationSettingsPage(defaultAppContext, props);
37
+ await waitFor(() => {});
38
+
39
+ expect(page.title).toBe("Disable self registration");
40
+
41
+ // Close button exists
42
+ expect(page.closeButton).not.toBeNull();
43
+
44
+ // domains list
45
+ expect(page.formContent.innerHTML).toBe('<p>Are you sure to disable the self registration for the organization ?</p><p>Users will not be able to self register anymore. Only administrators would be able to invite users to register. </p>');
46
+ // Save button exists
47
+ expect(page.saveButton.textContent).toBe("Save");
48
+ // Cancel button exists
49
+ expect(page.cancelButton.textContent).toBe("Cancel");
50
+ });
51
+ });
52
+ });
53
+
@@ -0,0 +1,81 @@
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 3.8.3
13
+ */
14
+
15
+ import React from "react";
16
+ import MockTranslationProvider from "../../../../test/mock/components/Internationalisation/MockTranslationProvider";
17
+ import {render, fireEvent, waitFor} from '@testing-library/react';
18
+ import {AdminSelfRegistrationContextProvider} from "../../../../contexts/Administration/AdministrationSelfRegistration/AdministrationSelfRegistrationContext";
19
+ import AppContext from "../../../../contexts/AppContext";
20
+ import ConfirmDeletionSelfRegistrationSettings from "./ConfirmDeletionSelfRegistrationSettings";
21
+ /**
22
+ * The ConfirmDeletionSelfRegistrationSettings component represented as a page
23
+ */
24
+ export default class ConfirmDeletionSelfRegistrationSettingsPage {
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
+ <AdminSelfRegistrationContextProvider {...props}>
35
+ <ConfirmDeletionSelfRegistrationSettings {...props}/>
36
+ </AdminSelfRegistrationContextProvider>
37
+ </AppContext.Provider>
38
+ </MockTranslationProvider>
39
+ );
40
+ }
41
+
42
+ /**
43
+ * Returns the title element
44
+ */
45
+ get title() {
46
+ return this._page.container.querySelector('.dialog-header-title').textContent;
47
+ }
48
+
49
+ /**
50
+ * Returns the form content
51
+ */
52
+ get formContent() {
53
+ return this._page.container.querySelector('.form-content');
54
+ }
55
+
56
+ /**
57
+ * Returns the save button element
58
+ */
59
+ get saveButton() {
60
+ return this._page.container.querySelector('.submit-wrapper button[type=\"submit\"]');
61
+ }
62
+
63
+ /**
64
+ * Returns the cancel button element
65
+ */
66
+ get cancelButton() {
67
+ return this._page.container.querySelector('.submit-wrapper .cancel');
68
+ }
69
+
70
+ /**
71
+ * Click on the element
72
+ *
73
+ */
74
+ async click(element) {
75
+ const leftClick = {button: 0};
76
+ fireEvent.click(element, leftClick);
77
+ await waitFor(() => {
78
+ });
79
+ }
80
+ }
81
+
@@ -0,0 +1,34 @@
1
+ /**
2
+ *import { PropTypes } from 'prop-types';
3
+ *import defaultProps from '../DisplaySelfRegistrationAdministration.test.data';
4
+ * Passbolt ~ Open source password manager for teams
5
+ * Copyright (c) Passbolt SA (https://www.passbolt.com)
6
+ *
7
+ * Licensed under GNU Affero General Public License version 3 of the or any later version.
8
+ * For full copyright and license information, please see the LICENSE.txt
9
+ * Redistributions of files must retain the above copyright notice.
10
+ *
11
+ * @copyright Copyright (c) Passbolt SA (https://www.passbolt.com)
12
+ * @license https://opensource.org/licenses/AGPL-3.0 AGPL License
13
+ * @link https://www.passbolt.com Passbolt(tm)
14
+ * @since 3.8.3
15
+ */
16
+
17
+ import React from "react";
18
+ import {MemoryRouter, Route} from "react-router-dom";
19
+ import {defaultProps} from "../ConfirmSaveSelfRegistrationSettings/ConfirmSaveSelfRegistrationSettings.test.data";
20
+ import ConfirmDeletionSelfRegistrationSettings from "./ConfirmDeletionSelfRegistrationSettings";
21
+
22
+
23
+ export default {
24
+ title: 'Components/Administration/ConfirmDeletionSelfRegistrationSettings',
25
+ component: ConfirmDeletionSelfRegistrationSettings
26
+ };
27
+
28
+ const Template = args =>
29
+ <MemoryRouter initialEntries={['/']}>
30
+ <Route component={routerProps => <ConfirmDeletionSelfRegistrationSettings {...args} {...routerProps}/>}></Route>
31
+ </MemoryRouter>;
32
+
33
+ export const Default = Template.bind({});
34
+ Default.args = defaultProps();
@@ -0,0 +1,125 @@
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 3.9.0
13
+ */
14
+ import React, {Component} from "react";
15
+ import PropTypes from "prop-types";
16
+ import {Trans, withTranslation} from "react-i18next";
17
+ import DialogWrapper from "../../../Common/Dialog/DialogWrapper/DialogWrapper";
18
+ import FormCancelButton from "../../../Common/Inputs/FormSubmitButton/FormCancelButton";
19
+ import FormSubmitButton from "../../../Common/Inputs/FormSubmitButton/FormSubmitButton";
20
+ import {withAppContext} from "../../../../contexts/AppContext";
21
+ import {withAdminSelfRegistration} from "../../../../contexts/Administration/AdministrationSelfRegistration/AdministrationSelfRegistrationContext";
22
+ import MapObject from '../../../../lib/Map/MapObject';
23
+
24
+ class ConfirmSaveSelfRegistrationSettings extends Component {
25
+ /**
26
+ * Constructor
27
+ * @param {Object} props
28
+ */
29
+ constructor(props) {
30
+ super(props);
31
+ this.bindCallbacks();
32
+ }
33
+
34
+ /**
35
+ * Bind callbacks methods
36
+ */
37
+ bindCallbacks() {
38
+ this.handleSubmit = this.handleSubmit.bind(this);
39
+ this.handleClose = this.handleClose.bind(this);
40
+ }
41
+
42
+ /**
43
+ * Handle close button click.
44
+ */
45
+ handleClose() {
46
+ this.props.onClose();
47
+ }
48
+
49
+ /**
50
+ * Go to the next process
51
+ * @param {Event} event A form submit event
52
+ */
53
+ async handleSubmit(event) {
54
+ event.preventDefault();
55
+ await this.props.onSubmit();
56
+ this.props.onClose();
57
+ }
58
+
59
+ /**
60
+ * return the allowed domains
61
+ */
62
+ get allowedDomains() {
63
+ return this.props.adminSelfRegistrationContext.getAllowedDomains();
64
+ }
65
+
66
+ /**
67
+ * Render the component
68
+ * @returns {JSX}
69
+ */
70
+ render() {
71
+ const isProcessing = this.props.adminSelfRegistrationContext.isProcessing();
72
+ return (
73
+ <DialogWrapper
74
+ title={this.props.t("Save self registration settings")}
75
+ onClose={this.handleClose}
76
+ disabled={isProcessing}
77
+ className="save-self-registration-settings-dialog">
78
+ <form onSubmit={this.handleSubmit}>
79
+ <div className="form-content">
80
+ <>
81
+ <label><Trans>Allowed domains</Trans></label>
82
+ <div className="radiolist-alt">
83
+ <div className="input radio">
84
+ <ul id="domains-list">
85
+ {this.allowedDomains &&
86
+ MapObject.iterators(this.allowedDomains).map(key => (
87
+ <li key={key}>
88
+ {this.allowedDomains.get(key)}
89
+ </li>
90
+ ))
91
+
92
+ }
93
+ </ul>
94
+ </div>
95
+ </div>
96
+ </>
97
+ </div>
98
+ <div className="warning message">
99
+ <Trans>Please review carefully this configuration.</Trans>
100
+ </div>
101
+ <div className="submit-wrapper clearfix">
102
+ <FormCancelButton
103
+ onClick={this.handleClose}
104
+ disabled={isProcessing}/>
105
+ <FormSubmitButton
106
+ value={this.props.t("Save")}
107
+ disabled={isProcessing}
108
+ processing={isProcessing}
109
+ warning={true}/>
110
+ </div>
111
+ </form>
112
+ </DialogWrapper>
113
+ );
114
+ }
115
+ }
116
+
117
+ ConfirmSaveSelfRegistrationSettings.propTypes = {
118
+ context: PropTypes.any, // The application context
119
+ onSubmit: PropTypes.func, // The submit callback
120
+ adminSelfRegistrationContext: PropTypes.object, // The self registration workspace context
121
+ onClose: PropTypes.func, // Callback when the dialog must be closed
122
+ t: PropTypes.func, // The translation function
123
+ };
124
+ export default withAppContext(withAdminSelfRegistration(withTranslation('common')(ConfirmSaveSelfRegistrationSettings)));
125
+
@@ -0,0 +1,63 @@
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 3.8.3
13
+ */
14
+
15
+ import {defaultAppContext} from "../../../../contexts/ApiAppContext.test.data";
16
+
17
+ /**
18
+ * Default props.
19
+ * @param {Object} props The props to override
20
+ * @returns {object}
21
+ */
22
+ export function defaultProps(data = {}, userId) {
23
+ const defaultProps = {
24
+ context: defaultAppContext(data?.context, userId),
25
+ administrationWorkspaceContext: {
26
+ setDisplayAdministrationWorkspaceAction: jest.fn(),
27
+ resetDisplayAdministrationWorkspaceAction: jest.fn(),
28
+ },
29
+ onClose: jest.fn(),
30
+ onSubmit: jest.fn(),
31
+ t: jest.fn()
32
+ };
33
+ return Object.assign(defaultProps, data);
34
+ }
35
+
36
+
37
+ /**
38
+ * Has changed policy.
39
+ * @param {Object} props The props to override
40
+ * @returns {object}
41
+ */
42
+ export function propsWithMockDomains(props = {}) {
43
+ const _props = {
44
+ adminSelfRegistrationContext: {
45
+ isProcessing: jest.fn(),
46
+ getAllowedDomains: () => (mockDomains())
47
+ }
48
+ };
49
+ return defaultProps(Object.assign(_props, props));
50
+ }
51
+
52
+ /**
53
+ * Has changed policy.
54
+ * @param {Object} props The props to override
55
+ * @returns {object}
56
+ */
57
+ export function mockDomains() {
58
+ const map = new Map();
59
+ map.set("uuid", "passbolt.com");
60
+ map.set("uuid2", "passbolt.lu");
61
+ return map;
62
+ }
63
+
@@ -0,0 +1,54 @@
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 3.8.3
13
+ */
14
+
15
+ /**
16
+ * Unit tests on ConfirmSaveSelfRegistrationSettings in regard of specifications
17
+ */
18
+ import {waitFor} from "@testing-library/react";
19
+ import {defaultAppContext} from "../../../../contexts/ApiAppContext.test.data";
20
+ import {propsWithMockDomains} from "./ConfirmSaveSelfRegistrationSettings.test.data";
21
+ import ConfirmSaveSelfRegistrationSettingsPage from './ConfirmSaveSelfRegistrationSettings.test.page';
22
+
23
+ beforeEach(() => {
24
+ jest.resetModules();
25
+ });
26
+
27
+ describe("See the Confirm Save Self Registration Settings", () => {
28
+ let page; // The page to test agains
29
+
30
+ describe('As a logged in administrator ', () => {
31
+ /**
32
+ * I should see the account recovery settings dialog
33
+ */
34
+ it('As a logged in administrator I can save a list of domains when there is no error and at least one domain filled in', async() => {
35
+ const props = propsWithMockDomains(); // The props to pass
36
+ page = new ConfirmSaveSelfRegistrationSettingsPage(defaultAppContext, props);
37
+ await waitFor(() => {});
38
+
39
+ expect(page.title).toBe("Save self registration settings");
40
+
41
+ // Close button exists
42
+ expect(page.closeButton).not.toBeNull();
43
+
44
+ // domains list
45
+ expect(page.domainsList.innerHTML).toBe('<li>passbolt.com</li><li>passbolt.lu</li>');
46
+ // Save button exists
47
+ expect(page.saveButton.textContent).toBe("Save");
48
+
49
+ // Cancel button exists
50
+ expect(page.cancelButton.textContent).toBe("Cancel");
51
+ });
52
+ });
53
+ });
54
+
@@ -0,0 +1,88 @@
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 3.8.3
13
+ */
14
+
15
+ import React from "react";
16
+ import MockTranslationProvider from "../../../../test/mock/components/Internationalisation/MockTranslationProvider";
17
+ import {render, fireEvent, waitFor} from '@testing-library/react';
18
+ import {AdminSelfRegistrationContextProvider} from "../../../../contexts/Administration/AdministrationSelfRegistration/AdministrationSelfRegistrationContext";
19
+ import AppContext from "../../../../contexts/AppContext";
20
+ import ConfirmSaveSelfRegistrationSettings from "./ConfirmSaveSelfRegistrationSettings";
21
+ /**
22
+ * The ConfirmSaveSelfRegistrationSettings component represented as a page
23
+ */
24
+ export default class ConfirmSaveSelfRegistrationSettingsPage {
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
+ <AdminSelfRegistrationContextProvider {...props}>
35
+ <ConfirmSaveSelfRegistrationSettings {...props}/>
36
+ </AdminSelfRegistrationContextProvider>
37
+ </AppContext.Provider>
38
+ </MockTranslationProvider>
39
+ );
40
+ }
41
+
42
+ /**
43
+ * Returns the title element
44
+ */
45
+ get title() {
46
+ return this._page.container.querySelector('.dialog-header-title').textContent;
47
+ }
48
+
49
+ /**
50
+ * Returns the warning message
51
+ */
52
+ get warningMessage() {
53
+ return this._page.container.querySelector('.warning.message');
54
+ }
55
+
56
+ /**
57
+ * Returns the list of domains
58
+ */
59
+ get domainsList() {
60
+ return this._page.container.querySelector('#domains-list');
61
+ }
62
+
63
+ /**
64
+ * Returns the save button element
65
+ */
66
+ get saveButton() {
67
+ return this._page.container.querySelector('.submit-wrapper button[type=\"submit\"]');
68
+ }
69
+
70
+ /**
71
+ * Returns the cancel button element
72
+ */
73
+ get cancelButton() {
74
+ return this._page.container.querySelector('.submit-wrapper .cancel');
75
+ }
76
+
77
+ /**
78
+ * Click on the element
79
+ *
80
+ */
81
+ async click(element) {
82
+ const leftClick = {button: 0};
83
+ fireEvent.click(element, leftClick);
84
+ await waitFor(() => {
85
+ });
86
+ }
87
+ }
88
+
@@ -0,0 +1,35 @@
1
+ /**
2
+ *import { PropTypes } from 'prop-types';
3
+ *import defaultProps from '../DisplaySelfRegistrationAdministration.test.data';
4
+ * Passbolt ~ Open source password manager for teams
5
+ * Copyright (c) Passbolt SA (https://www.passbolt.com)
6
+ *
7
+ * Licensed under GNU Affero General Public License version 3 of the or any later version.
8
+ * For full copyright and license information, please see the LICENSE.txt
9
+ * Redistributions of files must retain the above copyright notice.
10
+ *
11
+ * @copyright Copyright (c) Passbolt SA (https://www.passbolt.com)
12
+ * @license https://opensource.org/licenses/AGPL-3.0 AGPL License
13
+ * @link https://www.passbolt.com Passbolt(tm)
14
+ * @since 3.8.3
15
+ */
16
+
17
+ import React from "react";
18
+ import {MemoryRouter, Route} from "react-router-dom";
19
+ import ConfirmSaveSelfRegistrationSettings from "./ConfirmSaveSelfRegistrationSettings";
20
+ import {propsWithMockDomains} from "./ConfirmSaveSelfRegistrationSettings.test.data";
21
+
22
+
23
+ export default {
24
+ title: 'Components/Administration/ConfirmSaveSelfRegistrationSettings',
25
+ component: ConfirmSaveSelfRegistrationSettings
26
+ };
27
+
28
+ const Template = args =>
29
+ <MemoryRouter initialEntries={['/']}>
30
+ <Route component={routerProps => <ConfirmSaveSelfRegistrationSettings {...args} {...routerProps}/>}></Route>
31
+ </MemoryRouter>;
32
+
33
+ export const Default = Template.bind({});
34
+ Default.args = propsWithMockDomains();
35
+