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
@@ -21,11 +21,12 @@ export default class UpdateAllResourceTypesDeletedStatusController {
21
21
  * @param {Worker} worker
22
22
  * @param {string} requestId
23
23
  * @param {ApiClientOptions} apiClientOptions the api client options
24
+ * @param {AccountEntity} account the account
24
25
  */
25
- constructor(worker, requestId, apiClientOptions) {
26
+ constructor(worker, requestId, apiClientOptions, account) {
26
27
  this.worker = worker;
27
28
  this.requestId = requestId;
28
- this.updateResourceTypesService = new UpdateResourceTypesService(apiClientOptions);
29
+ this.updateResourceTypesService = new UpdateResourceTypesService(account, apiClientOptions);
29
30
  }
30
31
 
31
32
  /**
@@ -16,13 +16,20 @@ import { resourceTypesCollectionDto } from "passbolt-styleguide/src/shared/model
16
16
  import ResourceTypesCollection from "passbolt-styleguide/src/shared/models/entity/resourceType/resourceTypesCollection";
17
17
  import UpdateAllResourceTypesDeletedStatusController from "./updateAllResourceTypesDeletedStatusController";
18
18
  import EntityValidationError from "passbolt-styleguide/src/shared/models/entity/abstract/entityValidationError";
19
+ import AccountEntity from "../../model/entity/account/accountEntity";
20
+ import { defaultAccountDto } from "../../model/entity/account/accountEntity.test.data";
19
21
 
20
22
  describe("UpdateAllResourceTypesDeletedStatusController", () => {
21
23
  describe("::exec", () => {
22
24
  it("Should throw an error if the given parameter is not a valid resourceTypesCollection dto.", async () => {
23
25
  expect.assertions(1);
24
-
25
- const controller = new UpdateAllResourceTypesDeletedStatusController(null, null, defaultApiClientOptions());
26
+ const account = new AccountEntity(defaultAccountDto());
27
+ const controller = new UpdateAllResourceTypesDeletedStatusController(
28
+ null,
29
+ null,
30
+ defaultApiClientOptions(),
31
+ account,
32
+ );
26
33
 
27
34
  expect(() => controller.exec("42")).rejects.toThrow(EntityValidationError);
28
35
  });
@@ -30,8 +37,14 @@ describe("UpdateAllResourceTypesDeletedStatusController", () => {
30
37
  it("Should call for updating the resource types given a collection.", async () => {
31
38
  expect.assertions(2);
32
39
 
40
+ const account = new AccountEntity(defaultAccountDto());
33
41
  const resourceTypesDto = resourceTypesCollectionDto();
34
- const controller = new UpdateAllResourceTypesDeletedStatusController(null, null, defaultApiClientOptions());
42
+ const controller = new UpdateAllResourceTypesDeletedStatusController(
43
+ null,
44
+ null,
45
+ defaultApiClientOptions(),
46
+ account,
47
+ );
35
48
 
36
49
  jest.spyOn(controller.updateResourceTypesService, "updateAllDeletedStatus").mockImplementationOnce(() => {});
37
50
 
@@ -13,13 +13,13 @@
13
13
  */
14
14
  import i18n from "../../sdk/i18n";
15
15
  import { assertUuid } from "../../utils/assertions";
16
- import ResourceTypeModel from "../../model/resourceType/resourceTypeModel";
17
16
  import ResourceModel from "../../model/resource/resourceModel";
18
17
  import GetPassphraseService from "../../service/passphrase/getPassphraseService";
19
18
  import GetDecryptedUserPrivateKeyService from "../../service/account/getDecryptedUserPrivateKeyService";
20
19
  import ProgressService from "../../service/progress/progressService";
21
20
  import DecryptAndParseResourceSecretService from "../../service/secret/decryptAndParseResourceSecretService";
22
21
  import FindSecretService from "../../service/secret/findSecretService";
22
+ import GetSecretSchemaResourceTypeService from "../../service/resourceType/getSecretSchemaResourceTypeService";
23
23
 
24
24
  class FindSecretByResourceIdController {
25
25
  /**
@@ -35,7 +35,7 @@ class FindSecretByResourceIdController {
35
35
  this.requestId = requestId;
36
36
  this.resourceModel = new ResourceModel(apiClientOptions, account);
37
37
  this.findSecretService = new FindSecretService(account, apiClientOptions);
38
- this.resourceTypeModel = new ResourceTypeModel(apiClientOptions);
38
+ this.getSecretSchemaResourceTypeService = new GetSecretSchemaResourceTypeService(account, apiClientOptions);
39
39
  this.progressService = new ProgressService(this.worker, i18n.t("Decrypting ..."));
40
40
  this.getPassphraseService = new GetPassphraseService(account);
41
41
  }
@@ -67,7 +67,7 @@ class FindSecretByResourceIdController {
67
67
  const secret = await this.findSecretService.findByResourceId(resourceId);
68
68
  const decryptedPrivateKey = await GetDecryptedUserPrivateKeyService.getKey(passphrase);
69
69
  const resource = await resourcePromise;
70
- const secretSchema = await this.resourceTypeModel.getSecretSchemaById(resource.resourceTypeId);
70
+ const secretSchema = await this.getSecretSchemaResourceTypeService.getByResourceTypeId(resource.resourceTypeId);
71
71
 
72
72
  return DecryptAndParseResourceSecretService.decryptAndParse(secret, secretSchema, decryptedPrivateKey);
73
73
  }
@@ -75,6 +75,12 @@ describe("SecretDecryptController", () => {
75
75
 
76
76
  const controller = new FindSecretByResourceIdController(null, null, defaultApiClientOptions(), account);
77
77
  jest.spyOn(controller.resourceModel, "getById").mockImplementationOnce(() => resourceEntity);
78
+ jest
79
+ .spyOn(
80
+ controller.getSecretSchemaResourceTypeService.getOrFindResourceTypesService.resourceTypeLocalStorage,
81
+ "getData",
82
+ )
83
+ .mockImplementation(() => undefined);
78
84
  controller.getPassphraseService.getPassphrase.mockResolvedValue(pgpKeys.ada.passphrase);
79
85
 
80
86
  const plaintextSecret = await controller.exec(resourceDto.id);
@@ -109,6 +115,12 @@ describe("SecretDecryptController", () => {
109
115
 
110
116
  const controller = new FindSecretByResourceIdController(null, null, defaultApiClientOptions(), account);
111
117
  jest.spyOn(controller.resourceModel, "getById").mockImplementationOnce(() => resourceEntity);
118
+ jest
119
+ .spyOn(
120
+ controller.getSecretSchemaResourceTypeService.getOrFindResourceTypesService.resourceTypeLocalStorage,
121
+ "getData",
122
+ )
123
+ .mockImplementation(() => undefined);
112
124
  controller.getPassphraseService.getPassphrase.mockResolvedValue(pgpKeys.ada.passphrase);
113
125
 
114
126
  const plaintextSecret = await controller.exec(resourceDto.id);
@@ -143,6 +155,12 @@ describe("SecretDecryptController", () => {
143
155
 
144
156
  const controller = new FindSecretByResourceIdController(null, null, defaultApiClientOptions(), account);
145
157
  jest.spyOn(controller.resourceModel, "getById").mockImplementationOnce(() => resourceEntity);
158
+ jest
159
+ .spyOn(
160
+ controller.getSecretSchemaResourceTypeService.getOrFindResourceTypesService.resourceTypeLocalStorage,
161
+ "getData",
162
+ )
163
+ .mockImplementation(() => undefined);
146
164
  controller.getPassphraseService.getPassphrase.mockResolvedValue(pgpKeys.admin.passphrase);
147
165
 
148
166
  const plaintextSecret = await controller.exec(resourceDto.id);
@@ -182,6 +200,12 @@ describe("SecretDecryptController", () => {
182
200
 
183
201
  const controller = new FindSecretByResourceIdController(null, null, defaultApiClientOptions(), account);
184
202
  jest.spyOn(controller.resourceModel, "getById").mockImplementationOnce(() => resourceEntity);
203
+ jest
204
+ .spyOn(
205
+ controller.getSecretSchemaResourceTypeService.getOrFindResourceTypesService.resourceTypeLocalStorage,
206
+ "getData",
207
+ )
208
+ .mockImplementation(() => undefined);
185
209
  controller.getPassphraseService.getPassphrase.mockResolvedValue(pgpKeys.admin.passphrase);
186
210
 
187
211
  const plaintextSecret = await controller.exec(resourceDto.id);
@@ -22,11 +22,12 @@ export default class FindResourceSecretRevisionsForDisplayController {
22
22
  * @param {Worker} worker
23
23
  * @param {string} requestId
24
24
  * @param {ApiClientOptions} apiClientOptions the api client options
25
+ * @param {AccountEntity} account the account
25
26
  */
26
27
  constructor(worker, requestId, apiClientOptions, account) {
27
28
  this.worker = worker;
28
29
  this.requestId = requestId;
29
- this.findAndDecryptSecretRevisionsService = new FindAndDecryptSecretRevisionsService(apiClientOptions);
30
+ this.findAndDecryptSecretRevisionsService = new FindAndDecryptSecretRevisionsService(account, apiClientOptions);
30
31
  this.getPassphraseService = new GetPassphraseService(account);
31
32
  }
32
33
 
@@ -36,7 +36,6 @@ class GenerateSetupKeyPairController {
36
36
  this.apiClientOptions = apiClientOptions;
37
37
  // The temporary account stored in the session storage
38
38
  this.temporaryAccount = null;
39
- this.findUserKeyPoliciesSettingsService = new FindUserKeyPoliciesSettingsService(apiClientOptions);
40
39
  }
41
40
 
42
41
  /**
@@ -86,7 +85,11 @@ class GenerateSetupKeyPairController {
86
85
  async _buildGenerateKeyPairOptionsEntity(passphrase) {
87
86
  const userId = this.temporaryAccount.account.userId;
88
87
  const authenticationToken = this.temporaryAccount.account.authenticationTokenToken;
89
- const userKeyPoliciesSettings = await this.findUserKeyPoliciesSettingsService.findSettingsAsGuest(
88
+ const findUserKeyPoliciesSettingsService = new FindUserKeyPoliciesSettingsService(
89
+ this.apiClientOptions,
90
+ this.temporaryAccount.account,
91
+ );
92
+ const userKeyPoliciesSettings = await findUserKeyPoliciesSettingsService.findSettingsAsGuest(
90
93
  userId,
91
94
  authenticationToken,
92
95
  );
@@ -95,7 +98,7 @@ class GenerateSetupKeyPairController {
95
98
  name: `${this.temporaryAccount.account.firstName} ${this.temporaryAccount.account.lastName}`,
96
99
  email: this.temporaryAccount.account.username,
97
100
  passphrase: passphrase,
98
- date: await GetGpgKeyCreationDateService.getDate(this.apiClientOptions),
101
+ date: await GetGpgKeyCreationDateService.getDate(this.temporaryAccount.account, this.apiClientOptions),
99
102
  };
100
103
 
101
104
  return GenerateGpgKeyPairOptionsEntity.createForUserKeyGeneration(
@@ -25,8 +25,18 @@ import { v4 as uuidv4 } from "uuid";
25
25
  import AccountTemporaryEntity from "../../model/entity/account/accountTemporaryEntity";
26
26
  import UserKeyPoliciesSettingsEntity from "passbolt-styleguide/src/shared/models/entity/userKeyPolicies/UserKeyPoliciesSettingsEntity";
27
27
  import { defaultUserKeyPoliciesSettingsDto } from "passbolt-styleguide/src/shared/models/entity/userKeyPolicies/UserKeyPoliciesSettingsEntity.test.data";
28
+ import FindUserKeyPoliciesSettingsService from "../../service/userKeyPolicies/findUserKeyPoliciesSettingsService";
29
+ import { anonymousSiteSettings } from "passbolt-styleguide/src/shared/models/entity/siteSettings/siteSettingsEntity.test.data";
30
+ import SiteSettingsEntity from "passbolt-styleguide/src/shared/models/entity/siteSettings/siteSettingsEntity";
31
+ import GetOrFindSiteSettingsService from "../../service/siteSettings/getOrFindSiteSettingsService";
28
32
 
29
33
  describe("GenerateSetupKeyPairController", () => {
34
+ beforeEach(() => {
35
+ jest
36
+ .spyOn(GetOrFindSiteSettingsService.prototype, "getOrFind")
37
+ .mockImplementation(() => new SiteSettingsEntity(anonymousSiteSettings()));
38
+ });
39
+
30
40
  describe("GenerateSetupKeyPairController::exec", () => {
31
41
  it("Should throw an exception if the passed DTO is not valid.", async () => {
32
42
  await MockExtension.withConfiguredAccount();
@@ -127,7 +137,7 @@ describe("GenerateSetupKeyPairController", () => {
127
137
  defaultApiClientOptions(),
128
138
  );
129
139
  jest
130
- .spyOn(controller.findUserKeyPoliciesSettingsService, "findSettingsAsGuest")
140
+ .spyOn(FindUserKeyPoliciesSettingsService.prototype, "findSettingsAsGuest")
131
141
  .mockImplementation(() => new UserKeyPoliciesSettingsEntity(defaultUserKeyPoliciesSettingsDto()));
132
142
 
133
143
  await controller.exec(generateKeyPairDto);
@@ -27,7 +27,7 @@ class GetAndInitSetupLocaleController {
27
27
  this.worker = worker;
28
28
  this.requestId = requestId;
29
29
  this.account = account;
30
- this.localeModel = new LocaleModel(apiClientOptions);
30
+ this.localeModel = new LocaleModel(apiClientOptions, account);
31
31
  }
32
32
 
33
33
  /**
@@ -15,14 +15,18 @@
15
15
  import { enableFetchMocks } from "jest-fetch-mock";
16
16
  import { defaultApiClientOptions } from "passbolt-styleguide/src/shared/lib/apiClient/apiClientOptions.test.data";
17
17
  import GetAndInitSetupLocaleController from "./getAndInitSetupLocaleController";
18
- import { mockApiResponse } from "../../../../../test/mocks/mockApiResponse";
19
- import { anonymousOrganizationSettings } from "../../model/entity/organizationSettings/organizationSettingsEntity.test.data";
18
+ import { anonymousSiteSettings } from "passbolt-styleguide/src/shared/models/entity/siteSettings/siteSettingsEntity.test.data";
19
+ import SiteSettingsEntity from "passbolt-styleguide/src/shared/models/entity/siteSettings/siteSettingsEntity";
20
+ import GetOrFindSiteSettingsService from "../../service/siteSettings/getOrFindSiteSettingsService";
20
21
  import { initialAccountSetupDto } from "../../model/entity/account/accountSetupEntity.test.data";
21
22
  import AccountSetupEntity from "../../model/entity/account/accountSetupEntity";
22
23
 
23
24
  // Reset the modules before each test.
24
25
  beforeEach(() => {
25
26
  enableFetchMocks();
27
+ jest
28
+ .spyOn(GetOrFindSiteSettingsService.prototype, "getOrFind")
29
+ .mockImplementation(() => new SiteSettingsEntity(anonymousSiteSettings()));
26
30
  });
27
31
 
28
32
  describe("GetAndInitSetupLocaleController", () => {
@@ -31,10 +35,6 @@ describe("GetAndInitSetupLocaleController", () => {
31
35
  const account = new AccountSetupEntity(initialAccountSetupDto({ locale: "fr-FR" }));
32
36
  const controller = new GetAndInitSetupLocaleController(null, null, defaultApiClientOptions(), account);
33
37
 
34
- // Mock API fetch organization settings
35
- const mockOrganizationSettings = anonymousOrganizationSettings();
36
- fetch.doMockOnce(() => mockApiResponse(mockOrganizationSettings));
37
-
38
38
  expect.assertions(1);
39
39
  const locale = await controller.exec();
40
40
  expect(locale.toDto()).toEqual({ locale: "fr-FR" });
@@ -44,9 +44,6 @@ describe("GetAndInitSetupLocaleController", () => {
44
44
  const account = new AccountSetupEntity(initialAccountSetupDto());
45
45
  const controller = new GetAndInitSetupLocaleController(null, null, defaultApiClientOptions(), account);
46
46
 
47
- // Mock API fetch organization settings
48
- const mockOrganizationSettings = anonymousOrganizationSettings();
49
- fetch.doMockOnce(() => mockApiResponse(mockOrganizationSettings));
50
47
  // Mock the navigator locale
51
48
  const languageGetterMock = jest.spyOn(self.navigator, "language", "get");
52
49
  languageGetterMock.mockReturnValue("de-AT");
@@ -60,9 +57,6 @@ describe("GetAndInitSetupLocaleController", () => {
60
57
  const account = new AccountSetupEntity(initialAccountSetupDto());
61
58
  const controller = new GetAndInitSetupLocaleController(null, null, defaultApiClientOptions(), account);
62
59
 
63
- // Mock API fetch organization settings
64
- const mockOrganizationSettings = anonymousOrganizationSettings();
65
- fetch.doMockOnce(() => mockApiResponse(mockOrganizationSettings));
66
60
  // Mock the navigator locale
67
61
  const languageGetterMock = jest.spyOn(self.navigator, "language", "get");
68
62
  languageGetterMock.mockReturnValue("de-DE");
@@ -76,9 +70,10 @@ describe("GetAndInitSetupLocaleController", () => {
76
70
  const account = new AccountSetupEntity(initialAccountSetupDto());
77
71
  const controller = new GetAndInitSetupLocaleController(null, null, defaultApiClientOptions(), account);
78
72
 
79
- // Mock API fetch organization settings
80
- const mockOrganizationSettings = anonymousOrganizationSettings({ app: { locale: "ja-JP" } });
81
- fetch.doMockOnce(() => mockApiResponse(mockOrganizationSettings));
73
+ // Mock the organization settings.
74
+ jest
75
+ .spyOn(GetOrFindSiteSettingsService.prototype, "getOrFind")
76
+ .mockImplementation(() => new SiteSettingsEntity(anonymousSiteSettings({ app: { locale: "ja-JP" } })));
82
77
  // Mock the navigator locale
83
78
  const languageGetterMock = jest.spyOn(self.navigator, "language", "get");
84
79
  languageGetterMock.mockReturnValue("ma-MA");
@@ -92,9 +87,10 @@ describe("GetAndInitSetupLocaleController", () => {
92
87
  const account = new AccountSetupEntity(initialAccountSetupDto());
93
88
  const controller = new GetAndInitSetupLocaleController(null, null, defaultApiClientOptions(), account);
94
89
 
95
- // Mock API fetch organization settings
96
- const mockOrganizationSettings = anonymousOrganizationSettings({ app: { locale: null } });
97
- fetch.doMockOnce(() => mockApiResponse(mockOrganizationSettings));
90
+ // Mock the organization settings.
91
+ jest
92
+ .spyOn(GetOrFindSiteSettingsService.prototype, "getOrFind")
93
+ .mockImplementation(() => new SiteSettingsEntity(anonymousSiteSettings({ app: { locale: null } })));
98
94
  // Mock the navigator locale
99
95
  const languageGetterMock = jest.spyOn(self.navigator, "language", "get");
100
96
  languageGetterMock.mockReturnValue("ma-MA");
@@ -26,7 +26,7 @@ class SetSetupLocaleController {
26
26
  constructor(worker, requestId, apiClientOptions, account) {
27
27
  this.worker = worker;
28
28
  this.requestId = requestId;
29
- this.localeModel = new LocaleModel(apiClientOptions);
29
+ this.localeModel = new LocaleModel(apiClientOptions, account);
30
30
  this.account = account;
31
31
  }
32
32
 
@@ -14,8 +14,9 @@
14
14
 
15
15
  import { enableFetchMocks } from "jest-fetch-mock";
16
16
  import { defaultApiClientOptions } from "passbolt-styleguide/src/shared/lib/apiClient/apiClientOptions.test.data";
17
- import { anonymousOrganizationSettings } from "../../model/entity/organizationSettings/organizationSettingsEntity.test.data";
18
- import { mockApiResponse } from "../../../../../test/mocks/mockApiResponse";
17
+ import { anonymousSiteSettings } from "passbolt-styleguide/src/shared/models/entity/siteSettings/siteSettingsEntity.test.data";
18
+ import SiteSettingsEntity from "passbolt-styleguide/src/shared/models/entity/siteSettings/siteSettingsEntity";
19
+ import GetOrFindSiteSettingsService from "../../service/siteSettings/getOrFindSiteSettingsService";
19
20
  import SetSetupLocaleController from "./setSetupLocaleController";
20
21
  import AccountSetupEntity from "../../model/entity/account/accountSetupEntity";
21
22
  import { initialAccountSetupDto } from "../../model/entity/account/accountSetupEntity.test.data";
@@ -23,6 +24,9 @@ import AccountTemporarySessionStorageService from "../../service/sessionStorage/
23
24
 
24
25
  beforeEach(() => {
25
26
  enableFetchMocks();
27
+ jest
28
+ .spyOn(GetOrFindSiteSettingsService.prototype, "getOrFind")
29
+ .mockImplementation(() => new SiteSettingsEntity(anonymousSiteSettings()));
26
30
  });
27
31
 
28
32
  describe("SetAccountLocaleController", () => {
@@ -38,10 +42,6 @@ describe("SetAccountLocaleController", () => {
38
42
  account,
39
43
  );
40
44
 
41
- // Mock API fetch organization settings
42
- const mockApiResult = anonymousOrganizationSettings();
43
- fetch.doMockOnce(() => mockApiResponse(mockApiResult));
44
-
45
45
  expect.assertions(1);
46
46
  const localeDto = { locale: "fr-FR" };
47
47
  await controller.exec(localeDto);
@@ -58,10 +58,6 @@ describe("SetAccountLocaleController", () => {
58
58
  account,
59
59
  );
60
60
 
61
- // Mock API fetch organization settings
62
- const mockApiResult = anonymousOrganizationSettings();
63
- fetch.doMockOnce(() => mockApiResponse(mockApiResult));
64
-
65
61
  expect.assertions(1);
66
62
  const localeDto = { locale: "ma-MA" };
67
63
  const promise = controller.exec(localeDto);
@@ -31,8 +31,8 @@ class SignInSetupController {
31
31
  constructor(worker, requestId, apiClientOptions) {
32
32
  this.worker = worker;
33
33
  this.requestId = requestId;
34
+ this.apiClientOptions = apiClientOptions;
34
35
  this.authVerifyLoginChallengeService = new AuthVerifyLoginChallengeService(apiClientOptions);
35
- this.updateSsoCredentialsService = new UpdateSsoCredentialsService(apiClientOptions);
36
36
  this.checkPassphraseService = new CheckPassphraseService(new Keyring());
37
37
  }
38
38
 
@@ -68,7 +68,11 @@ class SignInSetupController {
68
68
  }
69
69
 
70
70
  await this.checkPassphraseService.checkPassphrase(temporaryAccount.passphrase);
71
- await this.updateSsoCredentialsService.forceUpdateSsoKit(temporaryAccount.passphrase);
71
+ const updateSsoCredentialsService = new UpdateSsoCredentialsService(
72
+ this.apiClientOptions,
73
+ temporaryAccount.account,
74
+ );
75
+ await updateSsoCredentialsService.forceUpdateSsoKit(temporaryAccount.passphrase);
72
76
 
73
77
  await this.authVerifyLoginChallengeService.verifyAndValidateLoginChallenge(
74
78
  temporaryAccount.account.userKeyFingerprint,
@@ -21,7 +21,9 @@ import SignInSetupController from "./signInSetupController";
21
21
  import { pgpKeys } from "passbolt-styleguide/test/fixture/pgpKeys/keys";
22
22
  import InvalidMasterPasswordError from "../../error/invalidMasterPasswordError";
23
23
  import MockExtension from "../../../../../test/mocks/mockExtension";
24
- import { anonymousOrganizationSettings } from "../../model/entity/organizationSettings/organizationSettingsEntity.test.data";
24
+ import { anonymousSiteSettings } from "passbolt-styleguide/src/shared/models/entity/siteSettings/siteSettingsEntity.test.data";
25
+ import SiteSettingsEntity from "passbolt-styleguide/src/shared/models/entity/siteSettings/siteSettingsEntity";
26
+ import GetOrFindSiteSettingsService from "../../service/siteSettings/getOrFindSiteSettingsService";
25
27
  import { mockApiResponse } from "../../../../../test/mocks/mockApiResponse";
26
28
  import GenerateSsoKitService from "../../service/sso/generateSsoKitService";
27
29
  import SsoDataStorage from "../../service/indexedDB_storage/ssoDataStorage";
@@ -33,6 +35,9 @@ import KeepSessionAliveService from "../../service/session_storage/keepSessionAl
33
35
 
34
36
  beforeEach(() => {
35
37
  enableFetchMocks();
38
+ jest
39
+ .spyOn(GetOrFindSiteSettingsService.prototype, "getOrFind")
40
+ .mockImplementation(() => new SiteSettingsEntity(anonymousSiteSettings()));
36
41
  });
37
42
 
38
43
  describe("SignInSetupController", () => {
@@ -95,13 +100,13 @@ describe("SignInSetupController", () => {
95
100
 
96
101
  it("Should ask for SSO kits generation.", async () => {
97
102
  expect.assertions(6);
98
- const organizationSettings = anonymousOrganizationSettings();
103
+ const organizationSettings = anonymousSiteSettings();
99
104
  organizationSettings.passbolt.plugins.sso = {
100
105
  enabled: true,
101
106
  };
102
- fetch.doMockOnceIf(new RegExp("/settings.json"), () =>
103
- mockApiResponse(organizationSettings, { servertime: Date.now() / 1000 }),
104
- );
107
+ jest
108
+ .spyOn(GetOrFindSiteSettingsService.prototype, "getOrFind")
109
+ .mockImplementation(() => new SiteSettingsEntity(organizationSettings));
105
110
  fetch.doMockOnceIf(new RegExp("/sso/settings/current.json"), () => mockApiResponse(withAzureSsoSettings()));
106
111
  jest.spyOn(browser.cookies, "get").mockImplementationOnce(() => ({ value: "csrf-token" }));
107
112
  jest.spyOn(PassphraseStorageService, "set").mockImplementation(async () => {});
@@ -24,9 +24,17 @@ import ShareOneFolderController from "./shareOneFolderController";
24
24
  import PermissionChangesCollection from "../../model/entity/permission/change/permissionChangesCollection";
25
25
  import FoldersCollection from "../../model/entity/folder/foldersCollection";
26
26
  import { defaultFolderDto } from "passbolt-styleguide/src/shared/models/entity/folder/folderEntity.test.data";
27
+ import { anonymousSiteSettings } from "passbolt-styleguide/src/shared/models/entity/siteSettings/siteSettingsEntity.test.data";
28
+ import SiteSettingsEntity from "passbolt-styleguide/src/shared/models/entity/siteSettings/siteSettingsEntity";
29
+ import GetOrFindSiteSettingsService from "../../service/siteSettings/getOrFindSiteSettingsService";
27
30
  const { pgpKeys } = require("passbolt-styleguide/test/fixture/pgpKeys/keys");
28
31
 
29
32
  describe("ShareOneFolderController", () => {
33
+ beforeEach(() => {
34
+ jest
35
+ .spyOn(GetOrFindSiteSettingsService.prototype, "getOrFind")
36
+ .mockImplementation(() => new SiteSettingsEntity(anonymousSiteSettings()));
37
+ });
30
38
  describe("::exec", () => {
31
39
  let account, controller;
32
40
  beforeEach(async () => {
@@ -27,10 +27,18 @@ import EncryptMessageService from "../../service/crypto/encryptMessageService";
27
27
  import { defaultResourceV4Dto } from "passbolt-styleguide/src/shared/models/entity/resource/resourceEntity.test.data";
28
28
  import { plaintextSecretPasswordAndDescriptionDto } from "passbolt-styleguide/src/shared/models/entity/plaintextSecret/plaintextSecretEntity.test.data";
29
29
  import { simulateShareSecretsChangesDto } from "../../service/share/shareResourceService.test.data";
30
+ import { anonymousSiteSettings } from "passbolt-styleguide/src/shared/models/entity/siteSettings/siteSettingsEntity.test.data";
31
+ import SiteSettingsEntity from "passbolt-styleguide/src/shared/models/entity/siteSettings/siteSettingsEntity";
32
+ import GetOrFindSiteSettingsService from "../../service/siteSettings/getOrFindSiteSettingsService";
30
33
 
31
34
  const { pgpKeys } = require("passbolt-styleguide/test/fixture/pgpKeys/keys");
32
35
 
33
36
  describe("ShareResourcesController", () => {
37
+ beforeEach(() => {
38
+ jest
39
+ .spyOn(GetOrFindSiteSettingsService.prototype, "getOrFind")
40
+ .mockImplementation(() => new SiteSettingsEntity(anonymousSiteSettings()));
41
+ });
34
42
  describe("::exec", () => {
35
43
  let account, controller;
36
44
  beforeEach(async () => {
@@ -85,7 +93,7 @@ describe("ShareResourcesController", () => {
85
93
  .mockImplementation(() => new ResourcesCollection([resourceDto]));
86
94
  // Mock request retrieving the resource types.
87
95
  jest
88
- .spyOn(controller.shareResourceService.resourceTypeModel, "getOrFindAll")
96
+ .spyOn(controller.shareResourceService.getOrFindResourceTypesService, "getOrFindAll")
89
97
  .mockImplementation(() => new ResourceTypesCollection(resourceTypesCollectionDto()));
90
98
  // Mock request simulating the share.
91
99
  jest
@@ -0,0 +1,59 @@
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 GetOrFindSiteSettingsService from "../../service/siteSettings/getOrFindSiteSettingsService";
15
+
16
+ /**
17
+ * Returns site settings; either from the in-memory cache or by fetching from the API.
18
+ * Drop-in replacement for the legacy {@link GetOrganizationSettingsController} —
19
+ * preserves the `refreshCache` semantics. Whether the API response is persisted to
20
+ * local storage is decided by the `isAuthenticated` flag passed at construction
21
+ * (set by the event handler based on its pagemod context).
22
+ */
23
+ class GetOrFindSiteSettingsController {
24
+ /**
25
+ * @param {Worker} worker
26
+ * @param {string} requestId
27
+ * @param {ApiClientOptions} apiClientOptions
28
+ * @param {AccountEntity} account
29
+ */
30
+ constructor(worker, requestId, apiClientOptions, account) {
31
+ this.worker = worker;
32
+ this.requestId = requestId;
33
+ this.account = account;
34
+ this.getOrFindSiteSettingsService = new GetOrFindSiteSettingsService(account, apiClientOptions);
35
+ }
36
+
37
+ /**
38
+ * @returns {Promise<void>}
39
+ */
40
+ async _exec() {
41
+ try {
42
+ const result = await this.exec.apply(this, arguments);
43
+ this.worker.port.emit(this.requestId, "SUCCESS", result);
44
+ } catch (error) {
45
+ console.error(error);
46
+ this.worker.port.emit(this.requestId, "ERROR", error);
47
+ }
48
+ }
49
+
50
+ /**
51
+ * @param {boolean} [refreshCache=true] When true, bypass the in-memory cache and hit the API.
52
+ * @returns {Promise<SiteSettingsEntity>}
53
+ */
54
+ async exec(refreshCache = true) {
55
+ return this.getOrFindSiteSettingsService.getOrFind(refreshCache);
56
+ }
57
+ }
58
+
59
+ export default GetOrFindSiteSettingsController;