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
|
@@ -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(
|
|
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(
|
|
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.
|
|
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.
|
|
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
|
|
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(
|
|
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 {
|
|
19
|
-
import
|
|
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
|
|
80
|
-
|
|
81
|
-
|
|
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
|
|
96
|
-
|
|
97
|
-
|
|
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 {
|
|
18
|
-
import
|
|
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
|
-
|
|
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 {
|
|
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 =
|
|
103
|
+
const organizationSettings = anonymousSiteSettings();
|
|
99
104
|
organizationSettings.passbolt.plugins.sso = {
|
|
100
105
|
enabled: true,
|
|
101
106
|
};
|
|
102
|
-
|
|
103
|
-
|
|
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.
|
|
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;
|