passbolt-browser-extension 5.13.0 → 5.14.2

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 (282) hide show
  1. package/.devcontainer/Dockerfile +33 -3
  2. package/.devcontainer/devcontainer-lock.json +9 -0
  3. package/.devcontainer/post-start.sh +1 -2
  4. package/.github/workflows/codeql-analysis.yml +2 -1
  5. package/.github/workflows/release_candidate.yaml +3 -1
  6. package/.gitlab-ci.yml +1 -0
  7. package/CHANGELOG.md +202 -70
  8. package/CODEOWNERS +2 -0
  9. package/RELEASE_NOTES.md +4 -2
  10. package/package.json +9 -7
  11. package/renovate.json +6 -0
  12. package/src/all/background_page/controller/InformMenuController/InformMenuController.js +2 -5
  13. package/src/all/background_page/controller/InformMenuController/InformMenuController.test.js +31 -1
  14. package/src/all/background_page/controller/account/getAndInitializeAccountLocaleController.js +1 -1
  15. package/src/all/background_page/controller/account/getAndInitializeAccountLocaleController.test.js +6 -14
  16. package/src/all/background_page/controller/account/updatePrivateKeyController.js +7 -5
  17. package/src/all/background_page/controller/account/updatePrivateKeyController.test.js +18 -13
  18. package/src/all/background_page/controller/accountRecovery/accountRecoveryGenerateOrganizationKeyController.js +4 -2
  19. package/src/all/background_page/controller/accountRecovery/accountRecoveryGenerateOrganizationKeyController.test.js +25 -2
  20. package/src/all/background_page/controller/accountRecovery/accountRecoveryLoginController.js +1 -1
  21. package/src/all/background_page/controller/accountRecovery/accountRecoveryLoginController.test.js +10 -5
  22. package/src/all/background_page/controller/accountRecovery/recoverAccountController.js +6 -2
  23. package/src/all/background_page/controller/accountRecovery/recoverAccountController.test.js +11 -4
  24. package/src/all/background_page/controller/auth/authCheckStatus.test.data.js +6 -6
  25. package/src/all/background_page/controller/auth/authCheckStatusController.js +11 -3
  26. package/src/all/background_page/controller/auth/authCheckStatusController.test.js +74 -44
  27. package/src/all/background_page/controller/auth/authIsMfaRequiredController.js +11 -3
  28. package/src/all/background_page/controller/auth/authIsMfaRequiredController.test.js +18 -9
  29. package/src/all/background_page/controller/auth/authLoginController.js +1 -1
  30. package/src/all/background_page/controller/auth/authLoginController.test.js +10 -5
  31. package/src/all/background_page/controller/autofill/AutofillController.js +3 -3
  32. package/src/all/background_page/controller/autofill/AutofillController.test.js +20 -12
  33. package/src/all/background_page/controller/export/exportResourcesFileController.js +6 -3
  34. package/src/all/background_page/controller/export/exportResourcesFileController.test.js +34 -4
  35. package/src/all/background_page/controller/extension/onExtensionInstalledController.js +8 -2
  36. package/src/all/background_page/controller/extension/onExtensionInstalledController.test.js +5 -1
  37. package/src/all/background_page/controller/group/{getOrFindGroupsController.js → findGroupsByIdsForShareController.js} +9 -10
  38. package/src/all/background_page/controller/group/{getOrFindGroupsController.test.js → findGroupsByIdsForShareController.test.js} +8 -8
  39. package/src/all/background_page/controller/group/groupUpdateController.test.js +1 -0
  40. package/src/all/background_page/controller/import/importResourcesFileController.test.js +8 -1
  41. package/src/all/background_page/controller/informCallToActionController/informCallToActionController.js +2 -2
  42. package/src/all/background_page/controller/informCallToActionController/informCallToActionController.test.js +7 -4
  43. package/src/all/background_page/controller/locale/getLocaleController.js +3 -2
  44. package/src/all/background_page/controller/metadata/findMetadataTypesSettingsController.test.js +9 -15
  45. package/src/all/background_page/controller/metadata/getMetadataTypesSettingsController.test.js +9 -15
  46. package/src/all/background_page/controller/metadata/getOrFindMetadataKeysSettingsController.test.js +12 -22
  47. package/src/all/background_page/controller/metadata/shareMetadataKeyPrivateController.test.js +14 -2
  48. package/src/all/background_page/controller/move/moveFolderController.test.js +8 -0
  49. package/src/all/background_page/controller/move/moveResourcesController.test.js +8 -0
  50. package/src/all/background_page/controller/passwordExpiry/getOrFindPasswordExpirySettingsController.test.js +13 -8
  51. package/src/all/background_page/controller/passwordExpiry/savePasswordExpirySettingsController.js +4 -4
  52. package/src/all/background_page/controller/passwordExpiry/savePasswordExpirySettingsController.test.js +8 -10
  53. package/src/all/background_page/controller/permission/findPermissionsByIdsForShareController.js +62 -0
  54. package/src/all/background_page/controller/permission/findPermissionsByIdsForShareController.test.js +71 -0
  55. package/src/all/background_page/controller/recover/generateRecoverAccountRecoveryRequestKeyController.js +1 -1
  56. package/src/all/background_page/controller/resource/resourceCreateController.js +11 -4
  57. package/src/all/background_page/controller/resource/resourceCreateController.test.js +12 -1
  58. package/src/all/background_page/controller/resource/resourceUpdateController.js +11 -4
  59. package/src/all/background_page/controller/resource/resourceUpdateController.test.js +35 -2
  60. package/src/all/background_page/controller/resourceType/getResourceTypesController.js +5 -4
  61. package/src/all/background_page/controller/resourceType/getResourceTypesController.test.js +5 -2
  62. package/src/all/background_page/controller/resourceType/updateAllResourceTypesDeletedStatusController.js +3 -2
  63. package/src/all/background_page/controller/resourceType/updateAllResourceTypesDeletedStatusController.test.js +16 -3
  64. package/src/all/background_page/controller/secret/findSecretByResourceIdController.js +3 -3
  65. package/src/all/background_page/controller/secret/findSecretByResourceIdController.test.js +24 -0
  66. package/src/all/background_page/controller/secretRevision/findResourceSecretRevisionsForDisplayController.js +2 -1
  67. package/src/all/background_page/controller/setup/generateSetupKeyPairController.js +6 -3
  68. package/src/all/background_page/controller/setup/generateSetupKeyPairController.test.js +11 -1
  69. package/src/all/background_page/controller/setup/getAndInitSetupLocaleController.js +1 -1
  70. package/src/all/background_page/controller/setup/getAndInitSetupLocaleController.test.js +14 -18
  71. package/src/all/background_page/controller/setup/setSetupLocaleController.js +1 -1
  72. package/src/all/background_page/controller/setup/setSetupLocaleController.test.js +6 -10
  73. package/src/all/background_page/controller/setup/signInSetupController.js +6 -2
  74. package/src/all/background_page/controller/setup/signInSetupController.test.js +10 -5
  75. package/src/all/background_page/controller/share/shareOneFolderController.test.js +8 -0
  76. package/src/all/background_page/controller/share/shareResourcesController.test.js +9 -1
  77. package/src/all/background_page/controller/siteSettings/getOrFindSiteSettingsController.js +59 -0
  78. package/src/all/background_page/controller/siteSettings/getOrFindSiteSettingsController.test.js +150 -0
  79. package/src/all/background_page/controller/{group/getOrFindGroupsUsersController.js → user/getOrFindAllUsersController.js} +12 -17
  80. package/src/all/background_page/controller/user/getOrFindAllUsersController.test.js +55 -0
  81. package/src/all/background_page/controller/user/getOrFindLoggedInUserController.js +3 -3
  82. package/src/all/background_page/controller/user/getOrFindLoggedInUserController.test.js +19 -15
  83. package/src/all/background_page/controller/user/updateUserLocalStorageController.test.js +8 -5
  84. package/src/all/background_page/event/accountRecoveryEvents.js +4 -4
  85. package/src/all/background_page/event/appEvents.js +7 -2
  86. package/src/all/background_page/event/authEvents.js +2 -2
  87. package/src/all/background_page/event/groupEvents.js +4 -17
  88. package/src/all/background_page/event/informCallToActionEvents.js +1 -1
  89. package/src/all/background_page/event/informMenuEvents.js +1 -1
  90. package/src/all/background_page/event/localeEvents.js +4 -3
  91. package/src/all/background_page/event/permissionEvents.js +13 -0
  92. package/src/all/background_page/event/recoverEvents.js +4 -4
  93. package/src/all/background_page/event/resourceEvents.js +6 -15
  94. package/src/all/background_page/event/resourceTypeEvents.js +4 -3
  95. package/src/all/background_page/event/setupEvents.js +4 -4
  96. package/src/all/background_page/event/siteSettingsEvents.js +29 -0
  97. package/src/all/background_page/event/userEvents.js +4 -8
  98. package/src/all/background_page/index.js +0 -37
  99. package/src/all/background_page/model/entity/account/abstractAccountEntity.js +2 -2
  100. package/src/all/background_page/model/entity/account/accountAccountRecoveryEntity.js +7 -17
  101. package/src/all/background_page/model/entity/account/accountEntity.js +7 -14
  102. package/src/all/background_page/model/entity/account/accountKitEntity.js +1 -2
  103. package/src/all/background_page/model/entity/account/accountRecoverEntity.js +4 -14
  104. package/src/all/background_page/model/entity/account/accountSetupEntity.js +4 -14
  105. package/src/all/background_page/model/entity/account/accountTemporaryEntity.js +2 -5
  106. package/src/all/background_page/model/entity/gpgkey/generate/generateGpgKeyPairOptionsEntity.test.js +5 -5
  107. package/src/all/background_page/model/entity/localStorage/localStorageMetadataEntity.js +49 -0
  108. package/src/all/background_page/model/entity/localStorage/localStorageMetadataEntity.test.data.js +23 -0
  109. package/src/all/background_page/model/entity/localStorage/localStorageMetadataEntity.test.js +51 -0
  110. package/src/all/background_page/model/entity/{organizationSettings/organizationSettingsEntity.js → siteSettings/siteSettingsEntity.js} +17 -24
  111. package/src/all/background_page/model/entity/{organizationSettings/organizationSettingsEntity.test.data.js → siteSettings/siteSettingsEntity.test.data.js} +9 -9
  112. package/src/all/background_page/model/entity/{organizationSettings/organizationSettingsEntity.test.js → siteSettings/siteSettingsEntity.test.js} +30 -39
  113. package/src/all/background_page/model/entity/user/userEntity.test.js +6 -6
  114. package/src/all/background_page/model/export/resources/resourcesKdbxExporter.js +40 -3
  115. package/src/all/background_page/model/export/resources/resourcesKdbxExporter.test.js +122 -0
  116. package/src/all/background_page/model/import/resources/resourcesKdbxImportParser.js +1 -1
  117. package/src/all/background_page/model/locale/localeModel.js +13 -8
  118. package/src/all/background_page/model/passwordExpiry/passwordExpirySettingsModel.js +6 -6
  119. package/src/all/background_page/model/passwordExpiry/passwordExpirySettingsModel.test.js +3 -2
  120. package/src/all/background_page/model/resource/resourceModel.js +4 -4
  121. package/src/all/background_page/model/user/userModel.js +7 -28
  122. package/src/all/background_page/model/user/userModel.test.js +51 -99
  123. package/src/all/background_page/pagemod/appBootstrapPagemod.js +4 -1
  124. package/src/all/background_page/pagemod/appBootstrapPagemod.test.js +5 -2
  125. package/src/all/background_page/pagemod/appPagemod.js +32 -6
  126. package/src/all/background_page/pagemod/appPagemod.test.js +22 -10
  127. package/src/all/background_page/pagemod/authPagemod.js +2 -10
  128. package/src/all/background_page/pagemod/authPagemod.test.js +4 -4
  129. package/src/all/background_page/pagemod/pagemodManager.test.js +5 -2
  130. package/src/all/background_page/pagemod/quickAccessPagemod.js +2 -2
  131. package/src/all/background_page/pagemod/quickAccessPagemod.test.js +4 -4
  132. package/src/all/background_page/pagemod/recoverPagemod.js +2 -2
  133. package/src/all/background_page/pagemod/recoverPagemod.test.js +6 -0
  134. package/src/all/background_page/pagemod/setupPagemod.js +2 -2
  135. package/src/all/background_page/pagemod/setupPagemod.test.js +6 -0
  136. package/src/all/background_page/pagemod/webIntegrationPagemod.js +21 -2
  137. package/src/all/background_page/pagemod/webIntegrationPagemod.test.js +16 -25
  138. package/src/all/background_page/service/account/getActiveAccountService.js +2 -3
  139. package/src/all/background_page/service/account/getLegacyAccountService.js +3 -14
  140. package/src/all/background_page/service/account/updateSsoCredentialsService.js +9 -5
  141. package/src/all/background_page/service/api/group/groupApiService.js +9 -16
  142. package/src/all/background_page/service/api/group/groupApiService.test.js +59 -26
  143. package/src/all/background_page/service/api/siteSettings/siteSettingsApiService.js +46 -0
  144. package/src/all/background_page/service/api/siteSettings/siteSettingsApiService.test.js +63 -0
  145. package/src/all/background_page/service/auth/checkAuthStatusService.js +27 -14
  146. package/src/all/background_page/service/auth/checkAuthStatusService.test.js +80 -62
  147. package/src/all/background_page/service/auth/postLoginService.js +3 -3
  148. package/src/all/background_page/service/auth/postLoginService.test.js +4 -4
  149. package/src/all/background_page/service/auth/startLoopAuthSessionCheckService.js +5 -1
  150. package/src/all/background_page/service/auth/startLoopAuthSessionCheckService.test.js +14 -8
  151. package/src/all/background_page/service/authenticationStatusService.js +13 -18
  152. package/src/all/background_page/service/authenticationStatusService.test.js +9 -6
  153. package/src/all/background_page/service/crypto/generateGpgKeyPairService.test.js +5 -5
  154. package/src/all/background_page/service/crypto/getGpgKeyCreationDateService.js +7 -6
  155. package/src/all/background_page/service/crypto/getGpgKeyCreationDateService.test.js +10 -7
  156. package/src/all/background_page/service/extension/onExtensionUpdateAvailableService.js +7 -2
  157. package/src/all/background_page/service/extension/onExtensionUpdateAvailableService.test.js +5 -5
  158. package/src/all/background_page/service/group/findGroupsService.js +42 -1
  159. package/src/all/background_page/service/group/findGroupsService.test.js +82 -0
  160. package/src/all/background_page/service/group/groupUpdateSecretsCryptoService.js +82 -0
  161. package/src/all/background_page/service/group/groupUpdateSecretsCryptoService.test.js +102 -0
  162. package/src/all/background_page/service/group/groupUpdateService.js +49 -78
  163. package/src/all/background_page/service/group/groupUpdateService.test.js +136 -0
  164. package/src/all/background_page/service/localStorage/localStorageService.js +8 -6
  165. package/src/all/background_page/service/localStorage/localStorageService.test.js +33 -15
  166. package/src/all/background_page/service/local_storage/abstractLocalStorage.js +193 -0
  167. package/src/all/background_page/service/local_storage/abstractLocalStorage.test.data.js +45 -0
  168. package/src/all/background_page/service/local_storage/abstractLocalStorage.test.js +271 -0
  169. package/src/all/background_page/service/local_storage/activeSessionLocalStorage.js +105 -0
  170. package/src/all/background_page/service/local_storage/activeSessionLocalStorage.test.js +153 -0
  171. package/src/all/background_page/service/local_storage/rbacLocalStorage.js +10 -82
  172. package/src/all/background_page/service/local_storage/rbacLocalStorage.test.js +8 -8
  173. package/src/all/background_page/service/local_storage/resourceTypeLocalStorage.js +10 -43
  174. package/src/all/background_page/service/local_storage/resourceTypeLocalStorage.test.js +68 -0
  175. package/src/all/background_page/service/local_storage/siteSettingsLocalStorage.js +104 -0
  176. package/src/all/background_page/service/local_storage/siteSettingsLocalStorage.test.js +114 -0
  177. package/src/all/background_page/service/local_storage/userMeLocalStorage.js +50 -0
  178. package/src/all/background_page/service/{sessionStorage/userMeSessionStorageService.test.js → local_storage/userMeLocalStorage.test.js} +55 -36
  179. package/src/all/background_page/service/metadata/encryptMetadataService.js +3 -3
  180. package/src/all/background_page/service/metadata/encryptMetadataService.test.js +11 -11
  181. package/src/all/background_page/service/metadata/findAndUpdateMetadataSettingsLocalStorageService.js +4 -4
  182. package/src/all/background_page/service/metadata/findAndUpdateMetadataSettingsLocalStorageService.test.js +18 -16
  183. package/src/all/background_page/service/metadata/getOrFindMetadataSettingsService.test.js +6 -8
  184. package/src/all/background_page/service/metadata/rotateMetadata/rotateResourcesMetadataKeyService.test.js +4 -4
  185. package/src/all/background_page/service/metadata/shareMetadataKeyPrivateService.js +3 -3
  186. package/src/all/background_page/service/metadata/shareMetadataKeyPrivateService.test.js +1 -1
  187. package/src/all/background_page/service/metadata/verifyOrTrustMetadataKeyService.js +4 -4
  188. package/src/all/background_page/service/metadata/verifyOrTrustMetadataKeyService.test.js +9 -7
  189. package/src/all/background_page/service/migrateMetadata/migrateMetadataResourcesService.js +4 -4
  190. package/src/all/background_page/service/migrateMetadata/migrateMetadataResourcesService.test.js +6 -6
  191. package/src/all/background_page/service/rbac/findAndUpdateRbacsLocalStorageService.js +2 -2
  192. package/src/all/background_page/service/rbac/getOrFindRbacService.js +1 -1
  193. package/src/all/background_page/service/resource/create/resourceCreateService.js +41 -51
  194. package/src/all/background_page/service/resource/create/resourceCreateService.test.js +100 -98
  195. package/src/all/background_page/service/resource/export/exportResourcesService.js +7 -7
  196. package/src/all/background_page/service/resource/findAndUpdateResourcesLocalStorageService.js +4 -4
  197. package/src/all/background_page/service/resource/findResourcesService.js +13 -16
  198. package/src/all/background_page/service/resource/findResourcesService.test.js +12 -11
  199. package/src/all/background_page/service/resource/getOrFindResourcesService.js +3 -3
  200. package/src/all/background_page/service/resource/import/ImportResourcesService.js +9 -9
  201. package/src/all/background_page/service/resource/import/ImportResourcesService.test.js +30 -15
  202. package/src/all/background_page/service/resource/update/resourceUpdateService.js +38 -19
  203. package/src/all/background_page/service/resource/update/resourceUpdateService.test.js +64 -31
  204. package/src/all/background_page/service/resourceType/getOrFindResourceTypesService.js +49 -0
  205. package/src/all/background_page/service/resourceType/getOrFindResourceTypesService.test.js +61 -0
  206. package/src/all/background_page/service/resourceType/getSecretSchemaResourceTypeService.js +44 -0
  207. package/src/all/background_page/service/resourceType/updateResourceTypesService.js +6 -4
  208. package/src/all/background_page/service/resourceType/updateResourceTypesService.test.js +19 -14
  209. package/src/all/background_page/service/secretRevisions/findAndDecryptSecretRevisionsService.js +5 -4
  210. package/src/all/background_page/service/secretRevisions/findAndDecryptSecretRevisionsService.test.js +16 -9
  211. package/src/all/background_page/service/share/shareResourceService.js +4 -4
  212. package/src/all/background_page/service/share/shareResourceService.test.js +6 -6
  213. package/src/all/background_page/service/siteSettings/findAndUpdateSiteSettingsLocalStorageService.js +77 -0
  214. package/src/all/background_page/service/siteSettings/findAndUpdateSiteSettingsLocalStorageService.test.js +130 -0
  215. package/src/all/background_page/service/siteSettings/findSiteSettingsService.js +47 -0
  216. package/src/all/background_page/service/siteSettings/findSiteSettingsService.test.js +68 -0
  217. package/src/all/background_page/service/siteSettings/getOrFindSiteSettingsService.js +84 -0
  218. package/src/all/background_page/service/siteSettings/getOrFindSiteSettingsService.test.js +175 -0
  219. package/src/all/background_page/service/siteSettings/siteSettingsRuntimeCache.js +70 -0
  220. package/src/all/background_page/service/sso/generateSsoKitService.test.js +2 -2
  221. package/src/all/background_page/service/toolbar/toolbarService.js +6 -4
  222. package/src/all/background_page/service/toolbar/toolbarService.test.js +14 -13
  223. package/src/all/background_page/service/user/findAndUpdateUsersLocalStorageService.js +4 -4
  224. package/src/all/background_page/service/user/findAndUpdateUsersLocalStorageService.test.js +3 -3
  225. package/src/all/background_page/service/user/getOrFindMeService.js +64 -0
  226. package/src/all/background_page/service/user/getOrFindMeService.test.js +65 -0
  227. package/src/all/background_page/service/userKeyPolicies/findUserKeyPoliciesSettingsService.js +5 -4
  228. package/src/all/background_page/service/userKeyPolicies/findUserKeyPoliciesSettingsService.test.js +12 -11
  229. package/src/all/background_page/service/validator/appEmailValidatorService.js +11 -6
  230. package/src/all/background_page/service/validator/appEmailValidatorService.test.js +11 -11
  231. package/src/all/common/polyfill/browserPolyfill.js +8 -8
  232. package/src/all/locales/cs-CZ/common.json +1 -4
  233. package/src/all/locales/de-DE/common.json +1 -4
  234. package/src/all/locales/en-UK/common.json +0 -3
  235. package/src/all/locales/es-ES/common.json +1 -4
  236. package/src/all/locales/fr-FR/common.json +1 -4
  237. package/src/all/locales/it-IT/common.json +1 -4
  238. package/src/all/locales/ja-JP/common.json +1 -4
  239. package/src/all/locales/ko-KR/common.json +0 -3
  240. package/src/all/locales/lt-LT/common.json +1 -4
  241. package/src/all/locales/nl-NL/common.json +1 -4
  242. package/src/all/locales/pl-PL/common.json +1 -4
  243. package/src/all/locales/pt-BR/common.json +1 -4
  244. package/src/all/locales/ro-RO/common.json +1 -4
  245. package/src/all/locales/ru-RU/common.json +1 -4
  246. package/src/all/locales/sl-SI/common.json +1 -4
  247. package/src/all/locales/sv-SE/common.json +1 -4
  248. package/src/all/locales/uk-UA/common.json +1 -4
  249. package/src/all/webAccessibleResources/js/app/QuickAccess.js +7 -0
  250. package/src/chrome/manifest.json +1 -1
  251. package/src/chrome-mv3/manifest.json +1 -1
  252. package/src/chrome-mv3/offscreens/service/group/addUsersToGroupOffscreenService.js +132 -0
  253. package/src/chrome-mv3/offscreens/service/group/addUsersToGroupOffscreenService.test.js +125 -0
  254. package/src/chrome-mv3/offscreens/service/offscreen/handleOffscreenRequestService.js +4 -0
  255. package/src/chrome-mv3/serviceWorker/service/addUsersToGroup/requestAddUsersToGroupOffscreenService.js +83 -0
  256. package/src/chrome-mv3/serviceWorker/service/addUsersToGroup/requestAddUsersToGroupOffscreenService.test.js +116 -0
  257. package/src/chrome-mv3/serviceWorker/service/addUsersToGroup/responseAddUsersToGroupOffscreenService.js +99 -0
  258. package/src/chrome-mv3/serviceWorker/service/addUsersToGroup/responseAddUsersToGroupOffscreenService.test.data.js +45 -0
  259. package/src/chrome-mv3/serviceWorker/service/addUsersToGroup/responseAddUsersToGroupOffscreenService.test.js +87 -0
  260. package/src/chrome-mv3/serviceWorker/service/network/requestFetchOffscreenService.js +0 -1
  261. package/src/chrome-mv3/serviceWorker/service/offscreen/handleOffscreenResponseService.js +15 -0
  262. package/src/firefox/manifest.json +1 -1
  263. package/src/safari/background_page/index.js +0 -37
  264. package/src/safari/common/polyfill/safariBrowserPolyfill.js +10 -10
  265. package/src/safari/manifest.json +1 -1
  266. package/test/jest.setup.js +4 -2
  267. package/src/all/background_page/controller/group/getOrFindGroupsUsersController.test.js +0 -69
  268. package/src/all/background_page/controller/organizationSettings/getOrganizationSettingsController.js +0 -55
  269. package/src/all/background_page/controller/organizationSettings/getOrganizationSettingsController.test.js +0 -45
  270. package/src/all/background_page/controller/resource/findAllByIdsForDisplayPermissionsController.js +0 -76
  271. package/src/all/background_page/controller/resource/findAllByIdsForDisplayPermissionsController.test.js +0 -102
  272. package/src/all/background_page/event/organizationSettingsEvents.js +0 -37
  273. package/src/all/background_page/model/organizationSettings/organizationSettingsModel.js +0 -93
  274. package/src/all/background_page/model/resourceType/resourceTypeModel.js +0 -72
  275. package/src/all/background_page/model/resourceType/resourceTypeModel.test.js +0 -101
  276. package/src/all/background_page/service/api/organizationSettings/organizationSettingsService.js +0 -58
  277. package/src/all/background_page/service/group/getOrFindGroupsService.js +0 -65
  278. package/src/all/background_page/service/group/getOrFindGroupsService.test.js +0 -168
  279. package/src/all/background_page/service/group/getOrFindGroupsUsersService.js +0 -51
  280. package/src/all/background_page/service/group/getOrFindGroupsUsersService.test.js +0 -94
  281. package/src/all/background_page/service/local_storage/authStatusLocalStorage.js +0 -70
  282. package/src/all/background_page/service/sessionStorage/userMeSessionStorageService.js +0 -94
@@ -0,0 +1,150 @@
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 6.0.0
13
+ */
14
+ import SiteSettingsEntity from "passbolt-styleguide/src/shared/models/entity/siteSettings/siteSettingsEntity";
15
+ import { defaultApiClientOptions } from "passbolt-styleguide/src/shared/lib/apiClient/apiClientOptions.test.data";
16
+ import AccountEntity from "../../model/entity/account/accountEntity";
17
+ import { defaultAccountDto } from "../../model/entity/account/accountEntity.test.data";
18
+ import { defaultProSiteSettings } from "passbolt-styleguide/src/shared/models/entity/siteSettings/siteSettingsEntity.test.data";
19
+ import SiteSettingsLocalStorage from "../../service/local_storage/siteSettingsLocalStorage";
20
+ import SiteSettingsRuntimeCache from "../../service/siteSettings/siteSettingsRuntimeCache";
21
+ import GetOrFindSiteSettingsController from "./getOrFindSiteSettingsController";
22
+ import OnlineSessionEntity from "passbolt-styleguide/src/shared/models/entity/session/onlineSessionEntity";
23
+ import CheckAuthStatusService from "../../service/auth/checkAuthStatusService";
24
+
25
+ beforeEach(() => {
26
+ jest.clearAllMocks();
27
+ SiteSettingsRuntimeCache.flushAll();
28
+ SiteSettingsLocalStorage._runtimeCachedData = {};
29
+ });
30
+
31
+ describe("GetOrFindSiteSettingsController", () => {
32
+ let account, apiClientOptions, worker;
33
+
34
+ beforeEach(() => {
35
+ account = new AccountEntity(defaultAccountDto());
36
+ apiClientOptions = defaultApiClientOptions();
37
+ worker = { port: { emit: jest.fn() } };
38
+ });
39
+
40
+ describe("::exec (default refreshCache=true)", () => {
41
+ it("fetches from the API and persists when authenticated", async () => {
42
+ expect.assertions(3);
43
+ const dto = defaultProSiteSettings();
44
+ const controller = new GetOrFindSiteSettingsController(worker, "req-1", apiClientOptions, account);
45
+ jest
46
+ .spyOn(CheckAuthStatusService.prototype, "checkAuthStatus")
47
+ .mockResolvedValue(new OnlineSessionEntity({ is_authenticated: true, is_mfa_authenticated: true }));
48
+ jest
49
+ .spyOn(
50
+ controller.getOrFindSiteSettingsService.findAndUpdateSiteSettingsLocalStorageService.findSiteSettingsService,
51
+ "findSiteSettings",
52
+ )
53
+ .mockResolvedValue(new SiteSettingsEntity(dto));
54
+ const ls =
55
+ controller.getOrFindSiteSettingsService.findAndUpdateSiteSettingsLocalStorageService.siteSettingsLocalStorage;
56
+ await ls.flush();
57
+
58
+ const result = await controller.exec();
59
+
60
+ expect(result.toDto()).toEqual(dto);
61
+ expect(SiteSettingsRuntimeCache.get()).toEqual(dto);
62
+ expect(await ls.get()).toEqual(dto);
63
+ });
64
+
65
+ it("does not persist when not authenticated", async () => {
66
+ expect.assertions(3);
67
+ const dto = defaultProSiteSettings();
68
+ const controller = new GetOrFindSiteSettingsController(worker, "req-1", apiClientOptions, account);
69
+ jest
70
+ .spyOn(CheckAuthStatusService.prototype, "checkAuthStatus")
71
+ .mockResolvedValue(new OnlineSessionEntity({ is_authenticated: false, is_mfa_authenticated: true }));
72
+ jest
73
+ .spyOn(
74
+ controller.getOrFindSiteSettingsService.findAndUpdateSiteSettingsLocalStorageService.findSiteSettingsService,
75
+ "findSiteSettings",
76
+ )
77
+ .mockResolvedValue(new SiteSettingsEntity(dto));
78
+ const ls =
79
+ controller.getOrFindSiteSettingsService.findAndUpdateSiteSettingsLocalStorageService.siteSettingsLocalStorage;
80
+ await ls.flush();
81
+
82
+ const result = await controller.exec();
83
+
84
+ expect(result.toDto()).toEqual(dto);
85
+ expect(SiteSettingsRuntimeCache.get()).toEqual(dto);
86
+ expect(await ls.get()).toBeUndefined();
87
+ });
88
+ });
89
+
90
+ describe("::exec (refreshCache=false)", () => {
91
+ it("returns from the in-memory cache without an API call when populated", async () => {
92
+ expect.assertions(2);
93
+ const dto = defaultProSiteSettings();
94
+ const controller = new GetOrFindSiteSettingsController(worker, "req-1", apiClientOptions, account);
95
+ SiteSettingsRuntimeCache.set(new SiteSettingsEntity(dto));
96
+ const apiSpy = jest.spyOn(
97
+ controller.getOrFindSiteSettingsService.findAndUpdateSiteSettingsLocalStorageService.findSiteSettingsService,
98
+ "findSiteSettings",
99
+ );
100
+
101
+ const result = await controller.exec(false);
102
+
103
+ expect(apiSpy).not.toHaveBeenCalled();
104
+ expect(result.toDto()).toEqual(dto);
105
+ });
106
+
107
+ it("returns from local storage when authenticated, without an API call", async () => {
108
+ expect.assertions(2);
109
+ const dto = defaultProSiteSettings();
110
+ const controller = new GetOrFindSiteSettingsController(worker, "req-1", apiClientOptions, account);
111
+ jest
112
+ .spyOn(CheckAuthStatusService.prototype, "checkAuthStatus")
113
+ .mockResolvedValue(new OnlineSessionEntity({ is_authenticated: true, is_mfa_authenticated: true }));
114
+ await controller.getOrFindSiteSettingsService.siteSettingsLocalStorage.set(new SiteSettingsEntity(dto));
115
+ const apiSpy = jest.spyOn(
116
+ controller.getOrFindSiteSettingsService.findAndUpdateSiteSettingsLocalStorageService.findSiteSettingsService,
117
+ "findSiteSettings",
118
+ );
119
+
120
+ const result = await controller.exec(false);
121
+
122
+ expect(result.toDto()).toEqual(dto);
123
+ expect(apiSpy).not.toHaveBeenCalled();
124
+ });
125
+ });
126
+
127
+ describe("::_exec", () => {
128
+ it("forwards refreshCache from the port handler through to the service", async () => {
129
+ expect.assertions(1);
130
+ const dto = defaultProSiteSettings();
131
+ const controller = new GetOrFindSiteSettingsController(worker, "req-1", apiClientOptions, account);
132
+ SiteSettingsRuntimeCache.set(new SiteSettingsEntity(dto));
133
+ const execSpy = jest.spyOn(controller, "exec");
134
+
135
+ await controller._exec(false);
136
+
137
+ expect(execSpy).toHaveBeenCalledWith(false);
138
+ });
139
+
140
+ it("emits ERROR when the service throws", async () => {
141
+ expect.assertions(1);
142
+ const controller = new GetOrFindSiteSettingsController(worker, "req-1", apiClientOptions, account);
143
+ jest.spyOn(controller.getOrFindSiteSettingsService, "getOrFind").mockRejectedValue(new Error("boom"));
144
+
145
+ await controller._exec();
146
+
147
+ expect(worker.port.emit).toHaveBeenCalledWith("req-1", "ERROR", expect.any(Error));
148
+ });
149
+ });
150
+ });
@@ -11,15 +11,13 @@
11
11
  * @link https://www.passbolt.com Passbolt(tm)
12
12
  * @since 5.13.0
13
13
  */
14
- import GetOrFindGroupsUsersService from "../../service/group/getOrFindGroupsUsersService";
15
- import { assertUuid } from "../../utils/assertions";
14
+ import GetOrFindUsersService from "../../service/user/getOrFindUsersService";
16
15
 
17
16
  /**
18
- * Controller for the `passbolt.groups_users.get-by-group-id` event. Returns the members of the group
19
- * matching the given id, served from the local storage cache when available and otherwise fetched
20
- * from the API.
17
+ * Controller for the `passbolt.users.get-all` event. Returns all the users, served from the local
18
+ * storage cache when available and otherwise fetched from the API.
21
19
  */
22
- class GetOrFindGroupsUsersController {
20
+ class GetOrFindAllUsersController {
23
21
  /**
24
22
  * Constructor.
25
23
  * @param {Worker} worker The associated worker.
@@ -30,17 +28,16 @@ class GetOrFindGroupsUsersController {
30
28
  constructor(worker, requestId, apiClientOptions, account) {
31
29
  this.worker = worker;
32
30
  this.requestId = requestId;
33
- this.getOrFindGroupsUsersService = new GetOrFindGroupsUsersService(account, apiClientOptions);
31
+ this.getOrFindUsersService = new GetOrFindUsersService(account, apiClientOptions);
34
32
  }
35
33
 
36
34
  /**
37
35
  * Controller executor.
38
- * @param {string} groupId The id of the group whose members are requested.
39
36
  * @returns {Promise<void>}
40
37
  */
41
- async _exec(groupId) {
38
+ async _exec() {
42
39
  try {
43
- const result = await this.exec(groupId);
40
+ const result = await this.exec();
44
41
  this.worker.port.emit(this.requestId, "SUCCESS", result);
45
42
  } catch (error) {
46
43
  console.error(error);
@@ -49,14 +46,12 @@ class GetOrFindGroupsUsersController {
49
46
  }
50
47
 
51
48
  /**
52
- * Find all the members of the group matching the given id.
53
- * @param {string} groupId The id of the group whose members are requested.
54
- * @returns {Promise<GroupsUsersCollection>}
49
+ * Get or find all the users.
50
+ * @returns {Promise<UsersCollection>}
55
51
  */
56
- async exec(groupId) {
57
- assertUuid(groupId);
58
- return this.getOrFindGroupsUsersService.getOrFindByGroupId(groupId);
52
+ async exec() {
53
+ return this.getOrFindUsersService.getOrFindAll();
59
54
  }
60
55
  }
61
56
 
62
- export default GetOrFindGroupsUsersController;
57
+ export default GetOrFindAllUsersController;
@@ -0,0 +1,55 @@
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 5.13.0
13
+ */
14
+
15
+ import AccountEntity from "../../model/entity/account/accountEntity";
16
+ import { defaultAccountDto } from "../../model/entity/account/accountEntity.test.data";
17
+ import { defaultApiClientOptions } from "passbolt-styleguide/src/shared/lib/apiClient/apiClientOptions.test.data";
18
+ import GetOrFindAllUsersController from "./getOrFindAllUsersController";
19
+ import UsersCollection from "passbolt-styleguide/src/shared/models/entity/user/usersCollection";
20
+ import { defaultUsersDtos } from "passbolt-styleguide/src/shared/models/entity/user/usersCollection.test.data";
21
+
22
+ beforeEach(() => {
23
+ jest.clearAllMocks();
24
+ });
25
+
26
+ describe("GetOrFindAllUsersController", () => {
27
+ describe("::exec", () => {
28
+ it("Should retrieve all the users.", async () => {
29
+ expect.assertions(3);
30
+
31
+ const account = new AccountEntity(defaultAccountDto());
32
+ const usersCollection = new UsersCollection(defaultUsersDtos());
33
+ const controller = new GetOrFindAllUsersController(null, null, defaultApiClientOptions(), account);
34
+ jest.spyOn(controller.getOrFindUsersService, "getOrFindAll").mockImplementation(() => usersCollection);
35
+
36
+ const result = await controller.exec();
37
+
38
+ expect(result).toBeInstanceOf(UsersCollection);
39
+ expect(result).toStrictEqual(usersCollection);
40
+ expect(controller.getOrFindUsersService.getOrFindAll).toHaveBeenCalled();
41
+ });
42
+
43
+ it("Should let error been thrown from the service if any.", async () => {
44
+ expect.assertions(1);
45
+
46
+ const account = new AccountEntity(defaultAccountDto());
47
+ const controller = new GetOrFindAllUsersController(null, null, defaultApiClientOptions(), account);
48
+ jest.spyOn(controller.getOrFindUsersService, "getOrFindAll").mockImplementation(() => {
49
+ throw new Error("Something went wrong!");
50
+ });
51
+
52
+ await expect(() => controller.exec()).rejects.toThrow();
53
+ });
54
+ });
55
+ });
@@ -12,7 +12,7 @@
12
12
  * @since 4.1.0
13
13
  */
14
14
 
15
- import UserModel from "../../model/user/userModel";
15
+ import GetOrFindMeService from "../../service/user/getOrFindMeService";
16
16
 
17
17
  class GetOrFindLoggedInUserController {
18
18
  /**
@@ -26,7 +26,7 @@ class GetOrFindLoggedInUserController {
26
26
  this.worker = worker;
27
27
  this.requestId = requestId;
28
28
  this.account = account;
29
- this.userModel = new UserModel(apiClientOptions, account);
29
+ this.getOrFindMeService = new GetOrFindMeService(account, apiClientOptions);
30
30
  }
31
31
 
32
32
  /**
@@ -49,7 +49,7 @@ class GetOrFindLoggedInUserController {
49
49
  * @return {Promise<UserEntity>}
50
50
  */
51
51
  async exec(refreshCache = false) {
52
- return this.userModel.getOrFindMe(refreshCache);
52
+ return this.getOrFindMeService.getOrFindMe(refreshCache);
53
53
  }
54
54
  }
55
55
 
@@ -20,7 +20,7 @@ import GetOrFindLoggedInUserController from "./getOrFindLoggedInUserController";
20
20
  import AccountEntity from "../../model/entity/account/accountEntity";
21
21
  import { defaultAccountDto } from "../../model/entity/account/accountEntity.test.data";
22
22
  import UserEntity from "../../model/entity/user/userEntity";
23
- import UserMeSessionStorageService from "../../service/sessionStorage/userMeSessionStorageService";
23
+ import UserMeLocalStorage from "../../service/local_storage/userMeLocalStorage";
24
24
 
25
25
  beforeEach(() => {
26
26
  enableFetchMocks();
@@ -32,61 +32,65 @@ describe("GetOrFindLoggedInUserController", () => {
32
32
  it("Should find the information and set the cache if cache is empty.", async () => {
33
33
  expect.assertions(5);
34
34
  const account = new AccountEntity(defaultAccountDto());
35
-
35
+ const storage = new UserMeLocalStorage(account);
36
36
  const mockApiResult = defaultUserDto();
37
37
  fetch.doMock(() => mockApiResponse(mockApiResult));
38
38
 
39
- expect(await UserMeSessionStorageService.get(account)).toBeNull();
39
+ expect(await storage.getData()).toBeUndefined();
40
40
 
41
41
  const controller = new GetOrFindLoggedInUserController(null, null, defaultApiClientOptions(), account);
42
42
  const userMe = await controller.exec();
43
43
 
44
44
  expect(userMe).toBeInstanceOf(UserEntity);
45
- const cachedUsedMe = await UserMeSessionStorageService.get(account);
45
+ const cachedUsedMe = await storage.getData();
46
46
  expect(cachedUsedMe).not.toBeNull();
47
47
  expect(cachedUsedMe.id).toEqual(mockApiResult.id);
48
48
  expect(fetch).toHaveBeenCalled();
49
+
50
+ await storage.flush();
49
51
  });
50
52
 
51
53
  it("Should return cached data if any.", async () => {
52
54
  expect.assertions(3);
53
55
  const account = new AccountEntity(defaultAccountDto());
54
-
56
+ const storage = new UserMeLocalStorage(account);
55
57
  // Populate the cache
56
- await UserMeSessionStorageService.set(account, new UserEntity(defaultUserDto()));
57
- expect(await UserMeSessionStorageService.get(account)).not.toBeNull();
58
+ await storage.setData(new UserEntity(defaultUserDto()));
59
+ expect(await storage.getData()).not.toBeNull();
58
60
 
59
61
  const controller = new GetOrFindLoggedInUserController(null, null, defaultApiClientOptions(), account);
60
62
  const userMe = await controller.exec();
61
63
 
62
64
  expect(userMe).toBeInstanceOf(UserEntity);
63
65
  expect(fetch).not.toHaveBeenCalled();
66
+
67
+ await storage.flush();
64
68
  });
65
69
 
66
70
  it("Should refresh the cache if enforced.", async () => {
67
71
  expect.assertions(7);
68
72
  const account = new AccountEntity(defaultAccountDto());
69
-
73
+ const storage = new UserMeLocalStorage(account);
70
74
  // Populate the cache
71
- await UserMeSessionStorageService.set(account, new UserEntity(defaultUserDto()));
72
- expect(await UserMeSessionStorageService.get(account)).not.toBeNull();
73
- // Spy on the cache set function
74
- jest.spyOn(UserMeSessionStorageService, "set");
75
+ await storage.setData(new UserEntity(defaultUserDto()));
76
+ expect(await storage.getData()).not.toBeNull();
75
77
  // Mock the API response
76
78
  const mockApiResult = defaultUserDto();
77
79
  fetch.doMock(() => mockApiResponse(mockApiResult));
78
80
 
79
- expect(await UserMeSessionStorageService.get(account)).not.toBeNull();
81
+ expect(await storage.getData()).not.toBeNull();
80
82
 
81
83
  const controller = new GetOrFindLoggedInUserController(null, null, defaultApiClientOptions(), account);
84
+ // Spy on the cache set function
85
+ jest.spyOn(controller.getOrFindMeService.userMeLocalStorageService, "setData");
82
86
  const userMe = await controller.exec(true);
83
87
 
84
88
  expect(userMe).toBeInstanceOf(UserEntity);
85
- const cachedUsedMe = await UserMeSessionStorageService.get(account);
89
+ const cachedUsedMe = await storage.getData();
86
90
  expect(cachedUsedMe).not.toBeNull();
87
91
  expect(cachedUsedMe.id).toEqual(mockApiResult.id);
88
92
  expect(fetch).toHaveBeenCalled();
89
- expect(UserMeSessionStorageService.set).toHaveBeenCalled();
93
+ expect(controller.getOrFindMeService.userMeLocalStorageService.setData).toHaveBeenCalled();
90
94
  });
91
95
  });
92
96
  });
@@ -19,8 +19,9 @@ import UpdateUserLocalStorageController from "./updateUserLocalStorageController
19
19
  import RoleEntity from "passbolt-styleguide/src/shared/models/entity/role/roleEntity";
20
20
  import AccountEntity from "../../model/entity/account/accountEntity";
21
21
  import { adminAccountDto, defaultAccountDto } from "../../model/entity/account/accountEntity.test.data";
22
- import { defaultCeOrganizationSettings } from "../../model/entity/organizationSettings/organizationSettingsEntity.test.data";
23
- import OrganizationSettingsService from "../../service/api/organizationSettings/organizationSettingsService";
22
+ import { defaultCeSiteSettings } from "passbolt-styleguide/src/shared/models/entity/siteSettings/siteSettingsEntity.test.data";
23
+ import GetOrFindSiteSettingsService from "../../service/siteSettings/getOrFindSiteSettingsService";
24
+ import SiteSettingsEntity from "passbolt-styleguide/src/shared/models/entity/siteSettings/siteSettingsEntity";
24
25
 
25
26
  beforeEach(() => {
26
27
  enableFetchMocks();
@@ -28,9 +29,11 @@ beforeEach(() => {
28
29
 
29
30
  describe("UpdateUserLocalStorageController", () => {
30
31
  beforeEach(() => {
31
- const siteSettingsDto = defaultCeOrganizationSettings();
32
+ const siteSettingsDto = defaultCeSiteSettings();
32
33
 
33
- jest.spyOn(OrganizationSettingsService.prototype, "find").mockImplementation(() => siteSettingsDto);
34
+ jest
35
+ .spyOn(GetOrFindSiteSettingsService.prototype, "getOrFind")
36
+ .mockImplementation(() => new SiteSettingsEntity(siteSettingsDto));
34
37
  });
35
38
  describe("UpdateUserLocalStorageController::exec", () => {
36
39
  it("Should update the user local storage for a user having a role user.", async () => {
@@ -39,7 +42,7 @@ describe("UpdateUserLocalStorageController", () => {
39
42
  fetch.doMockOnceIf(new RegExp(`/users.json`), async (req) => {
40
43
  const url = new URL(req.url);
41
44
  expect(url.search).toStrictEqual(
42
- "?api-version=v2&contain%5Bprofile%5D=1&contain%5Bgpgkey%5D=0&contain%5Bgroups_users%5D=0&contain%5Bpending_account_recovery_request%5D=1&contain%5Baccount_recovery_user_setting%5D=1&contain%5BLastLoggedIn%5D=1",
45
+ "?api-version=v2&contain%5Bprofile%5D=1&contain%5Bgpgkey%5D=0&contain%5Bgroups_users%5D=0&contain%5Bpending_account_recovery_request%5D=1&contain%5Baccount_recovery_user_setting%5D=1",
43
46
  );
44
47
  return mockApiResponse([]);
45
48
  });
@@ -17,7 +17,7 @@ import RecoverAccountController from "../controller/accountRecovery/recoverAccou
17
17
  import VerifyAccountPassphraseController from "../controller/account/verifyAccountPassphraseController";
18
18
  import AbortAndInitiateNewAccountRecoveryController from "../controller/accountRecovery/abortAndInitiateNewAccountRecoveryController";
19
19
  import SetSetupLocaleController from "../controller/setup/setSetupLocaleController";
20
- import GetOrganizationSettingsController from "../controller/organizationSettings/getOrganizationSettingsController";
20
+ import GetOrFindSiteSettingsController from "../controller/siteSettings/getOrFindSiteSettingsController";
21
21
  import GetAndInitializeAccountLocaleController from "../controller/account/getAndInitializeAccountLocaleController";
22
22
  import GetExtensionVersionController from "../controller/extension/getExtensionVersionController";
23
23
  import GetAccountController from "../controller/account/getAccountController";
@@ -31,9 +31,9 @@ import ReloadTabController from "../controller/tab/reloadTabController";
31
31
  * @param {AccountAccountRecoveryEntity} account The account completing the account recovery
32
32
  */
33
33
  const listen = function (worker, apiClientOptions, account) {
34
- worker.port.on("passbolt.organization-settings.get", async (requestId) => {
35
- const controller = new GetOrganizationSettingsController(worker, requestId, apiClientOptions);
36
- await controller._exec();
34
+ worker.port.on("passbolt.site-settings.get-or-find", async (requestId, refreshCache = true) => {
35
+ const controller = new GetOrFindSiteSettingsController(worker, requestId, apiClientOptions, account);
36
+ await controller._exec(refreshCache);
37
37
  });
38
38
 
39
39
  worker.port.on("passbolt.locale.get", async (requestId) => {
@@ -137,7 +137,12 @@ const listen = function (worker, apiClientOptions, account) {
137
137
 
138
138
  worker.port.on("passbolt.account-recovery.generate-organization-key", async (requestId, generateGpgKeyDto) => {
139
139
  const apiClientOptions = await User.getInstance().getApiClientOptions();
140
- const controller = new AccountRecoveryGenerateOrganizationKeyController(worker, requestId, apiClientOptions);
140
+ const controller = new AccountRecoveryGenerateOrganizationKeyController(
141
+ worker,
142
+ requestId,
143
+ apiClientOptions,
144
+ account,
145
+ );
141
146
  await controller._exec(generateGpgKeyDto);
142
147
  });
143
148
 
@@ -320,7 +325,7 @@ const listen = function (worker, apiClientOptions, account) {
320
325
  * @param requestId {uuid} The request identifier
321
326
  */
322
327
  worker.port.on("passbolt.desktop.export-account", async (requestId) => {
323
- const account = await GetLegacyAccountService.get();
328
+ const account = GetLegacyAccountService.get();
324
329
  const controller = new ExportDesktopAccountController(worker, requestId, account);
325
330
  await controller._exec();
326
331
  });
@@ -38,7 +38,7 @@ const listen = function (worker, apiClientOptions, account) {
38
38
  * @param requestId {uuid} The request identifier
39
39
  */
40
40
  worker.port.on("passbolt.auth.is-mfa-required", async (requestId) => {
41
- const controller = new AuthIsMfaRequiredController(worker, requestId);
41
+ const controller = new AuthIsMfaRequiredController(worker, requestId, apiClientOptions, account);
42
42
  controller._exec();
43
43
  });
44
44
 
@@ -49,7 +49,7 @@ const listen = function (worker, apiClientOptions, account) {
49
49
  * @param requestId {uuid} The request identifier
50
50
  */
51
51
  worker.port.on("passbolt.auth.check-status", async (requestId) => {
52
- const controller = new AuthCheckStatusController(worker, requestId);
52
+ const controller = new AuthCheckStatusController(worker, requestId, apiClientOptions, account);
53
53
  controller._exec();
54
54
  });
55
55
 
@@ -16,9 +16,8 @@ import GroupsUpdateController from "../controller/group/groupUpdateController";
16
16
  import GroupCreateController from "../controller/group/groupCreateController";
17
17
  import GroupDeleteTransferEntity from "../model/entity/group/transfer/groupDeleteTransferEntity";
18
18
  import FindMyGroupsController from "../controller/group/findMyGroupsController";
19
- import GetOrFindGroupsController from "../controller/group/getOrFindGroupsController";
20
- import GetOrFindGroupsUsersController from "../controller/group/getOrFindGroupsUsersController";
21
19
  import UpdateAllGroupsLocalStorageController from "../controller/group/updateAllGroupsLocalStorageController";
20
+ import FindGroupsByIdsForShareController from "../controller/group/findGroupsByIdsForShareController";
22
21
 
23
22
  /**
24
23
  * Listens to the groups events
@@ -53,27 +52,15 @@ const listen = function (worker, apiClientOptions, account) {
53
52
  /*
54
53
  * Find groups by their ids.
55
54
  *
56
- * @listens passbolt.groups.get-by-ids
55
+ * @listens passbolt.groups.find-by-ids-for-share
57
56
  * @param {uuid} requestId The request identifier
58
57
  * @param {Array<uuid>} groupIds The ids of the groups to retrieve
59
58
  */
60
- worker.port.on("passbolt.groups.get-by-ids", async (requestId, groupIds) => {
61
- const controller = new GetOrFindGroupsController(worker, requestId, apiClientOptions, account);
59
+ worker.port.on("passbolt.groups.find-by-ids-for-share", async (requestId, groupIds) => {
60
+ const controller = new FindGroupsByIdsForShareController(worker, requestId, apiClientOptions);
62
61
  controller._exec(groupIds);
63
62
  });
64
63
 
65
- /*
66
- * Find the members of a group given its id.
67
- *
68
- * @listens passbolt.groups_users.get-by-group-id
69
- * @param {uuid} requestId The request identifier
70
- * @param {uuid} groupId The id of the group whose members are requested
71
- */
72
- worker.port.on("passbolt.groups_users.get-by-group-id", async (requestId, groupId) => {
73
- const controller = new GetOrFindGroupsUsersController(worker, requestId, apiClientOptions, account);
74
- controller._exec(groupId);
75
- });
76
-
77
64
  /*
78
65
  * ==================================================================================
79
66
  * CRUD
@@ -28,7 +28,7 @@ const listen = function (worker, apiClientOptions, account) {
28
28
  * @returns {*{isAuthenticated,isMfaRequired}
29
29
  */
30
30
  worker.port.on("passbolt.in-form-cta.check-status", async (requestId, flushCache = false) => {
31
- const authIsAuthenticatedController = new AuthCheckStatusController(worker, requestId);
31
+ const authIsAuthenticatedController = new AuthCheckStatusController(worker, requestId, apiClientOptions, account);
32
32
  await authIsAuthenticatedController._exec(flushCache);
33
33
  });
34
34
 
@@ -89,7 +89,7 @@ const listen = function (worker, apiClientOptions, account) {
89
89
  * @param requestId {uuid} The request identifier
90
90
  */
91
91
  worker.port.on("passbolt.locale.get", async (requestId) => {
92
- const getLocaleController = new GetLocaleController(worker, apiClientOptions);
92
+ const getLocaleController = new GetLocaleController(worker, apiClientOptions, account);
93
93
 
94
94
  try {
95
95
  const localeEntity = await getLocaleController.getLocale();
@@ -19,8 +19,9 @@ import LocaleEntity from "../model/entity/locale/localeEntity";
19
19
  * Listens to the locale events
20
20
  * @param {Worker} worker
21
21
  * @param {ApiClientOptions} apiClientOptions the api client options
22
+ * @param {AccountEntity} [account] the user account
22
23
  */
23
- const listen = function (worker, apiClientOptions) {
24
+ const listen = function (worker, apiClientOptions, account) {
24
25
  /*
25
26
  * Get locale language
26
27
  *
@@ -28,7 +29,7 @@ const listen = function (worker, apiClientOptions) {
28
29
  * @param requestId {uuid} The request identifier
29
30
  */
30
31
  worker.port.on("passbolt.locale.get", async (requestId) => {
31
- const getLocaleController = new GetLocaleController(worker, apiClientOptions);
32
+ const getLocaleController = new GetLocaleController(worker, apiClientOptions, account);
32
33
 
33
34
  try {
34
35
  const localeEntity = await getLocaleController.getLocale();
@@ -46,7 +47,7 @@ const listen = function (worker, apiClientOptions) {
46
47
  * @param requestId {uuid} The request identifier
47
48
  */
48
49
  worker.port.on("passbolt.locale.update-user-locale", async (requestId, localeDto) => {
49
- const localeModel = new LocaleModel(apiClientOptions);
50
+ const localeModel = new LocaleModel(apiClientOptions, account);
50
51
  try {
51
52
  const localeToUpdateEntity = new LocaleEntity(localeDto);
52
53
  await localeModel.updateUserLocale(localeToUpdateEntity);
@@ -13,6 +13,7 @@
13
13
  */
14
14
 
15
15
  import FindAcoPermissionsForDisplayController from "../controller/permission/FindAcoPermissionsForDisplayController";
16
+ import FindPermissionsByIdsForShareController from "../controller/permission/findPermissionsByIdsForShareController";
16
17
 
17
18
  /**
18
19
  * Listens the permission events
@@ -32,6 +33,18 @@ const listen = function (worker, apiClientOptions, account) {
32
33
  const controller = new FindAcoPermissionsForDisplayController(worker, requestId, apiClientOptions, account);
33
34
  await controller._exec(acoId, acoType);
34
35
  });
36
+
37
+ /*
38
+ * Find the permissions of the given resources, tailored for the share process.
39
+ *
40
+ * @listens passbolt.permissions.find-by-ids-for-share
41
+ * @param requestId {uuid} The request identifier
42
+ * @param resourcesIds {Array<uuid>} The ids of the resources to retrieve
43
+ */
44
+ worker.port.on("passbolt.permissions.find-by-ids-for-share", async (requestId, resourcesIds) => {
45
+ const controller = new FindPermissionsByIdsForShareController(worker, requestId, apiClientOptions, account);
46
+ await controller._exec(resourcesIds);
47
+ });
35
48
  };
36
49
 
37
50
  export const PermissionEvents = { listen };
@@ -23,7 +23,7 @@ import ValidatePrivateGpgKeyRecoverController from "../controller/crypto/validat
23
23
  import AbortAndRequestHelp from "../controller/recover/abortAndRequestHelpController";
24
24
  import SignInSetupController from "../controller/setup/signInSetupController";
25
25
  import SetSetupLocaleController from "../controller/setup/setSetupLocaleController";
26
- import GetOrganizationSettingsController from "../controller/organizationSettings/getOrganizationSettingsController";
26
+ import GetOrFindSiteSettingsController from "../controller/siteSettings/getOrFindSiteSettingsController";
27
27
  import GetAndInitializeAccountLocaleController from "../controller/account/getAndInitializeAccountLocaleController";
28
28
  import IsExtensionFirstInstallController from "../controller/extension/isExtensionFirstInstallController";
29
29
  import IsLostPassphraseCaseController from "../controller/accountRecovery/isLostPassphraseCaseController";
@@ -48,9 +48,9 @@ const listen = (worker, apiClientOptions, account) => {
48
48
  await controller._exec();
49
49
  });
50
50
 
51
- worker.port.on("passbolt.organization-settings.get", async (requestId) => {
52
- const controller = new GetOrganizationSettingsController(worker, requestId, apiClientOptions);
53
- await controller._exec();
51
+ worker.port.on("passbolt.site-settings.get-or-find", async (requestId, refreshCache = true) => {
52
+ const controller = new GetOrFindSiteSettingsController(worker, requestId, apiClientOptions, account);
53
+ await controller._exec(refreshCache);
54
54
  });
55
55
 
56
56
  worker.port.on("passbolt.recover.start", async (requestId) => {