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.
- package/.devcontainer/Dockerfile +33 -3
- package/.devcontainer/devcontainer-lock.json +9 -0
- package/.devcontainer/post-start.sh +1 -2
- package/.github/workflows/codeql-analysis.yml +2 -1
- package/.github/workflows/release_candidate.yaml +3 -1
- package/.gitlab-ci.yml +1 -0
- package/CHANGELOG.md +202 -70
- package/CODEOWNERS +2 -0
- package/RELEASE_NOTES.md +4 -2
- package/package.json +9 -7
- package/renovate.json +6 -0
- package/src/all/background_page/controller/InformMenuController/InformMenuController.js +2 -5
- package/src/all/background_page/controller/InformMenuController/InformMenuController.test.js +31 -1
- package/src/all/background_page/controller/account/getAndInitializeAccountLocaleController.js +1 -1
- package/src/all/background_page/controller/account/getAndInitializeAccountLocaleController.test.js +6 -14
- package/src/all/background_page/controller/account/updatePrivateKeyController.js +7 -5
- package/src/all/background_page/controller/account/updatePrivateKeyController.test.js +18 -13
- package/src/all/background_page/controller/accountRecovery/accountRecoveryGenerateOrganizationKeyController.js +4 -2
- package/src/all/background_page/controller/accountRecovery/accountRecoveryGenerateOrganizationKeyController.test.js +25 -2
- package/src/all/background_page/controller/accountRecovery/accountRecoveryLoginController.js +1 -1
- package/src/all/background_page/controller/accountRecovery/accountRecoveryLoginController.test.js +10 -5
- package/src/all/background_page/controller/accountRecovery/recoverAccountController.js +6 -2
- package/src/all/background_page/controller/accountRecovery/recoverAccountController.test.js +11 -4
- package/src/all/background_page/controller/auth/authCheckStatus.test.data.js +6 -6
- package/src/all/background_page/controller/auth/authCheckStatusController.js +11 -3
- package/src/all/background_page/controller/auth/authCheckStatusController.test.js +74 -44
- package/src/all/background_page/controller/auth/authIsMfaRequiredController.js +11 -3
- package/src/all/background_page/controller/auth/authIsMfaRequiredController.test.js +18 -9
- package/src/all/background_page/controller/auth/authLoginController.js +1 -1
- package/src/all/background_page/controller/auth/authLoginController.test.js +10 -5
- package/src/all/background_page/controller/autofill/AutofillController.js +3 -3
- package/src/all/background_page/controller/autofill/AutofillController.test.js +20 -12
- package/src/all/background_page/controller/export/exportResourcesFileController.js +6 -3
- package/src/all/background_page/controller/export/exportResourcesFileController.test.js +34 -4
- package/src/all/background_page/controller/extension/onExtensionInstalledController.js +8 -2
- package/src/all/background_page/controller/extension/onExtensionInstalledController.test.js +5 -1
- package/src/all/background_page/controller/group/{getOrFindGroupsController.js → findGroupsByIdsForShareController.js} +9 -10
- package/src/all/background_page/controller/group/{getOrFindGroupsController.test.js → findGroupsByIdsForShareController.test.js} +8 -8
- package/src/all/background_page/controller/group/groupUpdateController.test.js +1 -0
- package/src/all/background_page/controller/import/importResourcesFileController.test.js +8 -1
- package/src/all/background_page/controller/informCallToActionController/informCallToActionController.js +2 -2
- package/src/all/background_page/controller/informCallToActionController/informCallToActionController.test.js +7 -4
- package/src/all/background_page/controller/locale/getLocaleController.js +3 -2
- package/src/all/background_page/controller/metadata/findMetadataTypesSettingsController.test.js +9 -15
- package/src/all/background_page/controller/metadata/getMetadataTypesSettingsController.test.js +9 -15
- package/src/all/background_page/controller/metadata/getOrFindMetadataKeysSettingsController.test.js +12 -22
- package/src/all/background_page/controller/metadata/shareMetadataKeyPrivateController.test.js +14 -2
- package/src/all/background_page/controller/move/moveFolderController.test.js +8 -0
- package/src/all/background_page/controller/move/moveResourcesController.test.js +8 -0
- package/src/all/background_page/controller/passwordExpiry/getOrFindPasswordExpirySettingsController.test.js +13 -8
- package/src/all/background_page/controller/passwordExpiry/savePasswordExpirySettingsController.js +4 -4
- package/src/all/background_page/controller/passwordExpiry/savePasswordExpirySettingsController.test.js +8 -10
- package/src/all/background_page/controller/permission/findPermissionsByIdsForShareController.js +62 -0
- package/src/all/background_page/controller/permission/findPermissionsByIdsForShareController.test.js +71 -0
- package/src/all/background_page/controller/recover/generateRecoverAccountRecoveryRequestKeyController.js +1 -1
- package/src/all/background_page/controller/resource/resourceCreateController.js +11 -4
- package/src/all/background_page/controller/resource/resourceCreateController.test.js +12 -1
- package/src/all/background_page/controller/resource/resourceUpdateController.js +11 -4
- package/src/all/background_page/controller/resource/resourceUpdateController.test.js +35 -2
- package/src/all/background_page/controller/resourceType/getResourceTypesController.js +5 -4
- package/src/all/background_page/controller/resourceType/getResourceTypesController.test.js +5 -2
- package/src/all/background_page/controller/resourceType/updateAllResourceTypesDeletedStatusController.js +3 -2
- package/src/all/background_page/controller/resourceType/updateAllResourceTypesDeletedStatusController.test.js +16 -3
- package/src/all/background_page/controller/secret/findSecretByResourceIdController.js +3 -3
- package/src/all/background_page/controller/secret/findSecretByResourceIdController.test.js +24 -0
- package/src/all/background_page/controller/secretRevision/findResourceSecretRevisionsForDisplayController.js +2 -1
- package/src/all/background_page/controller/setup/generateSetupKeyPairController.js +6 -3
- package/src/all/background_page/controller/setup/generateSetupKeyPairController.test.js +11 -1
- package/src/all/background_page/controller/setup/getAndInitSetupLocaleController.js +1 -1
- package/src/all/background_page/controller/setup/getAndInitSetupLocaleController.test.js +14 -18
- package/src/all/background_page/controller/setup/setSetupLocaleController.js +1 -1
- package/src/all/background_page/controller/setup/setSetupLocaleController.test.js +6 -10
- package/src/all/background_page/controller/setup/signInSetupController.js +6 -2
- package/src/all/background_page/controller/setup/signInSetupController.test.js +10 -5
- package/src/all/background_page/controller/share/shareOneFolderController.test.js +8 -0
- package/src/all/background_page/controller/share/shareResourcesController.test.js +9 -1
- package/src/all/background_page/controller/siteSettings/getOrFindSiteSettingsController.js +59 -0
- package/src/all/background_page/controller/siteSettings/getOrFindSiteSettingsController.test.js +150 -0
- package/src/all/background_page/controller/{group/getOrFindGroupsUsersController.js → user/getOrFindAllUsersController.js} +12 -17
- package/src/all/background_page/controller/user/getOrFindAllUsersController.test.js +55 -0
- package/src/all/background_page/controller/user/getOrFindLoggedInUserController.js +3 -3
- package/src/all/background_page/controller/user/getOrFindLoggedInUserController.test.js +19 -15
- package/src/all/background_page/controller/user/updateUserLocalStorageController.test.js +8 -5
- package/src/all/background_page/event/accountRecoveryEvents.js +4 -4
- package/src/all/background_page/event/appEvents.js +7 -2
- package/src/all/background_page/event/authEvents.js +2 -2
- package/src/all/background_page/event/groupEvents.js +4 -17
- package/src/all/background_page/event/informCallToActionEvents.js +1 -1
- package/src/all/background_page/event/informMenuEvents.js +1 -1
- package/src/all/background_page/event/localeEvents.js +4 -3
- package/src/all/background_page/event/permissionEvents.js +13 -0
- package/src/all/background_page/event/recoverEvents.js +4 -4
- package/src/all/background_page/event/resourceEvents.js +6 -15
- package/src/all/background_page/event/resourceTypeEvents.js +4 -3
- package/src/all/background_page/event/setupEvents.js +4 -4
- package/src/all/background_page/event/siteSettingsEvents.js +29 -0
- package/src/all/background_page/event/userEvents.js +4 -8
- package/src/all/background_page/index.js +0 -37
- package/src/all/background_page/model/entity/account/abstractAccountEntity.js +2 -2
- package/src/all/background_page/model/entity/account/accountAccountRecoveryEntity.js +7 -17
- package/src/all/background_page/model/entity/account/accountEntity.js +7 -14
- package/src/all/background_page/model/entity/account/accountKitEntity.js +1 -2
- package/src/all/background_page/model/entity/account/accountRecoverEntity.js +4 -14
- package/src/all/background_page/model/entity/account/accountSetupEntity.js +4 -14
- package/src/all/background_page/model/entity/account/accountTemporaryEntity.js +2 -5
- package/src/all/background_page/model/entity/gpgkey/generate/generateGpgKeyPairOptionsEntity.test.js +5 -5
- package/src/all/background_page/model/entity/localStorage/localStorageMetadataEntity.js +49 -0
- package/src/all/background_page/model/entity/localStorage/localStorageMetadataEntity.test.data.js +23 -0
- package/src/all/background_page/model/entity/localStorage/localStorageMetadataEntity.test.js +51 -0
- package/src/all/background_page/model/entity/{organizationSettings/organizationSettingsEntity.js → siteSettings/siteSettingsEntity.js} +17 -24
- package/src/all/background_page/model/entity/{organizationSettings/organizationSettingsEntity.test.data.js → siteSettings/siteSettingsEntity.test.data.js} +9 -9
- package/src/all/background_page/model/entity/{organizationSettings/organizationSettingsEntity.test.js → siteSettings/siteSettingsEntity.test.js} +30 -39
- package/src/all/background_page/model/entity/user/userEntity.test.js +6 -6
- package/src/all/background_page/model/export/resources/resourcesKdbxExporter.js +40 -3
- package/src/all/background_page/model/export/resources/resourcesKdbxExporter.test.js +122 -0
- package/src/all/background_page/model/import/resources/resourcesKdbxImportParser.js +1 -1
- package/src/all/background_page/model/locale/localeModel.js +13 -8
- package/src/all/background_page/model/passwordExpiry/passwordExpirySettingsModel.js +6 -6
- package/src/all/background_page/model/passwordExpiry/passwordExpirySettingsModel.test.js +3 -2
- package/src/all/background_page/model/resource/resourceModel.js +4 -4
- package/src/all/background_page/model/user/userModel.js +7 -28
- package/src/all/background_page/model/user/userModel.test.js +51 -99
- package/src/all/background_page/pagemod/appBootstrapPagemod.js +4 -1
- package/src/all/background_page/pagemod/appBootstrapPagemod.test.js +5 -2
- package/src/all/background_page/pagemod/appPagemod.js +32 -6
- package/src/all/background_page/pagemod/appPagemod.test.js +22 -10
- package/src/all/background_page/pagemod/authPagemod.js +2 -10
- package/src/all/background_page/pagemod/authPagemod.test.js +4 -4
- package/src/all/background_page/pagemod/pagemodManager.test.js +5 -2
- package/src/all/background_page/pagemod/quickAccessPagemod.js +2 -2
- package/src/all/background_page/pagemod/quickAccessPagemod.test.js +4 -4
- package/src/all/background_page/pagemod/recoverPagemod.js +2 -2
- package/src/all/background_page/pagemod/recoverPagemod.test.js +6 -0
- package/src/all/background_page/pagemod/setupPagemod.js +2 -2
- package/src/all/background_page/pagemod/setupPagemod.test.js +6 -0
- package/src/all/background_page/pagemod/webIntegrationPagemod.js +21 -2
- package/src/all/background_page/pagemod/webIntegrationPagemod.test.js +16 -25
- package/src/all/background_page/service/account/getActiveAccountService.js +2 -3
- package/src/all/background_page/service/account/getLegacyAccountService.js +3 -14
- package/src/all/background_page/service/account/updateSsoCredentialsService.js +9 -5
- package/src/all/background_page/service/api/group/groupApiService.js +9 -16
- package/src/all/background_page/service/api/group/groupApiService.test.js +59 -26
- package/src/all/background_page/service/api/siteSettings/siteSettingsApiService.js +46 -0
- package/src/all/background_page/service/api/siteSettings/siteSettingsApiService.test.js +63 -0
- package/src/all/background_page/service/auth/checkAuthStatusService.js +27 -14
- package/src/all/background_page/service/auth/checkAuthStatusService.test.js +80 -62
- package/src/all/background_page/service/auth/postLoginService.js +3 -3
- package/src/all/background_page/service/auth/postLoginService.test.js +4 -4
- package/src/all/background_page/service/auth/startLoopAuthSessionCheckService.js +5 -1
- package/src/all/background_page/service/auth/startLoopAuthSessionCheckService.test.js +14 -8
- package/src/all/background_page/service/authenticationStatusService.js +13 -18
- package/src/all/background_page/service/authenticationStatusService.test.js +9 -6
- package/src/all/background_page/service/crypto/generateGpgKeyPairService.test.js +5 -5
- package/src/all/background_page/service/crypto/getGpgKeyCreationDateService.js +7 -6
- package/src/all/background_page/service/crypto/getGpgKeyCreationDateService.test.js +10 -7
- package/src/all/background_page/service/extension/onExtensionUpdateAvailableService.js +7 -2
- package/src/all/background_page/service/extension/onExtensionUpdateAvailableService.test.js +5 -5
- package/src/all/background_page/service/group/findGroupsService.js +42 -1
- package/src/all/background_page/service/group/findGroupsService.test.js +82 -0
- package/src/all/background_page/service/group/groupUpdateSecretsCryptoService.js +82 -0
- package/src/all/background_page/service/group/groupUpdateSecretsCryptoService.test.js +102 -0
- package/src/all/background_page/service/group/groupUpdateService.js +49 -78
- package/src/all/background_page/service/group/groupUpdateService.test.js +136 -0
- package/src/all/background_page/service/localStorage/localStorageService.js +8 -6
- package/src/all/background_page/service/localStorage/localStorageService.test.js +33 -15
- package/src/all/background_page/service/local_storage/abstractLocalStorage.js +193 -0
- package/src/all/background_page/service/local_storage/abstractLocalStorage.test.data.js +45 -0
- package/src/all/background_page/service/local_storage/abstractLocalStorage.test.js +271 -0
- package/src/all/background_page/service/local_storage/activeSessionLocalStorage.js +105 -0
- package/src/all/background_page/service/local_storage/activeSessionLocalStorage.test.js +153 -0
- package/src/all/background_page/service/local_storage/rbacLocalStorage.js +10 -82
- package/src/all/background_page/service/local_storage/rbacLocalStorage.test.js +8 -8
- package/src/all/background_page/service/local_storage/resourceTypeLocalStorage.js +10 -43
- package/src/all/background_page/service/local_storage/resourceTypeLocalStorage.test.js +68 -0
- package/src/all/background_page/service/local_storage/siteSettingsLocalStorage.js +104 -0
- package/src/all/background_page/service/local_storage/siteSettingsLocalStorage.test.js +114 -0
- package/src/all/background_page/service/local_storage/userMeLocalStorage.js +50 -0
- package/src/all/background_page/service/{sessionStorage/userMeSessionStorageService.test.js → local_storage/userMeLocalStorage.test.js} +55 -36
- package/src/all/background_page/service/metadata/encryptMetadataService.js +3 -3
- package/src/all/background_page/service/metadata/encryptMetadataService.test.js +11 -11
- package/src/all/background_page/service/metadata/findAndUpdateMetadataSettingsLocalStorageService.js +4 -4
- package/src/all/background_page/service/metadata/findAndUpdateMetadataSettingsLocalStorageService.test.js +18 -16
- package/src/all/background_page/service/metadata/getOrFindMetadataSettingsService.test.js +6 -8
- package/src/all/background_page/service/metadata/rotateMetadata/rotateResourcesMetadataKeyService.test.js +4 -4
- package/src/all/background_page/service/metadata/shareMetadataKeyPrivateService.js +3 -3
- package/src/all/background_page/service/metadata/shareMetadataKeyPrivateService.test.js +1 -1
- package/src/all/background_page/service/metadata/verifyOrTrustMetadataKeyService.js +4 -4
- package/src/all/background_page/service/metadata/verifyOrTrustMetadataKeyService.test.js +9 -7
- package/src/all/background_page/service/migrateMetadata/migrateMetadataResourcesService.js +4 -4
- package/src/all/background_page/service/migrateMetadata/migrateMetadataResourcesService.test.js +6 -6
- package/src/all/background_page/service/rbac/findAndUpdateRbacsLocalStorageService.js +2 -2
- package/src/all/background_page/service/rbac/getOrFindRbacService.js +1 -1
- package/src/all/background_page/service/resource/create/resourceCreateService.js +41 -51
- package/src/all/background_page/service/resource/create/resourceCreateService.test.js +100 -98
- package/src/all/background_page/service/resource/export/exportResourcesService.js +7 -7
- package/src/all/background_page/service/resource/findAndUpdateResourcesLocalStorageService.js +4 -4
- package/src/all/background_page/service/resource/findResourcesService.js +13 -16
- package/src/all/background_page/service/resource/findResourcesService.test.js +12 -11
- package/src/all/background_page/service/resource/getOrFindResourcesService.js +3 -3
- package/src/all/background_page/service/resource/import/ImportResourcesService.js +9 -9
- package/src/all/background_page/service/resource/import/ImportResourcesService.test.js +30 -15
- package/src/all/background_page/service/resource/update/resourceUpdateService.js +38 -19
- package/src/all/background_page/service/resource/update/resourceUpdateService.test.js +64 -31
- package/src/all/background_page/service/resourceType/getOrFindResourceTypesService.js +49 -0
- package/src/all/background_page/service/resourceType/getOrFindResourceTypesService.test.js +61 -0
- package/src/all/background_page/service/resourceType/getSecretSchemaResourceTypeService.js +44 -0
- package/src/all/background_page/service/resourceType/updateResourceTypesService.js +6 -4
- package/src/all/background_page/service/resourceType/updateResourceTypesService.test.js +19 -14
- package/src/all/background_page/service/secretRevisions/findAndDecryptSecretRevisionsService.js +5 -4
- package/src/all/background_page/service/secretRevisions/findAndDecryptSecretRevisionsService.test.js +16 -9
- package/src/all/background_page/service/share/shareResourceService.js +4 -4
- package/src/all/background_page/service/share/shareResourceService.test.js +6 -6
- package/src/all/background_page/service/siteSettings/findAndUpdateSiteSettingsLocalStorageService.js +77 -0
- package/src/all/background_page/service/siteSettings/findAndUpdateSiteSettingsLocalStorageService.test.js +130 -0
- package/src/all/background_page/service/siteSettings/findSiteSettingsService.js +47 -0
- package/src/all/background_page/service/siteSettings/findSiteSettingsService.test.js +68 -0
- package/src/all/background_page/service/siteSettings/getOrFindSiteSettingsService.js +84 -0
- package/src/all/background_page/service/siteSettings/getOrFindSiteSettingsService.test.js +175 -0
- package/src/all/background_page/service/siteSettings/siteSettingsRuntimeCache.js +70 -0
- package/src/all/background_page/service/sso/generateSsoKitService.test.js +2 -2
- package/src/all/background_page/service/toolbar/toolbarService.js +6 -4
- package/src/all/background_page/service/toolbar/toolbarService.test.js +14 -13
- package/src/all/background_page/service/user/findAndUpdateUsersLocalStorageService.js +4 -4
- package/src/all/background_page/service/user/findAndUpdateUsersLocalStorageService.test.js +3 -3
- package/src/all/background_page/service/user/getOrFindMeService.js +64 -0
- package/src/all/background_page/service/user/getOrFindMeService.test.js +65 -0
- package/src/all/background_page/service/userKeyPolicies/findUserKeyPoliciesSettingsService.js +5 -4
- package/src/all/background_page/service/userKeyPolicies/findUserKeyPoliciesSettingsService.test.js +12 -11
- package/src/all/background_page/service/validator/appEmailValidatorService.js +11 -6
- package/src/all/background_page/service/validator/appEmailValidatorService.test.js +11 -11
- package/src/all/common/polyfill/browserPolyfill.js +8 -8
- package/src/all/locales/cs-CZ/common.json +1 -4
- package/src/all/locales/de-DE/common.json +1 -4
- package/src/all/locales/en-UK/common.json +0 -3
- package/src/all/locales/es-ES/common.json +1 -4
- package/src/all/locales/fr-FR/common.json +1 -4
- package/src/all/locales/it-IT/common.json +1 -4
- package/src/all/locales/ja-JP/common.json +1 -4
- package/src/all/locales/ko-KR/common.json +0 -3
- package/src/all/locales/lt-LT/common.json +1 -4
- package/src/all/locales/nl-NL/common.json +1 -4
- package/src/all/locales/pl-PL/common.json +1 -4
- package/src/all/locales/pt-BR/common.json +1 -4
- package/src/all/locales/ro-RO/common.json +1 -4
- package/src/all/locales/ru-RU/common.json +1 -4
- package/src/all/locales/sl-SI/common.json +1 -4
- package/src/all/locales/sv-SE/common.json +1 -4
- package/src/all/locales/uk-UA/common.json +1 -4
- package/src/all/webAccessibleResources/js/app/QuickAccess.js +7 -0
- package/src/chrome/manifest.json +1 -1
- package/src/chrome-mv3/manifest.json +1 -1
- package/src/chrome-mv3/offscreens/service/group/addUsersToGroupOffscreenService.js +132 -0
- package/src/chrome-mv3/offscreens/service/group/addUsersToGroupOffscreenService.test.js +125 -0
- package/src/chrome-mv3/offscreens/service/offscreen/handleOffscreenRequestService.js +4 -0
- package/src/chrome-mv3/serviceWorker/service/addUsersToGroup/requestAddUsersToGroupOffscreenService.js +83 -0
- package/src/chrome-mv3/serviceWorker/service/addUsersToGroup/requestAddUsersToGroupOffscreenService.test.js +116 -0
- package/src/chrome-mv3/serviceWorker/service/addUsersToGroup/responseAddUsersToGroupOffscreenService.js +99 -0
- package/src/chrome-mv3/serviceWorker/service/addUsersToGroup/responseAddUsersToGroupOffscreenService.test.data.js +45 -0
- package/src/chrome-mv3/serviceWorker/service/addUsersToGroup/responseAddUsersToGroupOffscreenService.test.js +87 -0
- package/src/chrome-mv3/serviceWorker/service/network/requestFetchOffscreenService.js +0 -1
- package/src/chrome-mv3/serviceWorker/service/offscreen/handleOffscreenResponseService.js +15 -0
- package/src/firefox/manifest.json +1 -1
- package/src/safari/background_page/index.js +0 -37
- package/src/safari/common/polyfill/safariBrowserPolyfill.js +10 -10
- package/src/safari/manifest.json +1 -1
- package/test/jest.setup.js +4 -2
- package/src/all/background_page/controller/group/getOrFindGroupsUsersController.test.js +0 -69
- package/src/all/background_page/controller/organizationSettings/getOrganizationSettingsController.js +0 -55
- package/src/all/background_page/controller/organizationSettings/getOrganizationSettingsController.test.js +0 -45
- package/src/all/background_page/controller/resource/findAllByIdsForDisplayPermissionsController.js +0 -76
- package/src/all/background_page/controller/resource/findAllByIdsForDisplayPermissionsController.test.js +0 -102
- package/src/all/background_page/event/organizationSettingsEvents.js +0 -37
- package/src/all/background_page/model/organizationSettings/organizationSettingsModel.js +0 -93
- package/src/all/background_page/model/resourceType/resourceTypeModel.js +0 -72
- package/src/all/background_page/model/resourceType/resourceTypeModel.test.js +0 -101
- package/src/all/background_page/service/api/organizationSettings/organizationSettingsService.js +0 -58
- package/src/all/background_page/service/group/getOrFindGroupsService.js +0 -65
- package/src/all/background_page/service/group/getOrFindGroupsService.test.js +0 -168
- package/src/all/background_page/service/group/getOrFindGroupsUsersService.js +0 -51
- package/src/all/background_page/service/group/getOrFindGroupsUsersService.test.js +0 -94
- package/src/all/background_page/service/local_storage/authStatusLocalStorage.js +0 -70
- package/src/all/background_page/service/sessionStorage/userMeSessionStorageService.js +0 -94
package/src/all/background_page/controller/siteSettings/getOrFindSiteSettingsController.test.js
ADDED
|
@@ -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
|
|
15
|
-
import { assertUuid } from "../../utils/assertions";
|
|
14
|
+
import GetOrFindUsersService from "../../service/user/getOrFindUsersService";
|
|
16
15
|
|
|
17
16
|
/**
|
|
18
|
-
* Controller for the `passbolt.
|
|
19
|
-
*
|
|
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
|
|
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.
|
|
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(
|
|
38
|
+
async _exec() {
|
|
42
39
|
try {
|
|
43
|
-
const result = await this.exec(
|
|
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
|
-
*
|
|
53
|
-
* @
|
|
54
|
-
* @returns {Promise<GroupsUsersCollection>}
|
|
49
|
+
* Get or find all the users.
|
|
50
|
+
* @returns {Promise<UsersCollection>}
|
|
55
51
|
*/
|
|
56
|
-
async exec(
|
|
57
|
-
|
|
58
|
-
return this.getOrFindGroupsUsersService.getOrFindByGroupId(groupId);
|
|
52
|
+
async exec() {
|
|
53
|
+
return this.getOrFindUsersService.getOrFindAll();
|
|
59
54
|
}
|
|
60
55
|
}
|
|
61
56
|
|
|
62
|
-
export default
|
|
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
|
|
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.
|
|
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.
|
|
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
|
|
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
|
|
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
|
|
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
|
|
57
|
-
expect(await
|
|
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
|
|
72
|
-
expect(await
|
|
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
|
|
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
|
|
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(
|
|
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 {
|
|
23
|
-
import
|
|
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 =
|
|
32
|
+
const siteSettingsDto = defaultCeSiteSettings();
|
|
32
33
|
|
|
33
|
-
jest
|
|
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
|
|
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
|
|
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.
|
|
35
|
-
const controller = new
|
|
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(
|
|
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 =
|
|
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.
|
|
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.
|
|
61
|
-
const controller = new
|
|
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
|
|
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.
|
|
52
|
-
const controller = new
|
|
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) => {
|