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,33 @@
1
+ /**
2
+ * Passbolt ~ Open source password manager for teams
3
+ * Copyright (c) 2022 Passbolt SA (https://www.passbolt.com)
4
+ *
5
+ * Licensed under GNU Affero General Public License version 3 of the or any later version.
6
+ * For full copyright and license information, please see the LICENSE.txt
7
+ * Redistributions of files must retain the above copyright notice.
8
+ *
9
+ * @copyright Copyright (c) 2022 Passbolt SA (https://www.passbolt.com)
10
+ * @license https://opensource.org/licenses/AGPL-3.0 AGPL License
11
+ * @link https=//www.passbolt.com Passbolt(tm)
12
+ * @since 3.8.0
13
+ */
14
+ /**
15
+ * Model related to the subscription model for UI
16
+ */
17
+ class SubscriptionModel {
18
+ /**
19
+ * Constructor
20
+ * @param {SubscriptionDto} subscriptionDto
21
+ */
22
+ constructor(subscriptionDto) {
23
+ this.customerId = subscriptionDto?.customer_id || "";
24
+ this.subscriptionId = subscriptionDto ? "subscription_id" in subscriptionDto ? subscriptionDto.subscription_id : "N/A" : "";
25
+ this.users = subscriptionDto?.users || null;
26
+ this.email = subscriptionDto ? "email" in subscriptionDto ? subscriptionDto.email : "N/A" : "";
27
+ this.expiry = subscriptionDto?.expiry || null;
28
+ this.created = subscriptionDto?.created || null;
29
+ this.data = subscriptionDto?.data || null;
30
+ }
31
+ }
32
+
33
+ export default SubscriptionModel;
@@ -0,0 +1,48 @@
1
+ /**
2
+ * Passbolt ~ Open source password manager for teams
3
+ * Copyright (c) 2022 Passbolt SA (https://www.passbolt.com)
4
+ *
5
+ * Licensed under GNU Affero General Public License version 3 of the or any later version.
6
+ * For full copyright and license information, please see the LICENSE.txt
7
+ * Redistributions of files must retain the above copyright notice.
8
+ *
9
+ * @copyright Copyright (c) 2022 Passbolt SA (https://www.passbolt.com)
10
+ * @license https://opensource.org/licenses/AGPL-3.0 AGPL License
11
+ * @link https=//www.passbolt.com Passbolt(tm)
12
+ * @since 3.8.0
13
+ */
14
+ import {mockSubscription, mockSubscriptionModel} from '../../../react-extension/components/Administration/DisplaySubscriptionKey/DisplaySubscriptionKey.test.data';
15
+ import SubscriptionModel from './SubscriptionModel';
16
+
17
+ /**
18
+ * Test model related to the subscription model
19
+ */
20
+ describe("SubscriptionModel model", () => {
21
+ describe("SubscriptionModel::constructor", () => {
22
+ it("should init model with dto", () => {
23
+ expect.assertions(1);
24
+ const model = new SubscriptionModel(mockSubscription);
25
+ expect(model).toEqual(mockSubscriptionModel);
26
+ });
27
+ it("should init model default value without param", () => {
28
+ expect.assertions(1);
29
+ const model = new SubscriptionModel();
30
+ expect(model).toEqual({
31
+ customerId: "",
32
+ subscriptionId: "",
33
+ users: null,
34
+ email: "",
35
+ expiry: null,
36
+ created: null,
37
+ data: null
38
+ });
39
+ });
40
+ it("should init model with N/A value if email and subscriptionId not exist", () => {
41
+ expect.assertions(2);
42
+ const model = new SubscriptionModel({});
43
+ expect(model.subscriptionId).toEqual("N/A");
44
+ expect(model.email).toEqual("N/A");
45
+ });
46
+ });
47
+ });
48
+
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Passbolt ~ Open source password manager for teams
3
+ * Copyright (c) 2022 Passbolt SA (https://www.passbolt.com)
4
+ *
5
+ * Licensed under GNU Affero General Public License version 3 of the or any later version.
6
+ * For full copyright and license information, please see the LICENSE.txt
7
+ * Redistributions of files must retain the above copyright notice.
8
+ *
9
+ * @copyright Copyright (c) 2022 Passbolt SA (https://www.passbolt.com)
10
+ * @license https://opensource.org/licenses/AGPL-3.0 AGPL License
11
+ * @link https=//www.passbolt.com Passbolt(tm)
12
+ * @since 3.8.0
13
+ */
14
+ /**
15
+ * Model related to the user model for UI
16
+ */
17
+ class UserModel {
18
+ /**
19
+ * Constructor
20
+ * @param {UserDto} userDto
21
+ */
22
+ constructor(userDto) {
23
+ this.id = userDto.id;
24
+ this.active = userDto.active;
25
+ this.deleted = userDto.deleted;
26
+ this.gpgkey = userDto.gpgkey;
27
+ this.groupsUsers = userDto.groups_users;
28
+ this.isMfaEnabled = userDto.is_mfa_enabled;
29
+ this.lastLoggedIn = userDto.last_logged_in;
30
+ this.profile = userDto.profile;
31
+ this.role = userDto.role;
32
+ this.roleId = userDto.role_id;
33
+ this.username = userDto.username;
34
+ }
35
+ }
36
+
37
+ export default UserModel;
@@ -0,0 +1,57 @@
1
+ /**
2
+ * Passbolt ~ Open source password manager for teams
3
+ * Copyright (c) 2022 Passbolt SA (https://www.passbolt.com)
4
+ *
5
+ * Licensed under GNU Affero General Public License version 3 of the or any later version.
6
+ * For full copyright and license information, please see the LICENSE.txt
7
+ * Redistributions of files must retain the above copyright notice.
8
+ *
9
+ * @copyright Copyright (c) 2022 Passbolt SA (https://www.passbolt.com)
10
+ * @license https://opensource.org/licenses/AGPL-3.0 AGPL License
11
+ * @link https=//www.passbolt.com Passbolt(tm)
12
+ * @since 3.8.0
13
+ */
14
+
15
+ /**
16
+ * Model related to the user dto
17
+ */
18
+ class UserDirectoryDTO {
19
+ /**
20
+ * Constructor
21
+ * @param {UserDirectoryModel} userDirectoryModel
22
+ */
23
+ constructor(userDirectoryModel) {
24
+ this.enabled = userDirectoryModel.userDirectoryToggle;
25
+ // CREDENTIALS FIELDS
26
+ this.directory_type = userDirectoryModel.directoryType;
27
+ this.connection_type = userDirectoryModel.connectionType;
28
+ this.server = userDirectoryModel.host;
29
+ this.port = parseInt(userDirectoryModel.port);
30
+ this.username = userDirectoryModel.username;
31
+ this.password = userDirectoryModel.password;
32
+ this.domain_name = userDirectoryModel.domain;
33
+ this.base_dn = userDirectoryModel.baseDn;
34
+ // DIRECTORY CONFIGURATION FIELDS
35
+ this.group_path = userDirectoryModel.groupPath;
36
+ this.user_path = userDirectoryModel.userPath;
37
+ this.group_object_class = this.directory_type === "openldap" ? userDirectoryModel.groupObjectClass : "";
38
+ this.user_object_class = this.directory_type === "openldap" ? userDirectoryModel.userObjectClass : "";
39
+ this.use_email_prefix_suffix = this.directory_type === "openldap" ? userDirectoryModel.useEmailPrefix : false;
40
+ this.email_prefix = this.directory_type === "openldap" && this.useEmailPrefix ? userDirectoryModel.emailPrefix : "";
41
+ this.email_suffix = this.directory_type === "openldap" && this.useEmailPrefix ? userDirectoryModel.emailSuffix : "";
42
+ // SYNCHRONIZATION OPTIONS
43
+ this.default_user = userDirectoryModel.defaultAdmin;
44
+ this.default_group_admin_user = userDirectoryModel.defaultGroupAdmin;
45
+ this.groups_parent_group = userDirectoryModel.groupsParentGroup;
46
+ this.users_parent_group = userDirectoryModel.usersParentGroup;
47
+ this.enabled_users_only = userDirectoryModel.enabledUsersOnly;
48
+ this.sync_users_create = userDirectoryModel.createUsers;
49
+ this.sync_users_delete = userDirectoryModel.deleteUsers;
50
+ this.sync_groups_create = userDirectoryModel.createGroups;
51
+ this.sync_groups_delete = userDirectoryModel.deleteGroups;
52
+ this.sync_groups_update = userDirectoryModel.updateGroups;
53
+ }
54
+ }
55
+
56
+ export default UserDirectoryDTO;
57
+
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Passbolt ~ Open source password manager for teams
3
+ * Copyright (c) 2022 Passbolt SA (https://www.passbolt.com)
4
+ *
5
+ * Licensed under GNU Affero General Public License version 3 of the or any later version.
6
+ * For full copyright and license information, please see the LICENSE.txt
7
+ * Redistributions of files must retain the above copyright notice.
8
+ *
9
+ * @copyright Copyright (c) 2022 Passbolt SA (https://www.passbolt.com)
10
+ * @license https://opensource.org/licenses/AGPL-3.0 AGPL License
11
+ * @link https=//www.passbolt.com Passbolt(tm)
12
+ * @since 3.8.0
13
+ */
14
+ import UserDirectoryDTO from './UserDirectoryDTO';
15
+ import {mockResult, mockModel} from '../../../react-extension/components/Administration/DisplayUserDirectoryAdministration/DisplayUserDirectoryAdministration.test.data';
16
+
17
+ /**
18
+ * Test model related to the user dto
19
+ */
20
+ describe("UserDirectoryDTO model", () => {
21
+ describe("UserDirectoryDTO::constructor", () => {
22
+ it("should init dto with model", () => {
23
+ const dto = new UserDirectoryDTO(mockModel);
24
+ expect.assertions(1);
25
+ expect(dto).toEqual(mockResult);
26
+ });
27
+ it("should init with default value if directory type is openldap", () => {
28
+ const model = Object.assign({}, mockModel, {userDirectoryModel: "openldap"});
29
+ const dto = new UserDirectoryDTO(model);
30
+ expect.assertions(5);
31
+ expect(dto.group_object_class).toEqual("");
32
+ expect(dto.user_object_class).toEqual("");
33
+ expect(dto.use_email_prefix_suffix).toEqual(false);
34
+ expect(dto.email_suffix).toEqual("");
35
+ expect(dto.email_prefix).toEqual("");
36
+ });
37
+ });
38
+ });
39
+
40
+
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Passbolt ~ Open source password manager for teams
3
+ * Copyright (c) 2022 Passbolt SA (https://www.passbolt.com)
4
+ *
5
+ * Licensed under GNU Affero General Public License version 3 of the or any later version.
6
+ * For full copyright and license information, please see the LICENSE.txt
7
+ * Redistributions of files must retain the above copyright notice.
8
+ *
9
+ * @copyright Copyright (c) 2022 Passbolt SA (https://www.passbolt.com)
10
+ * @license https://opensource.org/licenses/AGPL-3.0 AGPL License
11
+ * @link https=//www.passbolt.com Passbolt(tm)
12
+ * @since 3.8.0
13
+ */
14
+
15
+ /**
16
+ * UserDirectory enumerations
17
+ */
18
+
19
+ export const DirectoryType = {
20
+ openldap: "openldap",
21
+ ad: "ad"
22
+ };
@@ -0,0 +1,64 @@
1
+ /**
2
+ * Passbolt ~ Open source password manager for teams
3
+ * Copyright (c) 2022 Passbolt SA (https://www.passbolt.com)
4
+ *
5
+ * Licensed under GNU Affero General Public License version 3 of the or any later version.
6
+ * For full copyright and license information, please see the LICENSE.txt
7
+ * Redistributions of files must retain the above copyright notice.
8
+ *
9
+ * @copyright Copyright (c) 2022 Passbolt SA (https://www.passbolt.com)
10
+ * @license https://opensource.org/licenses/AGPL-3.0 AGPL License
11
+ * @link https=//www.passbolt.com Passbolt(tm)
12
+ * @since 3.8.0
13
+ */
14
+ /**
15
+ * Model related to the user model for UI
16
+ */
17
+ class UserDirectoryModel {
18
+ /**
19
+ * Constructor
20
+ * @param {UserDirectoryDTO} userDirectoryDTO
21
+ * @param {UserDirectoryDTO} userDirectoryDTO
22
+ */
23
+ constructor(userDirectoryDTO = [], userId = "") {
24
+ //Sections opened
25
+ this.openCredentials = true;
26
+ this.openDirectoryConfiguration = false;
27
+ this.openSynchronizationOptions = false;
28
+ //Form field option
29
+ this.userDirectoryToggle = userDirectoryDTO.length !== 0;
30
+ // CREDENTIALS FIELDS
31
+ this.directoryType = userDirectoryDTO.length !== 0 ? userDirectoryDTO.directory_type : "ad";
32
+ this.connectionType = userDirectoryDTO.length !== 0 ? userDirectoryDTO.connection_type : "plain";
33
+ this.host = userDirectoryDTO.length !== 0 ? userDirectoryDTO.server : "";
34
+ this.hostError = null;
35
+ this.port = userDirectoryDTO.length !== 0 ? userDirectoryDTO.port.toString() : "389";
36
+ this.portError = null;
37
+ this.username = userDirectoryDTO.length !== 0 ? userDirectoryDTO.username : "";
38
+ this.password = userDirectoryDTO.length !== 0 ? userDirectoryDTO.password : "";
39
+ this.domain = userDirectoryDTO.length !== 0 ? userDirectoryDTO.domain_name : "";
40
+ this.domainError = null;
41
+ this.baseDn = userDirectoryDTO.length !== 0 ? userDirectoryDTO.base_dn : "";
42
+ // DIRECTORY CONFIGURATION FIELDS
43
+ this.groupPath = userDirectoryDTO.length !== 0 ? userDirectoryDTO.group_path : "";
44
+ this.userPath = userDirectoryDTO.length !== 0 ? userDirectoryDTO.user_path : "";
45
+ this.groupObjectClass = userDirectoryDTO.length !== 0 ? userDirectoryDTO.group_object_class : "";
46
+ this.userObjectClass = userDirectoryDTO.length !== 0 ? userDirectoryDTO.user_object_class : "";
47
+ this.useEmailPrefix = userDirectoryDTO.length !== 0 ? userDirectoryDTO.use_email_prefix_suffix : false;
48
+ this.emailPrefix = userDirectoryDTO.length !== 0 ? userDirectoryDTO.email_prefix : "";
49
+ this.emailSuffix = userDirectoryDTO.length !== 0 ? userDirectoryDTO.email_suffix : "";
50
+ // SYNCHRONIZATION OPTIONS
51
+ this.defaultAdmin = userDirectoryDTO.length !== 0 ? userDirectoryDTO.default_user : userId;
52
+ this.defaultGroupAdmin = userDirectoryDTO.length !== 0 ? userDirectoryDTO.default_group_admin_user : userId;
53
+ this.groupsParentGroup = userDirectoryDTO.length !== 0 ? userDirectoryDTO.groups_parent_group : "";
54
+ this.usersParentGroup = userDirectoryDTO.length !== 0 ? userDirectoryDTO.users_parent_group : "";
55
+ this.enabledUsersOnly = userDirectoryDTO.length !== 0 ? userDirectoryDTO.enabled_users_only : false;
56
+ this.createUsers = userDirectoryDTO.length !== 0 ? userDirectoryDTO.sync_users_create : true;
57
+ this.deleteUsers = userDirectoryDTO.length !== 0 ? userDirectoryDTO.sync_users_delete : true;
58
+ this.createGroups = userDirectoryDTO.length !== 0 ? userDirectoryDTO.sync_groups_create : true;
59
+ this.deleteGroups = userDirectoryDTO.length !== 0 ? userDirectoryDTO.sync_groups_delete : true;
60
+ this.updateGroups = userDirectoryDTO.length !== 0 ? userDirectoryDTO.sync_groups_update : true;
61
+ }
62
+ }
63
+
64
+ export default UserDirectoryModel;
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Passbolt ~ Open source password manager for teams
3
+ * Copyright (c) 2022 Passbolt SA (https://www.passbolt.com)
4
+ *
5
+ * Licensed under GNU Affero General Public License version 3 of the or any later version.
6
+ * For full copyright and license information, please see the LICENSE.txt
7
+ * Redistributions of files must retain the above copyright notice.
8
+ *
9
+ * @copyright Copyright (c) 2022 Passbolt SA (https://www.passbolt.com)
10
+ * @license https://opensource.org/licenses/AGPL-3.0 AGPL License
11
+ * @link https=//www.passbolt.com Passbolt(tm)
12
+ * @since 3.8.0
13
+ */
14
+ import UserDirectoryModel from './UserDirectoryModel';
15
+ import {defaultMockModel, mockResult, mockModel} from '../../../react-extension/components/Administration/DisplayUserDirectoryAdministration/DisplayUserDirectoryAdministration.test.data';
16
+
17
+ /**
18
+ * Test model related to the user model
19
+ */
20
+ describe("UserDirectoryModel model", () => {
21
+ describe("UserDirectoryModel::constructor", () => {
22
+ it("should init model with default value", () => {
23
+ const model = new UserDirectoryModel();
24
+ expect.assertions(1);
25
+ expect(model).toEqual(defaultMockModel);
26
+ });
27
+
28
+ it("should init model with dto", () => {
29
+ const model = new UserDirectoryModel(mockResult);
30
+ expect.assertions(1);
31
+ expect(model).toEqual(mockModel);
32
+ });
33
+ });
34
+ });
35
+
36
+
37
+
@@ -0,0 +1,69 @@
1
+ /**
2
+ * Passbolt ~ Open source password manager for teams
3
+ * Copyright (c) 2022 Passbolt SA (https://www.passbolt.com)
4
+ *
5
+ * Licensed under GNU Affero General Public License version 3 of the or any later version.
6
+ * For full copyright and license information, please see the LICENSE.txt
7
+ * Redistributions of files must retain the above copyright notice.
8
+ *
9
+ * @copyright Copyright (c) 2022 Passbolt SA (https://www.passbolt.com)
10
+ * @license https://opensource.org/licenses/AGPL-3.0 AGPL License
11
+ * @link https://www.passbolt.com Passbolt(tm)
12
+ * @since 3.8.0
13
+ */
14
+
15
+ import EditSubscriptionKey from "../../../../react-extension/components/Administration/EditSubscriptionKey/EditSubscriptionKey";
16
+
17
+
18
+ /**
19
+ * the subscription action service
20
+ */
21
+ class SubscriptionActionService {
22
+ /**
23
+ * Constructor
24
+ *
25
+ * @param {props} props
26
+ * @public
27
+ */
28
+ constructor(props) {
29
+ this.context = props.context;
30
+ this.dialogContext = props.dialogContext;
31
+ this.subscriptionContext = props.adminSubcriptionContext;
32
+ }
33
+
34
+ /**
35
+ * getInstance for singleton pattern
36
+ * @param {context} context
37
+ * @public
38
+ */
39
+ static getInstance(context) {
40
+ if (!this.instance) {
41
+ this.instance = new SubscriptionActionService(context);
42
+ }
43
+ return this.instance;
44
+ }
45
+
46
+ /**
47
+ * killInstance singleton
48
+ * @param {context} context
49
+ * @public
50
+ */
51
+ static killInstance() {
52
+ this.instance = null;
53
+ }
54
+
55
+ /**
56
+ * Open the subscription key dialog
57
+ * @returns {Promise<boolean>}
58
+ */
59
+ async editSubscription() {
60
+ const editSubscriptionKey = {
61
+ key: this.subscriptionContext.getSubscription().data
62
+ };
63
+ this.context.setContext({editSubscriptionKey});
64
+ this.dialogContext.open(EditSubscriptionKey);
65
+ }
66
+ }
67
+
68
+ export default SubscriptionActionService;
69
+
@@ -0,0 +1,73 @@
1
+ /**
2
+ * Passbolt ~ Open source password manager for teams
3
+ * Copyright (c) 2022 Passbolt SA (https://www.passbolt.com)
4
+ *
5
+ * Licensed under GNU Affero General Public License version 3 of the or any later version.
6
+ * For full copyright and license information, please see the LICENSE.txt
7
+ * Redistributions of files must retain the above copyright notice.
8
+ *
9
+ * @copyright Copyright (c) 2022 Passbolt SA (https://www.passbolt.com)
10
+ * @license https://opensource.org/licenses/AGPL-3.0 AGPL License
11
+ * @link https://www.passbolt.com Passbolt(tm)
12
+ * @since 3.8.0
13
+ */
14
+
15
+ import SubscriptionActionService from './SubscriptionActionService';
16
+
17
+ beforeEach(() => {
18
+ jest.resetModules();
19
+ });
20
+
21
+ describe("SubscriptionActionService", () => {
22
+ let subscriptionActionService;
23
+
24
+ const props = {
25
+ context: {
26
+ setContext: jest.fn()
27
+ },
28
+ dialogContext: {
29
+ open: jest.fn()
30
+ },
31
+ adminSubcriptionContext: {
32
+ getSubscription: () => ({data: "mockData"})
33
+ }
34
+ };
35
+
36
+ beforeEach(() => {
37
+ SubscriptionActionService.killInstance();
38
+ subscriptionActionService = SubscriptionActionService.getInstance(props);
39
+ });
40
+
41
+ describe("MfaFormService::getInstance", () => {
42
+ it("should be a singleton", () => {
43
+ expect.assertions(1);
44
+ expect(subscriptionActionService).toBeDefined();
45
+ });
46
+ it("should not create a new instance", () => {
47
+ expect.assertions(1);
48
+ const newInstance = SubscriptionActionService.getInstance();
49
+ expect(subscriptionActionService).toEqual(newInstance);
50
+ });
51
+ });
52
+
53
+ describe("MfaFormService::killInstance", () => {
54
+ it("should kill the instance and create a new one", () => {
55
+ expect.assertions(1);
56
+ SubscriptionActionService.killInstance();
57
+ subscriptionActionService = SubscriptionActionService.getInstance({"context": null, "dialogContext": null, "adminSubcriptionContext": null});
58
+ expect(subscriptionActionService).toEqual({"context": null, "dialogContext": null, "subscriptionContext": null});
59
+ });
60
+ });
61
+
62
+ describe("MfaFormService::editSubscription", () => {
63
+ it("should kill the instance and create a new one", () => {
64
+ expect.assertions(1);
65
+ const editSubscriptionKey = {
66
+ key: props.adminSubcriptionContext.getSubscription().data
67
+ };
68
+ subscriptionActionService.editSubscription();
69
+ expect(props.context.setContext).toHaveBeenCalledWith({editSubscriptionKey});
70
+ });
71
+ });
72
+ });
73
+
@@ -0,0 +1,46 @@
1
+
2
+ /**
3
+ * Passbolt ~ Open source password manager for teams
4
+ * Copyright (c) 2022 Passbolt SA (https://www.passbolt.com)
5
+ *
6
+ * Licensed under GNU Affero General Public License version 3 of the or any later version.
7
+ * For full copyright and license information, please see the LICENSE.txt
8
+ * Redistributions of files must retain the above copyright notice.
9
+ *
10
+ * @copyright Copyright (c) 2022 Passbolt SA (https://www.passbolt.com)
11
+ * @license https://opensource.org/licenses/AGPL-3.0 AGPL License
12
+ * @link https://www.passbolt.com Passbolt(tm)
13
+ * @since 3.8.0
14
+ */
15
+
16
+ import {ApiClient} from "../../../lib/apiClient/apiClient";
17
+
18
+ const INTERNATIONALISATION_RESOURCE_NAME = "locale/settings";
19
+
20
+ /**
21
+ * Model related to the intertionalisation service settings
22
+ */
23
+ class InternationalisationService {
24
+ /**
25
+ * Constructor
26
+ *
27
+ * @param {ApiClientOptions} apiClientOptions
28
+ * @public
29
+ */
30
+ constructor(apiClientOptions) {
31
+ apiClientOptions.setResourceName(INTERNATIONALISATION_RESOURCE_NAME);
32
+ this.apiClient = new ApiClient(apiClientOptions);
33
+ }
34
+
35
+ /**
36
+ * Save the given internalisation settings using Passbolt API
37
+ * @param {string} lang
38
+ * @returns {Promise<string>}
39
+ */
40
+ async save(lang) {
41
+ return (await this.apiClient.create(lang)).body;
42
+ }
43
+ }
44
+
45
+ export default InternationalisationService;
46
+
@@ -0,0 +1,54 @@
1
+ /**
2
+ * Passbolt ~ Open source password manager for teams
3
+ * Copyright (c) 2022 Passbolt SA (https://www.passbolt.com)
4
+ *
5
+ * Licensed under GNU Affero General Public License version 3 of the or any later version.
6
+ * For full copyright and license information, please see the LICENSE.txt
7
+ * Redistributions of files must retain the above copyright notice.
8
+ *
9
+ * @copyright Copyright (c) 2022 Passbolt SA (https://www.passbolt.com)
10
+ * @license https://opensource.org/licenses/AGPL-3.0 AGPL License
11
+ * @link https://www.passbolt.com Passbolt(tm)
12
+ * @since 3.8.0
13
+ */
14
+
15
+ import {ApiClient} from "../../../lib/apiClient/apiClient";
16
+
17
+ const MFA_RESOURCE_NAME = "mfa/settings";
18
+
19
+ /**
20
+ * Model related to the MFA service settings
21
+ */
22
+ class MFAService {
23
+ /**
24
+ * Constructor
25
+ *
26
+ * @param {ApiClientOptions} apiClientOptions
27
+ * @public
28
+ */
29
+ constructor(apiClientOptions) {
30
+ apiClientOptions.setResourceName(MFA_RESOURCE_NAME);
31
+ this.apiClient = new ApiClient(apiClientOptions);
32
+ }
33
+
34
+ /**
35
+ * Find the MFA setting using Passbolt API
36
+ *
37
+ * @return {Promise<Array<MFADto>>|null>}
38
+ */
39
+ async findAllSettings() {
40
+ return (await this.apiClient.findAll()).body;
41
+ }
42
+
43
+ /**
44
+ * Save the MFA settings settings using Passbolt API
45
+ * @param {MFASettingDto} MFASetting
46
+ * @returns {Promise<MFASettingDto>}
47
+ */
48
+ async save(MFASetting) {
49
+ return (await this.apiClient.create(MFASetting)).body;
50
+ }
51
+ }
52
+
53
+ export default MFAService;
54
+
@@ -12,8 +12,8 @@
12
12
  * @since 3.6.0
13
13
  */
14
14
 
15
- import {ApiClient} from "../../lib/apiClient/apiClient";
16
- import {ApiClientOptions} from "../../lib/apiClient/apiClientOptions";
15
+ import {ApiClient} from "../../../lib/apiClient/apiClient";
16
+ import {ApiClientOptions} from "../../../lib/apiClient/apiClientOptions";
17
17
 
18
18
  export default class ApiAppAccountRecoveryUserService {
19
19
  constructor() {
@@ -0,0 +1,64 @@
1
+ /**
2
+ * Passbolt ~ Open source password manager for teams
3
+ * Copyright (c) 2022 Passbolt SA (https://www.passbolt.com)
4
+ *
5
+ * Licensed under GNU Affero General Public License version 3 of the or any later version.
6
+ * For full copyright and license information, please see the LICENSE.txt
7
+ * Redistributions of files must retain the above copyright notice.
8
+ *
9
+ * @copyright Copyright (c) 2022 Passbolt SA (https://www.passbolt.com)
10
+ * @license https://opensource.org/licenses/AGPL-3.0 AGPL License
11
+ * @link https://www.passbolt.com Passbolt(tm)
12
+ * @since 3.9.0
13
+ */
14
+
15
+ /**
16
+ * Call browser extention to check if password is powned
17
+ */
18
+ class PownedService {
19
+ /**
20
+ * Constructor
21
+ *
22
+ * @param {port} port for browser extension
23
+ * @public
24
+ */
25
+ constructor(port) {
26
+ this.port = port;
27
+ }
28
+
29
+ /**
30
+ * Evaluates a given secret for security.
31
+ *
32
+ * @param {string} secret - The secret to evaluate.
33
+ * @returns {Object} An object containing the evaluation results.
34
+ * @returns {boolean} notInDictionaryHint - Indicates whether the secret is not present in a dictionary.
35
+ * @returns {boolean} isPwnedServiceAvailable - Indicates whether the pwned password service is available.
36
+ */
37
+ async evaluateSecret(secret) {
38
+ let inDictionary = true;
39
+ let isPwnedServiceAvailable = true;
40
+ if (secret.length >= 8) {
41
+ try {
42
+ inDictionary = await this.checkIfPasswordPowned(secret);
43
+ } catch (error) {
44
+ inDictionary = false;
45
+ isPwnedServiceAvailable = false;
46
+ }
47
+ }
48
+
49
+ return {inDictionary, isPwnedServiceAvailable};
50
+ }
51
+
52
+ /**
53
+ * Call the browser extension to check if password is part of a dictionaty
54
+ * @param {string} password to check
55
+ * @return {Promise<SelfRegistrationDto>}
56
+ */
57
+ async checkIfPasswordPowned(password) {
58
+ const response = await this.port.request("passbolt.secrets.powned-password", password);
59
+ return response > 0;
60
+ }
61
+ }
62
+
63
+ export default PownedService;
64
+