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
|
@@ -13,7 +13,6 @@ import SetResourcesExpiryDateController from "../controller/resource/setResource
|
|
|
13
13
|
import FindResourceDetailsController from "../controller/resource/findResourceDetailsController";
|
|
14
14
|
import ResourceUpdateLocalStorageController from "../controller/resourceLocalStorage/resourceUpdateLocalStorageController";
|
|
15
15
|
import FindAllIdsByIsSharedWithGroupController from "../controller/resource/findAllIdsByIsSharedWithGroupController";
|
|
16
|
-
import FindAllByIdsForDisplayPermissionsController from "../controller/resource/findAllByIdsForDisplayPermissionsController";
|
|
17
16
|
import MoveResourcesController from "../controller/move/moveResourcesController";
|
|
18
17
|
import ResetResourceGridUserSettingController from "../controller/resourceGridSetting/resetResourceGridUserSettingController";
|
|
19
18
|
import UpdateResourceLocalStorageByFolderParentIdController from "../controller/resource/updateResourceLocalStorageByFolderParentIdController";
|
|
@@ -63,10 +62,11 @@ const listen = function (worker, apiClientOptions, account) {
|
|
|
63
62
|
* @param requestId {uuid} The request identifier
|
|
64
63
|
* @param resourceDto {object} The resource meta data
|
|
65
64
|
* @param plaintextDto {string|object} The plaintext data to encrypt
|
|
65
|
+
* @param permissionChanges {Array<object>} Optional permission changes applied after create
|
|
66
66
|
*/
|
|
67
|
-
worker.port.on("passbolt.resources.create", async (requestId, resourceDto, plaintextDto) => {
|
|
67
|
+
worker.port.on("passbolt.resources.create", async (requestId, resourceDto, plaintextDto, permissionChanges) => {
|
|
68
68
|
const controller = new ResourceCreateController(worker, requestId, apiClientOptions, account);
|
|
69
|
-
await controller._exec(resourceDto, plaintextDto);
|
|
69
|
+
await controller._exec(resourceDto, plaintextDto, permissionChanges);
|
|
70
70
|
});
|
|
71
71
|
|
|
72
72
|
/*
|
|
@@ -88,10 +88,11 @@ const listen = function (worker, apiClientOptions, account) {
|
|
|
88
88
|
* @param requestId {uuid} The request identifier
|
|
89
89
|
* @param resource {array} The resource
|
|
90
90
|
* @param plaintextDto {} The resource secret
|
|
91
|
+
* @param permissionChanges {Array<object>} Optional permission changes applied after the update
|
|
91
92
|
*/
|
|
92
|
-
worker.port.on("passbolt.resources.update", async (requestId, resourceDto, plaintextDto) => {
|
|
93
|
+
worker.port.on("passbolt.resources.update", async (requestId, resourceDto, plaintextDto, permissionChanges) => {
|
|
93
94
|
const controller = new ResourceUpdateController(worker, requestId, apiClientOptions, account);
|
|
94
|
-
await controller._exec(resourceDto, plaintextDto);
|
|
95
|
+
await controller._exec(resourceDto, plaintextDto, permissionChanges);
|
|
95
96
|
});
|
|
96
97
|
|
|
97
98
|
/*
|
|
@@ -144,16 +145,6 @@ const listen = function (worker, apiClientOptions, account) {
|
|
|
144
145
|
await controller._exec(passwordExpiryResourcesCollectionDto);
|
|
145
146
|
});
|
|
146
147
|
|
|
147
|
-
/*
|
|
148
|
-
* Retrieve all resources by ids with their permissions.
|
|
149
|
-
* @listens passbolt.resources.find-all-by-ids-with-permissions
|
|
150
|
-
* @param {array} resourcesIds The ids of the resources to retrieve.
|
|
151
|
-
*/
|
|
152
|
-
worker.port.on("passbolt.resources.find-all-by-ids-for-display-permissions", async (requestId, resourcesIds) => {
|
|
153
|
-
const controller = new FindAllByIdsForDisplayPermissionsController(worker, requestId, apiClientOptions, account);
|
|
154
|
-
await controller._exec(resourcesIds);
|
|
155
|
-
});
|
|
156
|
-
|
|
157
148
|
/*
|
|
158
149
|
* Moves the given resources to a new folder.
|
|
159
150
|
*
|
|
@@ -19,8 +19,9 @@ import UpdateAllResourceTypesDeletedStatusController from "../controller/resourc
|
|
|
19
19
|
* Listens the resource type events
|
|
20
20
|
* @param {Worker} worker
|
|
21
21
|
* @param {ApiClientOptions} apiClientOptions the api client options
|
|
22
|
+
* @param {AccountEntity} account The account
|
|
22
23
|
*/
|
|
23
|
-
const listen = function (worker, apiClientOptions) {
|
|
24
|
+
const listen = function (worker, apiClientOptions, account) {
|
|
24
25
|
/*
|
|
25
26
|
* Get the resource types from the local storage.
|
|
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.resource-type.get-or-find-all", async (requestId) => {
|
|
31
|
-
const controller = new GetResourceTypesController(worker, requestId, apiClientOptions);
|
|
32
|
+
const controller = new GetResourceTypesController(worker, requestId, apiClientOptions, account);
|
|
32
33
|
await controller._exec();
|
|
33
34
|
});
|
|
34
35
|
|
|
@@ -51,7 +52,7 @@ const listen = function (worker, apiClientOptions) {
|
|
|
51
52
|
* @param resourceTypesCollectionDto {Array} the collection to update
|
|
52
53
|
*/
|
|
53
54
|
worker.port.on("passbolt.resource-types.update-all-deleted-status", async (requestId, resourceTypesCollectionDto) => {
|
|
54
|
-
const controller = new UpdateAllResourceTypesDeletedStatusController(worker, requestId, apiClientOptions);
|
|
55
|
+
const controller = new UpdateAllResourceTypesDeletedStatusController(worker, requestId, apiClientOptions, account);
|
|
55
56
|
await controller._exec(resourceTypesCollectionDto);
|
|
56
57
|
});
|
|
57
58
|
};
|
|
@@ -22,7 +22,7 @@ import DownloadRecoveryKitController from "../controller/setup/downloadRecoverKi
|
|
|
22
22
|
import CompleteSetupController from "../controller/setup/completeSetupController";
|
|
23
23
|
import ValidatePrivateGpgKeySetupController from "../controller/crypto/validatePrivateGpgKeySetupController";
|
|
24
24
|
import SetSetupLocaleController from "../controller/setup/setSetupLocaleController";
|
|
25
|
-
import
|
|
25
|
+
import GetOrFindSiteSettingsController from "../controller/siteSettings/getOrFindSiteSettingsController";
|
|
26
26
|
import GenerateSetupKeyPairController from "../controller/setup/generateSetupKeyPairController";
|
|
27
27
|
import GetAndInitSetupLocaleController from "../controller/setup/getAndInitSetupLocaleController";
|
|
28
28
|
import IsExtensionFirstInstallController from "../controller/extension/isExtensionFirstInstallController";
|
|
@@ -47,9 +47,9 @@ const listen = function (worker, apiClientOptions, account) {
|
|
|
47
47
|
await controller._exec();
|
|
48
48
|
});
|
|
49
49
|
|
|
50
|
-
worker.port.on("passbolt.
|
|
51
|
-
const controller = new
|
|
52
|
-
await controller._exec();
|
|
50
|
+
worker.port.on("passbolt.site-settings.get-or-find", async (requestId, refreshCache = true) => {
|
|
51
|
+
const controller = new GetOrFindSiteSettingsController(worker, requestId, apiClientOptions, account);
|
|
52
|
+
await controller._exec(refreshCache);
|
|
53
53
|
});
|
|
54
54
|
|
|
55
55
|
worker.port.on("passbolt.setup.start", async (requestId) => {
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Passbolt ~ Open source password manager for teams
|
|
3
|
+
* Copyright (c) Passbolt SARL (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 SARL (https://www.passbolt.com)
|
|
10
|
+
* @license https://opensource.org/licenses/AGPL-3.0 AGPL License
|
|
11
|
+
* @link https://www.passbolt.com Passbolt(tm)
|
|
12
|
+
* @since 3.2.0
|
|
13
|
+
*/
|
|
14
|
+
import GetOrFindSiteSettingsController from "../controller/siteSettings/getOrFindSiteSettingsController";
|
|
15
|
+
|
|
16
|
+
const listen = function (worker, apiClientOptions, account) {
|
|
17
|
+
/*
|
|
18
|
+
* Return cached site settings or fetch from the API. Same `refreshCache` semantics as the
|
|
19
|
+
* legacy `passbolt.organization-settings.get` event.
|
|
20
|
+
* @listens passbolt.site-settings.get-or-find
|
|
21
|
+
* @param {string} requestId
|
|
22
|
+
* @param {boolean} [refreshCache=true]
|
|
23
|
+
*/
|
|
24
|
+
worker.port.on("passbolt.site-settings.get-or-find", async (requestId, refreshCache = true) => {
|
|
25
|
+
const controller = new GetOrFindSiteSettingsController(worker, requestId, apiClientOptions, account);
|
|
26
|
+
await controller._exec(refreshCache);
|
|
27
|
+
});
|
|
28
|
+
};
|
|
29
|
+
export const SiteSettingsEvents = { listen };
|
|
@@ -15,6 +15,7 @@ import AvatarUpdateEntity from "../model/entity/avatar/update/avatarUpdateEntity
|
|
|
15
15
|
import UpdateUserLocalStorageController from "../controller/user/updateUserLocalStorageController";
|
|
16
16
|
import GetOrFindLoggedInUserController from "../controller/user/getOrFindLoggedInUserController";
|
|
17
17
|
import GetOrFindUsersController from "../controller/user/getOrFindUsersController";
|
|
18
|
+
import GetOrFindAllUsersController from "../controller/user/getOrFindAllUsersController";
|
|
18
19
|
import UpdateUserController from "../controller/user/updateUserController";
|
|
19
20
|
import DeleteDryRunUserController from "../controller/user/deleteDryRunUserController";
|
|
20
21
|
import DeleteUserController from "../controller/user/deleteUserController";
|
|
@@ -38,13 +39,8 @@ const listen = function (worker, apiClientOptions, account) {
|
|
|
38
39
|
* @param requestId {uuid} The request identifier
|
|
39
40
|
*/
|
|
40
41
|
worker.port.on("passbolt.users.get-all", async (requestId) => {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
const users = await userModel.getOrFindAll();
|
|
44
|
-
worker.port.emit(requestId, "SUCCESS", users);
|
|
45
|
-
} catch (error) {
|
|
46
|
-
worker.port.emit(requestId, "ERROR", error);
|
|
47
|
-
}
|
|
42
|
+
const controller = new GetOrFindAllUsersController(worker, requestId, apiClientOptions, account);
|
|
43
|
+
await controller._exec();
|
|
48
44
|
});
|
|
49
45
|
|
|
50
46
|
/*
|
|
@@ -158,7 +154,7 @@ const listen = function (worker, apiClientOptions, account) {
|
|
|
158
154
|
* @param newPassphrase {string} The new passphrase
|
|
159
155
|
*/
|
|
160
156
|
worker.port.on("passbolt.user.update-private-key", async (requestId, oldPassphrase, newPassphrase) => {
|
|
161
|
-
const controller = new UpdatePrivateKeyController(worker, requestId, apiClientOptions);
|
|
157
|
+
const controller = new UpdatePrivateKeyController(worker, requestId, apiClientOptions, account);
|
|
162
158
|
await controller._exec(oldPassphrase, newPassphrase);
|
|
163
159
|
});
|
|
164
160
|
|
|
@@ -8,13 +8,8 @@ import PortManager from "./sdk/port/portManager";
|
|
|
8
8
|
import SystemRequirementService from "./service/systemRequirementService/systemRequirementService";
|
|
9
9
|
import OnExtensionInstalledController from "./controller/extension/onExtensionInstalledController";
|
|
10
10
|
import TabService from "./service/tab/tabService";
|
|
11
|
-
import User from "./model/user";
|
|
12
|
-
import Log from "./model/log";
|
|
13
11
|
import OnExtensionUpdateAvailableService from "./service/extension/onExtensionUpdateAvailableService";
|
|
14
|
-
import CheckAuthStatusService from "./service/auth/checkAuthStatusService";
|
|
15
12
|
import GlobalAlarmService from "./service/alarm/globalAlarmService";
|
|
16
|
-
import PostLoginService from "./service/auth/postLoginService";
|
|
17
|
-
import PostLogoutService from "./service/auth/postLogoutService";
|
|
18
13
|
import OnStartUpService from "./service/extension/onStartUpService";
|
|
19
14
|
import ToolbarService from "./service/toolbar/toolbarService";
|
|
20
15
|
|
|
@@ -23,38 +18,6 @@ const main = async () => {
|
|
|
23
18
|
* Load all system requirement
|
|
24
19
|
*/
|
|
25
20
|
await SystemRequirementService.get();
|
|
26
|
-
|
|
27
|
-
// When the extension is updated and the user is still connected, an event needs to be sent
|
|
28
|
-
checkAndProcessIfUserAuthenticated();
|
|
29
|
-
};
|
|
30
|
-
|
|
31
|
-
/**
|
|
32
|
-
* Check and process event if the user is authenticated
|
|
33
|
-
* @return {Promise<void>}
|
|
34
|
-
*/
|
|
35
|
-
const checkAndProcessIfUserAuthenticated = async () => {
|
|
36
|
-
const user = User.getInstance();
|
|
37
|
-
// Check if user is valid
|
|
38
|
-
if (!user.isValid()) {
|
|
39
|
-
return;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
let authStatus;
|
|
43
|
-
try {
|
|
44
|
-
const checkAuthStatusService = new CheckAuthStatusService();
|
|
45
|
-
authStatus = await checkAuthStatusService.checkAuthStatus(true);
|
|
46
|
-
} catch (error) {
|
|
47
|
-
console.error(error);
|
|
48
|
-
// Service is unavailable, do nothing...
|
|
49
|
-
Log.write({ level: "debug", message: "The Service is unavailable to check if the user is authenticated" });
|
|
50
|
-
return;
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
if (authStatus.isAuthenticated) {
|
|
54
|
-
PostLoginService.exec();
|
|
55
|
-
} else {
|
|
56
|
-
PostLogoutService.exec();
|
|
57
|
-
}
|
|
58
21
|
};
|
|
59
22
|
|
|
60
23
|
main();
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* @license https://opensource.org/licenses/AGPL-3.0 AGPL License
|
|
11
11
|
* @link https://www.passbolt.com Passbolt(tm)
|
|
12
12
|
*/
|
|
13
|
-
import
|
|
13
|
+
import EntityV2 from "passbolt-styleguide/src/shared/models/entity/abstract/entityV2";
|
|
14
14
|
import ProfileEntity from "passbolt-styleguide/src/shared/models/entity/profile/profileEntity";
|
|
15
15
|
import UserEntity from "../user/userEntity";
|
|
16
16
|
import SecurityTokenEntity from "../securityToken/securityTokenEntity";
|
|
@@ -24,7 +24,7 @@ const FINGERPRINT_MAX_LENGTH = 40;
|
|
|
24
24
|
|
|
25
25
|
const UUID_PASSBOLT_NAMESPACE = "d5447ca1-950f-459d-8b20-86ddfdd0f922";
|
|
26
26
|
|
|
27
|
-
class AbstractAccountEntity extends
|
|
27
|
+
class AbstractAccountEntity extends EntityV2 {
|
|
28
28
|
/**
|
|
29
29
|
* @inheritDoc
|
|
30
30
|
*/
|
|
@@ -26,19 +26,13 @@ class AccountAccountRecoveryEntity extends AbstractAccountEntity {
|
|
|
26
26
|
* @param {boolean} [options.validateUsername=true] Validate the username
|
|
27
27
|
*/
|
|
28
28
|
constructor(accountAccountRecoveryDto, options = {}) {
|
|
29
|
-
AccountAccountRecoveryEntity.marshal(accountAccountRecoveryDto);
|
|
30
|
-
|
|
31
29
|
// Should the username be validated.
|
|
32
30
|
const isUsernameValidated = options?.validateUsername !== false;
|
|
31
|
+
if (!isUsernameValidated) {
|
|
32
|
+
options.schema = AccountAccountRecoveryEntity.getSchema(isUsernameValidated);
|
|
33
|
+
}
|
|
33
34
|
|
|
34
|
-
super(
|
|
35
|
-
EntitySchema.validate(
|
|
36
|
-
AccountAccountRecoveryEntity.ENTITY_NAME,
|
|
37
|
-
accountAccountRecoveryDto,
|
|
38
|
-
AccountAccountRecoveryEntity.getSchema(isUsernameValidated),
|
|
39
|
-
),
|
|
40
|
-
options,
|
|
41
|
-
);
|
|
35
|
+
super(accountAccountRecoveryDto, options);
|
|
42
36
|
|
|
43
37
|
this.isUsernameValidated = isUsernameValidated;
|
|
44
38
|
|
|
@@ -52,14 +46,10 @@ class AccountAccountRecoveryEntity extends AbstractAccountEntity {
|
|
|
52
46
|
}
|
|
53
47
|
|
|
54
48
|
/**
|
|
55
|
-
*
|
|
56
|
-
* @param {Object} accountAccountRecoveryDto account account recovery DTO
|
|
57
|
-
* @return {Object}
|
|
49
|
+
* @inheritDoc
|
|
58
50
|
*/
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
type: AccountAccountRecoveryEntity.TYPE_ACCOUNT_ACCOUNT_RECOVERY,
|
|
62
|
-
});
|
|
51
|
+
marshall() {
|
|
52
|
+
this._props.type = AccountAccountRecoveryEntity.TYPE_ACCOUNT_ACCOUNT_RECOVERY;
|
|
63
53
|
}
|
|
64
54
|
|
|
65
55
|
/**
|
|
@@ -12,7 +12,6 @@
|
|
|
12
12
|
*/
|
|
13
13
|
|
|
14
14
|
import AbstractAccountEntity from "./abstractAccountEntity";
|
|
15
|
-
import EntitySchema from "passbolt-styleguide/src/shared/models/entity/abstract/entitySchema";
|
|
16
15
|
import RoleEntity from "passbolt-styleguide/src/shared/models/entity/role/roleEntity";
|
|
17
16
|
|
|
18
17
|
const ENTITY_NAME = "Account";
|
|
@@ -26,28 +25,22 @@ class AccountEntity extends AbstractAccountEntity {
|
|
|
26
25
|
* @param {boolean} [options.validateUsername=true] Validate the username
|
|
27
26
|
*/
|
|
28
27
|
constructor(accountDto, options = {}) {
|
|
29
|
-
AccountEntity.marshal(accountDto);
|
|
30
|
-
|
|
31
28
|
// Should the username be validated.
|
|
32
29
|
const isUsernameValidated = options?.validateUsername !== false;
|
|
30
|
+
if (!isUsernameValidated) {
|
|
31
|
+
options.schema = AccountEntity.getSchema(isUsernameValidated);
|
|
32
|
+
}
|
|
33
33
|
|
|
34
|
-
super(
|
|
35
|
-
EntitySchema.validate(AccountEntity.ENTITY_NAME, accountDto, AccountEntity.getSchema(isUsernameValidated)),
|
|
36
|
-
options,
|
|
37
|
-
);
|
|
34
|
+
super(accountDto, options);
|
|
38
35
|
|
|
39
36
|
this.isUsernameValidated = isUsernameValidated;
|
|
40
37
|
}
|
|
41
38
|
|
|
42
39
|
/**
|
|
43
|
-
*
|
|
44
|
-
* @param {Object} accountDto account DTO
|
|
45
|
-
* @return {Object}
|
|
40
|
+
* @inheritDoc
|
|
46
41
|
*/
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
type: AccountEntity.TYPE_ACCOUNT,
|
|
50
|
-
});
|
|
42
|
+
marshall() {
|
|
43
|
+
this._props.type = AccountEntity.TYPE_ACCOUNT;
|
|
51
44
|
}
|
|
52
45
|
|
|
53
46
|
/**
|
|
@@ -12,7 +12,6 @@
|
|
|
12
12
|
*/
|
|
13
13
|
|
|
14
14
|
import AbstractAccountEntity from "./abstractAccountEntity";
|
|
15
|
-
import EntitySchema from "passbolt-styleguide/src/shared/models/entity/abstract/entitySchema";
|
|
16
15
|
|
|
17
16
|
const ENTITY_NAME = "AccountKit";
|
|
18
17
|
const PGP_KEY_MAX_LENGTH = 50000;
|
|
@@ -23,7 +22,7 @@ class AccountKitEntity extends AbstractAccountEntity {
|
|
|
23
22
|
* @inheritDoc
|
|
24
23
|
*/
|
|
25
24
|
constructor(accountDto, options = {}) {
|
|
26
|
-
super(
|
|
25
|
+
super(accountDto, options);
|
|
27
26
|
}
|
|
28
27
|
|
|
29
28
|
/**
|
|
@@ -14,7 +14,6 @@
|
|
|
14
14
|
import UserEntity from "../user/userEntity";
|
|
15
15
|
import AbstractAccountEntity from "./abstractAccountEntity";
|
|
16
16
|
import AuthenticationTokenEntity from "../authenticationToken/authenticationTokenEntity";
|
|
17
|
-
import EntitySchema from "passbolt-styleguide/src/shared/models/entity/abstract/entitySchema";
|
|
18
17
|
import AccountRecoveryUserSettingEntity from "passbolt-styleguide/src/shared/models/entity/accountRecovery/accountRecoveryUserSettingEntity";
|
|
19
18
|
|
|
20
19
|
const ENTITY_NAME = "AccountRecover";
|
|
@@ -25,12 +24,7 @@ class AccountRecoverEntity extends AbstractAccountEntity {
|
|
|
25
24
|
* @inheritDoc
|
|
26
25
|
*/
|
|
27
26
|
constructor(accountRecoverDto, options = {}) {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
super(
|
|
31
|
-
EntitySchema.validate(AccountRecoverEntity.ENTITY_NAME, accountRecoverDto, AccountRecoverEntity.getSchema()),
|
|
32
|
-
options,
|
|
33
|
-
);
|
|
27
|
+
super(accountRecoverDto, options);
|
|
34
28
|
|
|
35
29
|
// Recover account associations.
|
|
36
30
|
if (this._props.account_recovery_user_setting) {
|
|
@@ -47,14 +41,10 @@ class AccountRecoverEntity extends AbstractAccountEntity {
|
|
|
47
41
|
}
|
|
48
42
|
|
|
49
43
|
/**
|
|
50
|
-
*
|
|
51
|
-
* @param {Object} accountRecoverDto account recover DTO
|
|
52
|
-
* @return {Object}
|
|
44
|
+
* @inheritDoc
|
|
53
45
|
*/
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
type: AccountRecoverEntity.TYPE_ACCOUNT_RECOVER,
|
|
57
|
-
});
|
|
46
|
+
marshall() {
|
|
47
|
+
this._props.type = AccountRecoverEntity.TYPE_ACCOUNT_RECOVER;
|
|
58
48
|
}
|
|
59
49
|
|
|
60
50
|
/**
|
|
@@ -15,7 +15,6 @@
|
|
|
15
15
|
import UserEntity from "../user/userEntity";
|
|
16
16
|
import AbstractAccountEntity from "./abstractAccountEntity";
|
|
17
17
|
import AuthenticationTokenEntity from "../authenticationToken/authenticationTokenEntity";
|
|
18
|
-
import EntitySchema from "passbolt-styleguide/src/shared/models/entity/abstract/entitySchema";
|
|
19
18
|
import AccountRecoveryUserSettingEntity from "passbolt-styleguide/src/shared/models/entity/accountRecovery/accountRecoveryUserSettingEntity";
|
|
20
19
|
|
|
21
20
|
const ENTITY_NAME = "AccountSetup";
|
|
@@ -26,12 +25,7 @@ class AccountSetupEntity extends AbstractAccountEntity {
|
|
|
26
25
|
* @inheritDoc
|
|
27
26
|
*/
|
|
28
27
|
constructor(accountSetupDto, options = {}) {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
super(
|
|
32
|
-
EntitySchema.validate(AccountSetupEntity.ENTITY_NAME, accountSetupDto, AccountSetupEntity.getSchema()),
|
|
33
|
-
options,
|
|
34
|
-
);
|
|
28
|
+
super(accountSetupDto, options);
|
|
35
29
|
|
|
36
30
|
// Setup account associations.
|
|
37
31
|
if (this._props.account_recovery_user_setting) {
|
|
@@ -48,14 +42,10 @@ class AccountSetupEntity extends AbstractAccountEntity {
|
|
|
48
42
|
}
|
|
49
43
|
|
|
50
44
|
/**
|
|
51
|
-
*
|
|
52
|
-
* @param {Object} accountSetupDto account setup DTO
|
|
53
|
-
* @return {Object}
|
|
45
|
+
* @inheritDoc
|
|
54
46
|
*/
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
type: AccountSetupEntity.TYPE_ACCOUNT_SETUP,
|
|
58
|
-
});
|
|
47
|
+
marshall() {
|
|
48
|
+
this._props.type = AccountSetupEntity.TYPE_ACCOUNT_SETUP;
|
|
59
49
|
}
|
|
60
50
|
|
|
61
51
|
/**
|
|
@@ -13,7 +13,6 @@
|
|
|
13
13
|
*/
|
|
14
14
|
|
|
15
15
|
import AbstractAccountEntity from "./abstractAccountEntity";
|
|
16
|
-
import EntitySchema from "passbolt-styleguide/src/shared/models/entity/abstract/entitySchema";
|
|
17
16
|
import AccountAccountRecoveryEntity from "./accountAccountRecoveryEntity";
|
|
18
17
|
import AccountSetupEntity from "./accountSetupEntity";
|
|
19
18
|
import AccountRecoverEntity from "./accountRecoverEntity";
|
|
@@ -26,10 +25,8 @@ class AccountTemporaryEntity extends AbstractAccountEntity {
|
|
|
26
25
|
/**
|
|
27
26
|
* @inheritDoc
|
|
28
27
|
*/
|
|
29
|
-
constructor(
|
|
30
|
-
super(
|
|
31
|
-
EntitySchema.validate(AccountTemporaryEntity.ENTITY_NAME, AccountEntityDto, AccountTemporaryEntity.getSchema()),
|
|
32
|
-
);
|
|
28
|
+
constructor(accountEntityDto, options = {}) {
|
|
29
|
+
super(accountEntityDto, options);
|
|
33
30
|
|
|
34
31
|
// Associations
|
|
35
32
|
if (this._props.account) {
|
package/src/all/background_page/model/entity/gpgkey/generate/generateGpgKeyPairOptionsEntity.test.js
CHANGED
|
@@ -15,9 +15,8 @@
|
|
|
15
15
|
import EntitySchema from "passbolt-styleguide/src/shared/models/entity/abstract/entitySchema";
|
|
16
16
|
import EntityValidationError from "passbolt-styleguide/src/shared/models/entity/abstract/entityValidationError";
|
|
17
17
|
import * as assertEntityProperty from "passbolt-styleguide/test/assert/assertEntityProperty";
|
|
18
|
-
import
|
|
19
|
-
import
|
|
20
|
-
import { customEmailValidationProOrganizationSettings } from "../../organizationSettings/organizationSettingsEntity.test.data";
|
|
18
|
+
import SiteSettingsEntity from "passbolt-styleguide/src/shared/models/entity/siteSettings/siteSettingsEntity";
|
|
19
|
+
import { customEmailValidationProSiteSettings } from "passbolt-styleguide/src/shared/models/entity/siteSettings/siteSettingsEntity.test.data";
|
|
21
20
|
import GenerateGpgKeyPairOptionsEntity from "./generateGpgKeyPairOptionsEntity";
|
|
22
21
|
import { defaultDto, minimalDto } from "./generateGpgKeyPairOptionsEntity.test.data";
|
|
23
22
|
import {
|
|
@@ -25,6 +24,7 @@ import {
|
|
|
25
24
|
rsaUserKeyPoliciesSettingsDto,
|
|
26
25
|
} from "passbolt-styleguide/src/shared/models/entity/userKeyPolicies/UserKeyPoliciesSettingsEntity.test.data";
|
|
27
26
|
import UserKeyPoliciesSettingsEntity from "passbolt-styleguide/src/shared/models/entity/userKeyPolicies/UserKeyPoliciesSettingsEntity";
|
|
27
|
+
import SiteSettingsRuntimeCache from "../../../../service/siteSettings/siteSettingsRuntimeCache";
|
|
28
28
|
|
|
29
29
|
beforeEach(() => {
|
|
30
30
|
jest.useFakeTimers(); //avoid slight nano seconds shift in test when comparing dates that makes test failing while they shouldn't
|
|
@@ -147,8 +147,8 @@ describe("GenerateGpgKeyPairOptionsEntity", () => {
|
|
|
147
147
|
|
|
148
148
|
it("allows non-standard email if custom validation is configured", () => {
|
|
149
149
|
expect.assertions(1);
|
|
150
|
-
const organizationSettings =
|
|
151
|
-
|
|
150
|
+
const organizationSettings = customEmailValidationProSiteSettings();
|
|
151
|
+
SiteSettingsRuntimeCache.set(new SiteSettingsEntity(organizationSettings));
|
|
152
152
|
const dto = defaultDto({ email: "ada@passbolt.c" });
|
|
153
153
|
const entity = new GenerateGpgKeyPairOptionsEntity(dto);
|
|
154
154
|
expect(entity.email).toEqual("ada@passbolt.c");
|
|
@@ -0,0 +1,49 @@
|
|
|
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
|
+
import EntityV2 from "passbolt-styleguide/src/shared/models/entity/abstract/entityV2";
|
|
15
|
+
|
|
16
|
+
class LocalStorageMetadataEntity extends EntityV2 {
|
|
17
|
+
/**
|
|
18
|
+
* Get local storage metadata entity schema
|
|
19
|
+
* @returns {object} schema
|
|
20
|
+
*/
|
|
21
|
+
static getSchema() {
|
|
22
|
+
return {
|
|
23
|
+
type: "object",
|
|
24
|
+
required: ["last_updated"],
|
|
25
|
+
properties: {
|
|
26
|
+
last_updated: {
|
|
27
|
+
type: "string",
|
|
28
|
+
format: "date-time",
|
|
29
|
+
},
|
|
30
|
+
},
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/*
|
|
35
|
+
* ==================================================
|
|
36
|
+
* Dynamic properties getters
|
|
37
|
+
* ==================================================
|
|
38
|
+
*/
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Get the last updated date
|
|
42
|
+
* @returns {string}
|
|
43
|
+
*/
|
|
44
|
+
get lastUpdated() {
|
|
45
|
+
return this._props.last_updated;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
export default LocalStorageMetadataEntity;
|
package/src/all/background_page/model/entity/localStorage/localStorageMetadataEntity.test.data.js
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
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
|
+
/**
|
|
16
|
+
* Build default local storage metadata.
|
|
17
|
+
* @param {object} [data={}] Data to override
|
|
18
|
+
* @returns {object}
|
|
19
|
+
*/
|
|
20
|
+
export const defaultLocalStorageMetadataDto = (data = {}) => ({
|
|
21
|
+
last_updated: "2026-06-06T14:59:11+00:00",
|
|
22
|
+
...data,
|
|
23
|
+
});
|
|
@@ -0,0 +1,51 @@
|
|
|
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 EntitySchema from "passbolt-styleguide/src/shared/models/entity/abstract/entitySchema";
|
|
16
|
+
import * as assertEntityProperty from "passbolt-styleguide/test/assert/assertEntityProperty";
|
|
17
|
+
import LocalStorageMetadataEntity from "./localStorageMetadataEntity";
|
|
18
|
+
import { defaultLocalStorageMetadataDto } from "./localStorageMetadataEntity.test.data";
|
|
19
|
+
|
|
20
|
+
describe("LocalStorageMetadata", () => {
|
|
21
|
+
describe("::getSchema", () => {
|
|
22
|
+
it("schema must validate", () => {
|
|
23
|
+
EntitySchema.validateSchema(LocalStorageMetadataEntity.name, LocalStorageMetadataEntity.getSchema());
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
it("validates last_updated property", () => {
|
|
27
|
+
assertEntityProperty.string(LocalStorageMetadataEntity, "last_updated");
|
|
28
|
+
assertEntityProperty.dateTime(LocalStorageMetadataEntity, "last_updated");
|
|
29
|
+
assertEntityProperty.required(LocalStorageMetadataEntity, "last_updated");
|
|
30
|
+
});
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
describe("::constructor", () => {
|
|
34
|
+
it("constructor works if valid DTO is provided", () => {
|
|
35
|
+
expect.assertions(1);
|
|
36
|
+
const dto = defaultLocalStorageMetadataDto();
|
|
37
|
+
const entity = new LocalStorageMetadataEntity(dto);
|
|
38
|
+
|
|
39
|
+
expect(entity._props.last_updated).toStrictEqual(dto.last_updated);
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
describe("::last_updated", () => {
|
|
44
|
+
it("get last_updated property value", () => {
|
|
45
|
+
expect.assertions(1);
|
|
46
|
+
const last_updated = "2024-10-05T12:10:00+00:00";
|
|
47
|
+
const entity = new LocalStorageMetadataEntity(defaultLocalStorageMetadataDto({ last_updated }));
|
|
48
|
+
expect(entity.lastUpdated).toStrictEqual(last_updated);
|
|
49
|
+
});
|
|
50
|
+
});
|
|
51
|
+
});
|