passbolt-browser-extension 5.12.1 → 5.13.0-alpha.1
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/safe-chain-config.json +2 -1
- package/.jpmignore +0 -1
- package/CHANGELOG.md +6 -1
- package/RELEASE_NOTES.md +2 -3
- package/i18next.config.js +28 -0
- package/jest.config.json +1 -0
- package/package.json +20 -40
- package/src/all/background_page/controller/accountRecovery/reviewRequestController.test.js +1 -1
- package/src/all/background_page/{event → controller/actionLog}/findAllForActionLogController.js +1 -1
- package/src/all/background_page/{event → controller/actionLog}/findAllForActionLogController.test.js +4 -4
- package/src/all/background_page/controller/folder/folderCreateController.js +3 -1
- package/src/all/background_page/controller/group/findMyGroupsController.test.js +2 -2
- package/src/all/background_page/controller/group/getOrFindGroupsController.js +61 -0
- package/src/all/background_page/controller/group/getOrFindGroupsController.test.js +69 -0
- package/src/all/background_page/controller/group/getOrFindGroupsUsersController.js +62 -0
- package/src/all/background_page/controller/group/getOrFindGroupsUsersController.test.js +69 -0
- package/src/all/background_page/controller/group/groupCreateController.js +1 -1
- package/src/all/background_page/controller/group/groupCreateController.test.js +1 -1
- package/src/all/background_page/controller/group/groupUpdateController.js +1 -1
- package/src/all/background_page/controller/group/updateAllGroupsLocalStorageController.test.js +1 -1
- package/src/all/background_page/controller/keyring/synchroniseKeyringController.js +51 -0
- package/src/all/background_page/controller/keyring/synchroniseKeyringController.test.js +49 -0
- package/src/all/background_page/controller/metadata/shareMetadataKeyPrivateController.test.js +1 -1
- package/src/all/background_page/controller/move/moveFolderController.js +0 -2
- package/src/all/background_page/controller/permission/FindAcoPermissionsForDisplayController.js +1 -1
- package/src/all/background_page/controller/permission/FindAcoPermissionsForDisplayController.test.js +2 -2
- package/src/all/background_page/controller/resource/resourceUpdateController.test.js +1 -2
- package/src/all/background_page/controller/share/findFoldersForShareController.js +66 -0
- package/src/all/background_page/controller/share/findFoldersForShareController.test.js +70 -0
- package/src/all/background_page/controller/share/searchUsersAndGroupsController.js +4 -4
- package/src/all/background_page/controller/share/searchUsersAndGroupsController.test.js +8 -23
- package/src/all/background_page/controller/share/shareResourcesController.test.js +2 -2
- package/src/all/background_page/controller/user/deleteUserController.test.js +1 -1
- package/src/all/background_page/controller/user/getOrFindUsersController.js +61 -0
- package/src/all/background_page/controller/user/getOrFindUsersController.test.js +69 -0
- package/src/all/background_page/error/deleteDryRunError.js +1 -1
- package/src/all/background_page/event/actionLogEvents.js +1 -1
- package/src/all/background_page/event/groupEvents.js +26 -0
- package/src/all/background_page/event/keyringEvents.js +12 -0
- package/src/all/background_page/event/shareEvents.js +3 -9
- package/src/all/background_page/event/userEvents.js +13 -0
- package/src/all/background_page/model/config.js +12 -2
- package/src/all/background_page/model/entity/folder/folderEntity.js +2 -2
- package/src/all/background_page/model/entity/folder/folderEntity.test.js +2 -2
- package/src/all/background_page/model/entity/folder/foldersCollection.test.js +1 -1
- package/src/all/background_page/model/entity/group/update/groupUpdateEntity.js +1 -1
- package/src/all/background_page/model/entity/group/update/groupUpdateEntity.test.js +1 -1
- package/src/all/background_page/model/entity/permission/actionLog/updatedPermissionEntity.js +2 -2
- package/src/all/background_page/model/entity/permission/actionLog/updatedPermissionEntity.test.data.js +1 -1
- package/src/all/background_page/model/entity/permission/change/permissionChangeEntity.js +1 -1
- package/src/all/background_page/model/entity/permission/change/permissionChangesCollection.js +2 -2
- package/src/all/background_page/model/entity/permission/change/permissionChangesCollection.test.js +2 -2
- package/src/all/background_page/model/entity/resource/resourceEntity.js +2 -2
- package/src/all/background_page/model/entity/resource/resourceEntity.test.js +1 -1
- package/src/all/background_page/model/entity/user/userEntity.js +16 -377
- package/src/all/background_page/model/entity/user/userEntity.test.js +22 -297
- package/src/all/background_page/model/entity/userAndGroupSearchResultEntity/userAndGroupSearchResultEntity.js +1 -1
- package/src/all/background_page/model/folder/folderModel.js +5 -154
- package/src/all/background_page/model/group/groupModel.js +1 -1
- package/src/all/background_page/model/resource/resourceModel.js +2 -55
- package/src/all/background_page/model/setup/setupModel.js +2 -2
- package/src/all/background_page/model/user/userModel.js +16 -12
- package/src/all/background_page/service/api/group/groupApiService.js +20 -10
- package/src/all/background_page/service/api/group/groupApiService.test.js +70 -0
- package/src/all/background_page/service/api/share/{shareService.js → shareApiService.js} +10 -7
- package/src/all/background_page/service/api/share/{shareService.test.js → shareApiService.test.js} +5 -5
- package/src/all/background_page/service/group/createGroupService.js +1 -1
- package/src/all/background_page/service/group/createGroupService.test.js +1 -1
- package/src/all/background_page/service/group/findAndUpdateGroupsLocalStorageService.js +56 -1
- package/src/all/background_page/service/group/findAndUpdateGroupsLocalStorageService.test.js +84 -2
- package/src/all/background_page/service/group/findGroupsService.js +3 -3
- package/src/all/background_page/service/group/findGroupsService.test.data.js +1 -1
- package/src/all/background_page/service/group/findGroupsService.test.js +1 -1
- package/src/all/background_page/service/group/getOrFindGroupsService.js +65 -0
- package/src/all/background_page/service/group/getOrFindGroupsService.test.js +168 -0
- package/src/all/background_page/service/group/getOrFindGroupsUsersService.js +51 -0
- package/src/all/background_page/service/group/getOrFindGroupsUsersService.test.js +94 -0
- package/src/all/background_page/service/group/groupUpdateService.js +5 -3
- package/src/all/background_page/service/group/groupUpdateService.test.js +10 -2
- package/src/all/background_page/service/local_storage/groupLocalStorage.js +2 -2
- package/src/all/background_page/service/local_storage/groupLocalStorage.test.js +3 -3
- package/src/all/background_page/service/local_storage/userLocalStorage.js +57 -36
- package/src/all/background_page/service/local_storage/userLocalStorage.test.js +282 -0
- package/src/all/background_page/service/metadata/createMetadataKeyService.test.js +1 -1
- package/src/all/background_page/service/metadata/saveMetadataSettingsService.test.js +1 -1
- package/src/all/background_page/service/metadata/shareMetadataKeyPrivateService.test.js +1 -1
- package/src/all/background_page/service/migrateMetadata/migrateMetadataResourcesService.js +1 -1
- package/src/all/background_page/service/move/calculatePermissionsChangesForMoveService.js +113 -0
- package/src/all/background_page/service/move/calculatePermissionsChangesForMoveService.test.data.js +38 -0
- package/src/all/background_page/service/move/calculatePermissionsChangesForMoveService.test.js +158 -0
- package/src/all/background_page/service/move/moveOneFolderService.js +6 -7
- package/src/all/background_page/service/move/moveOneFolderService.test.js +90 -90
- package/src/all/background_page/service/move/moveResourcesService.js +2 -5
- package/src/all/background_page/service/permission/findPermissionsService.js +1 -1
- package/src/all/background_page/service/resource/create/resourceCreateService.js +13 -31
- package/src/all/background_page/service/resource/create/resourceCreateService.test.js +22 -16
- package/src/all/background_page/service/session_storage/keepSessionAliveService.js +3 -3
- package/src/all/background_page/service/session_storage/keepSessionAliveService.test.js +5 -3
- package/src/all/background_page/service/share/searchUsersAndGroupsService.js +41 -0
- package/src/all/background_page/service/share/searchUsersAndGroupsService.test.js +64 -0
- package/src/all/background_page/service/share/shareFoldersService.js +3 -3
- package/src/all/background_page/service/share/shareFoldersService.test.js +3 -3
- package/src/all/background_page/service/share/shareResourceService.js +4 -4
- package/src/all/background_page/service/share/shareResourceService.test.js +8 -8
- package/src/all/background_page/service/user/deleteUserService.js +4 -4
- package/src/all/background_page/service/user/deleteUserService.test.js +10 -10
- package/src/all/background_page/service/user/findAndUpdateUsersLocalStorageService.js +81 -0
- package/src/all/background_page/service/user/findAndUpdateUsersLocalStorageService.test.js +132 -0
- package/src/all/background_page/service/user/findUsersService.js +6 -6
- package/src/all/background_page/service/user/findUsersService.test.js +39 -38
- package/src/all/background_page/service/user/getOrFindUsersService.js +60 -0
- package/src/all/background_page/service/user/getOrFindUsersService.test.js +110 -0
- package/src/chrome/manifest.json +1 -1
- package/src/chrome-mv3/manifest.json +1 -1
- package/src/firefox/manifest.json +2 -2
- package/src/safari/manifest.json +1 -1
- package/test/jest.env-setup.js +31 -0
- package/webpack/applyOutputClean.js +69 -0
- package/webpack/base.config.js +33 -0
- package/webpack/common-blocks.js +91 -0
- package/webpack/expectedBuildArtifacts.js +51 -0
- package/webpack/i18nextExtractionPlugin.js +43 -0
- package/webpack/passboltEnvPlugin.js +41 -0
- package/webpack/webExtPlugin/index.js +75 -0
- package/webpack.chromium-mv2.config.js +40 -0
- package/webpack.chromium-mv3.config.js +40 -0
- package/webpack.common.config.js +186 -0
- package/webpack.config.js +38 -0
- package/webpack.firefox.config.js +40 -0
- package/webpack.mv2.config.js +65 -0
- package/webpack.mv3.config.js +99 -0
- package/webpack.safari-background-page.config.js +66 -57
- package/webpack.safari.config.js +44 -0
- package/Gruntfile.js +0 -471
- package/am_i_compromised.py +0 -1036
- package/am_i_compromised.sh +0 -688
- package/i18next-parser.config.js +0 -22
- package/src/all/background_page/config/config.json +0 -7
- package/src/all/background_page/config/config.json.debug +0 -7
- package/src/all/background_page/config/config.json.default +0 -7
- package/src/all/background_page/model/entity/group/groupEntity.js +0 -241
- package/src/all/background_page/model/entity/group/groupEntity.test.js +0 -136
- package/src/all/background_page/model/entity/group/groupsCollection.js +0 -166
- package/src/all/background_page/model/entity/group/groupsCollection.test.data.js +0 -34
- package/src/all/background_page/model/entity/group/groupsCollection.test.js +0 -227
- package/src/all/background_page/model/entity/permission/permissionEntity.js +0 -485
- package/src/all/background_page/model/entity/permission/permissionEntity.test.js +0 -263
- package/src/all/background_page/model/entity/permission/permissionsCollection.js +0 -486
- package/src/all/background_page/model/entity/permission/permissionsCollection.test.js +0 -700
- package/src/all/background_page/model/entity/user/usersCollection.js +0 -147
- package/src/all/background_page/model/entity/user/usersCollection.test.js +0 -223
- package/src/all/background_page/model/share/shareModel.js +0 -183
- package/src/all/background_page/model/share/shareModel.test.js +0 -61
- package/src/all/background_page/service/api/user/userService.js +0 -260
- package/src/all/background_page/service/resource/create/resourceCreateService.test.data.js +0 -55
- package/webpack-content-scripts.browser-integration.config.js +0 -57
- package/webpack-content-scripts.config.js +0 -61
- package/webpack-content-scripts.public-website-sign-in.config.js +0 -57
- package/webpack-data.config.js +0 -102
- package/webpack-data.download.config.js +0 -59
- package/webpack-data.in-form-call-to-action.config.js +0 -97
- package/webpack-data.in-form-menu.config.js +0 -97
- package/webpack-offscreens.config.js +0 -55
- package/webpack.background-page.config.js +0 -62
- package/webpack.service-worker.config.js +0 -65
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"minimumPackageAgeHours": 48,
|
|
3
3
|
"npm": {
|
|
4
|
-
"minimumPackageAgeExclusions": ["
|
|
4
|
+
"minimumPackageAgeExclusions": ["passbolt-browser-extension", "passbolt-styleguide", "@aikidosec/*"],
|
|
5
|
+
"directDownloadMinimumPackageAgeExclusions": ["passbolt-browser-extension", "passbolt-styleguide"]
|
|
5
6
|
}
|
|
6
7
|
}
|
package/.jpmignore
CHANGED
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,10 @@ This project adheres to [Semantic Versioning](http://semver.org/).
|
|
|
4
4
|
|
|
5
5
|
## [Unreleased]
|
|
6
6
|
|
|
7
|
+
## [5.12.2] - 2026-05-19
|
|
8
|
+
### Fixed
|
|
9
|
+
- PB-51648 Fix add user to group reducing set timeout
|
|
10
|
+
|
|
7
11
|
## [5.12.1] - 2026-05-12
|
|
8
12
|
### Fixed
|
|
9
13
|
- PB-51546 On Safari after log out, the login page does not show until the page is refreshed
|
|
@@ -2721,7 +2725,8 @@ self registration settings option in the left-side bar
|
|
|
2721
2725
|
- AP: User with plugin installed
|
|
2722
2726
|
- LU: Logged in user
|
|
2723
2727
|
|
|
2724
|
-
[Unreleased]: https://github.com/passbolt/passbolt_browser_extension/compare/v5.12.
|
|
2728
|
+
[Unreleased]: https://github.com/passbolt/passbolt_browser_extension/compare/v5.12.2...HEAD
|
|
2729
|
+
[5.12.2]: https://github.com/passbolt/passbolt_browser_extension/compare/v5.12.1...v5.12.2
|
|
2725
2730
|
[5.12.1]: https://github.com/passbolt/passbolt_browser_extension/compare/v5.12.0...v5.12.1
|
|
2726
2731
|
[5.12.0]: https://github.com/passbolt/passbolt_browser_extension/compare/v5.11.3...v5.12.0
|
|
2727
2732
|
[5.11.3]: https://github.com/passbolt/passbolt_browser_extension/compare/v5.11.2...v5.11.3
|
package/RELEASE_NOTES.md
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
Passbolt 5.12.
|
|
1
|
+
Passbolt 5.12.2 fixes an issue that arose in Chrome 148, which caused a service worker that did not respond within the specified time limit to be terminated.
|
|
2
2
|
|
|
3
3
|
### Fixed
|
|
4
|
-
- PB-
|
|
5
|
-
- PB-51547 On Safari after log in, some pages take a lot of time to display
|
|
4
|
+
- PB-51648 Fix add user to group reducing set timeout
|
|
@@ -0,0 +1,28 @@
|
|
|
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.12.0
|
|
13
|
+
*/
|
|
14
|
+
const { defineConfig } = require('i18next-cli');
|
|
15
|
+
|
|
16
|
+
module.exports = defineConfig({
|
|
17
|
+
locales: ['en-UK'],
|
|
18
|
+
extract: {
|
|
19
|
+
input: ['src/all/**/*.{js,jsx}'],
|
|
20
|
+
output: 'src/all/locales/{{language}}/{{namespace}}.json',
|
|
21
|
+
functions: ['t', '*.t', 'translate', '*.translate'],
|
|
22
|
+
defaultNS: 'common',
|
|
23
|
+
keySeparator: false,
|
|
24
|
+
nsSeparator: false,
|
|
25
|
+
sort: true,
|
|
26
|
+
defaultValue: key => key,
|
|
27
|
+
},
|
|
28
|
+
});
|
package/jest.config.json
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "passbolt-browser-extension",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.13.0-alpha.1",
|
|
4
4
|
"license": "AGPL-3.0",
|
|
5
5
|
"copyright": "Copyright 2025 Passbolt SA",
|
|
6
6
|
"description": "Passbolt web extension for the open source password manager for teams",
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
"kdbxweb": "2.1.1",
|
|
22
22
|
"openpgp": "^6.1.1",
|
|
23
23
|
"papaparse": "^5.5.2",
|
|
24
|
-
"passbolt-styleguide": "^5.
|
|
24
|
+
"passbolt-styleguide": "^5.13.0-alpha.6",
|
|
25
25
|
"react": "^18.3.1",
|
|
26
26
|
"react-dom": "^18.3.1",
|
|
27
27
|
"secrets-passbolt": "github:passbolt/secrets.js#v2.0.1",
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
"@babel/core": "^7.23.2",
|
|
35
35
|
"@babel/helpers": "^7.26.10",
|
|
36
36
|
"@babel/plugin-transform-runtime": "^7.22.9",
|
|
37
|
-
"@babel/preset-env": "^7.
|
|
37
|
+
"@babel/preset-env": "^7.29.5",
|
|
38
38
|
"@babel/preset-react": "^7.28.5",
|
|
39
39
|
"@babel/runtime": "^7.27.0",
|
|
40
40
|
"@babel/runtime-corejs3": "^7.26.10",
|
|
@@ -43,7 +43,8 @@
|
|
|
43
43
|
"babel-jest": "^30.3.0",
|
|
44
44
|
"babel-loader": "^8.2.3",
|
|
45
45
|
"buffer": "^6.0.3",
|
|
46
|
-
"
|
|
46
|
+
"copy-webpack-plugin": "^14.0.0",
|
|
47
|
+
"dotenv": "^16.4.5",
|
|
47
48
|
"eslint": "^9.39.4",
|
|
48
49
|
"eslint-config-prettier": "^10.1.8",
|
|
49
50
|
"eslint-import-resolver-alias": "^1.1.2",
|
|
@@ -59,11 +60,7 @@
|
|
|
59
60
|
"filereader": "^0.10.3",
|
|
60
61
|
"formdata-node": "^6.0.3",
|
|
61
62
|
"globals": "^16.4.0",
|
|
62
|
-
"
|
|
63
|
-
"grunt-contrib-clean": "^2.0.0",
|
|
64
|
-
"grunt-contrib-copy": "^1.0.0",
|
|
65
|
-
"grunt-shell": "^4.0.0",
|
|
66
|
-
"i18next-parser": "^9.3.0",
|
|
63
|
+
"i18next-cli": "^1.58.0",
|
|
67
64
|
"jest": "^30.3.0",
|
|
68
65
|
"jest-environment-jsdom": "^30.3.0",
|
|
69
66
|
"jest-environment-node": "^30.3.0",
|
|
@@ -74,7 +71,7 @@
|
|
|
74
71
|
"prettier": "3.6.2",
|
|
75
72
|
"terser-webpack-plugin": "^5.4.0",
|
|
76
73
|
"text-encoding-utf-8": "^1.0.2",
|
|
77
|
-
"web-ext": "^10.
|
|
74
|
+
"web-ext": "^10.3.0",
|
|
78
75
|
"webpack": "^5.105.2",
|
|
79
76
|
"webpack-cli": "^7.0.2"
|
|
80
77
|
},
|
|
@@ -83,41 +80,24 @@
|
|
|
83
80
|
"uuid": "^14.0.0"
|
|
84
81
|
},
|
|
85
82
|
"scripts": {
|
|
86
|
-
"build": "
|
|
87
|
-
"build:
|
|
88
|
-
"build:
|
|
89
|
-
"build:
|
|
90
|
-
"build:
|
|
91
|
-
"build:
|
|
92
|
-
"build:
|
|
93
|
-
"build:
|
|
94
|
-
"build:
|
|
95
|
-
"build:web-accessible-resources:app": "webpack --config webpack-data.config.js; webpack --config webpack-data.download.config.js",
|
|
96
|
-
"build:web-accessible-resources:browser-integration": "webpack --config webpack-data.in-form-call-to-action.config.js; webpack --config webpack-data.in-form-menu.config.js",
|
|
97
|
-
"dev:build:background-page": "webpack --env debug=true --config webpack.background-page.config.js",
|
|
98
|
-
"dev:build:safari:background-page": "webpack --env debug=true --config webpack.safari-background-page.config.js",
|
|
99
|
-
"dev:build:service-worker": "webpack --env debug=true --config webpack.service-worker.config.js; webpack --env debug=true --config webpack-offscreens.config.js",
|
|
100
|
-
"dev:build:content-scripts": "npm run dev:build:content-scripts:app; npm run dev:build:content-scripts:browser-integration; npm run dev:build:content-scripts:public-website",
|
|
101
|
-
"dev:build:content-scripts:app": "webpack --env debug=true --config webpack-content-scripts.config.js",
|
|
102
|
-
"dev:build:content-scripts:browser-integration": "webpack --env debug=true --config webpack-content-scripts.browser-integration.config.js",
|
|
103
|
-
"dev:build:content-scripts:public-website": "webpack --env debug=true --config webpack-content-scripts.public-website-sign-in.config.js",
|
|
104
|
-
"dev:build:web-accessible-resources": "npm run dev:build:web-accessible-resources:app; npm run dev:build:web-accessible-resources:browser-integration",
|
|
105
|
-
"dev:build:web-accessible-resources:app": "webpack --env debug=true --config webpack-data.config.js; webpack --env debug=true --config webpack-data.download.config.js",
|
|
106
|
-
"dev:build:web-accessible-resources:browser-integration": "webpack --env debug=true --config webpack-data.in-form-call-to-action.config.js; webpack --env debug=true --config webpack-data.in-form-menu.config.js",
|
|
107
|
-
"dev:safari:build": "grunt build-safari-debug;",
|
|
83
|
+
"build": "webpack",
|
|
84
|
+
"build:firefox": "webpack --config webpack.firefox.config.js",
|
|
85
|
+
"build:chromium-mv2": "webpack --config webpack.chromium-mv2.config.js",
|
|
86
|
+
"build:chromium-mv3": "webpack --config webpack.chromium-mv3.config.js",
|
|
87
|
+
"build:safari": "webpack --config webpack.safari.config.js",
|
|
88
|
+
"dev:build:firefox": "NODE_ENV=development webpack --config webpack.firefox.config.js",
|
|
89
|
+
"dev:build:chromium-mv2": "NODE_ENV=development webpack --config webpack.chromium-mv2.config.js",
|
|
90
|
+
"dev:build:chromium-mv3": "NODE_ENV=development webpack --config webpack.chromium-mv3.config.js",
|
|
91
|
+
"dev:build:safari": "NODE_ENV=development webpack --config webpack.safari.config.js",
|
|
108
92
|
"dev:safari:convert": "xcrun safari-web-extension-converter --app-name Passbolt-Safari-Extension --swift --macos-only --project-location ./build-safari-extension --bundle-identifier com.passbolt.safari-extension --force --no-open build/all/",
|
|
109
|
-
"dev:watch:build:
|
|
110
|
-
"dev:watch:build:
|
|
111
|
-
"dev:watch:build:
|
|
112
|
-
"dev:watch:build:
|
|
113
|
-
"dev:watch:build:content-scripts:public-website": "npm run dev:build:content-scripts:public-website -- -w",
|
|
114
|
-
"dev:watch:build:web-accessible-resources:app": "npm run dev:build:web-accessible-resources:app -- -w",
|
|
115
|
-
"dev:watch:build:web-accessible-resources:browser-integration": "npm run dev:build:web-accessible-resources:browser-integration -- -w",
|
|
93
|
+
"dev:watch:build:firefox": "npm run dev:build:firefox -- -w",
|
|
94
|
+
"dev:watch:build:chromium-mv2": "npm run dev:build:chromium-mv2 -- -w",
|
|
95
|
+
"dev:watch:build:chromium-mv3": "npm run dev:build:chromium-mv3 -- -w",
|
|
96
|
+
"dev:watch:build:safari": "npm run dev:build:safari -- -w",
|
|
116
97
|
"lint": "npm run lint:lockfile && npm run lint:eslint",
|
|
117
98
|
"lint:lockfile": "lockfile-lint --path package-lock.json --allowed-hosts npm github.com --allowed-schemes \"https:\" \"git+ssh:\" --empty-hostname false --allowed-urls \"secrets-passbolt@2.0.1-ccce02543c135b0d92f69a70e960d634e7d64609@\"",
|
|
118
99
|
"lint:eslint": "eslint src --max-warnings 0",
|
|
119
100
|
"lint:eslint-fix": "eslint --fix src",
|
|
120
|
-
"i18n:externalize": "i18next -c ./i18next-parser.config.js",
|
|
121
101
|
"test": "npm run test:unit",
|
|
122
102
|
"test:unit": "jest --no-cache ./src/all/ ./src/chrome-mv3/ ./src/chrome/ ./src/safari/",
|
|
123
103
|
"test:coverage": "jest --no-cache ./src/all/ ./src/chrome-mv3/ ./src/safari/ --coverage",
|
|
@@ -40,7 +40,7 @@ import AccountRecoveryResponseEntity from "../../model/entity/accountRecovery/ac
|
|
|
40
40
|
import MockExtension from "../../../../../test/mocks/mockExtension";
|
|
41
41
|
import UserLocalStorage from "../../service/local_storage/userLocalStorage";
|
|
42
42
|
import { defaultUserDto } from "passbolt-styleguide/src/shared/models/entity/user/userEntity.test.data";
|
|
43
|
-
import UsersCollection from "
|
|
43
|
+
import UsersCollection from "passbolt-styleguide/src/shared/models/entity/user/usersCollection";
|
|
44
44
|
import { OpenpgpAssertion } from "../../utils/openpgp/openpgpAssertions";
|
|
45
45
|
|
|
46
46
|
jest.mock("../../service/passphrase/getPassphraseService");
|
package/src/all/background_page/{event → controller/actionLog}/findAllForActionLogController.js
RENAMED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
* @link https://www.passbolt.com Passbolt(tm)
|
|
12
12
|
* @since 5.4.0
|
|
13
13
|
*/
|
|
14
|
-
import FindActionLogService from "
|
|
14
|
+
import FindActionLogService from "../../model/actionLog/findActionLogService";
|
|
15
15
|
|
|
16
16
|
class FindAllForActionLogController {
|
|
17
17
|
/**
|
package/src/all/background_page/{event → controller/actionLog}/findAllForActionLogController.test.js
RENAMED
|
@@ -11,12 +11,12 @@
|
|
|
11
11
|
* @link https://www.passbolt.com Passbolt(tm)
|
|
12
12
|
* @since 5.4.0
|
|
13
13
|
*/
|
|
14
|
-
import AccountEntity from "
|
|
15
|
-
import { defaultAccountDto } from "
|
|
14
|
+
import AccountEntity from "../../model/entity/account/accountEntity";
|
|
15
|
+
import { defaultAccountDto } from "../../model/entity/account/accountEntity.test.data";
|
|
16
16
|
import { defaultApiClientOptions } from "passbolt-styleguide/src/shared/lib/apiClient/apiClientOptions.test.data";
|
|
17
17
|
import FindAllForActionLogController from "./findAllForActionLogController";
|
|
18
|
-
import { defaultActionLogsCollection } from "
|
|
19
|
-
import ActionLogsCollection from "
|
|
18
|
+
import { defaultActionLogsCollection } from "../../model/entity/actionLog/actionLogsCollection.test.data";
|
|
19
|
+
import ActionLogsCollection from "../../model/entity/actionLog/actionLogsCollection";
|
|
20
20
|
import { v4 as uuid } from "uuid";
|
|
21
21
|
|
|
22
22
|
describe("FindAllForActionLogController", () => {
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
* @since 2.13.0
|
|
13
13
|
*/
|
|
14
14
|
import FolderModel from "../../model/folder/folderModel";
|
|
15
|
+
import FindFoldersService from "../../service/folder/findFoldersService";
|
|
15
16
|
import i18n from "../../sdk/i18n";
|
|
16
17
|
import ProgressService from "../../service/progress/progressService";
|
|
17
18
|
|
|
@@ -28,6 +29,7 @@ class FolderCreateController {
|
|
|
28
29
|
this.worker = worker;
|
|
29
30
|
this.requestId = requestId;
|
|
30
31
|
this.folderModel = new FolderModel(clientOptions, account);
|
|
32
|
+
this.findFoldersService = new FindFoldersService(clientOptions);
|
|
31
33
|
this.progressService = new ProgressService(this.worker, i18n.t("Creating folder..."));
|
|
32
34
|
}
|
|
33
35
|
|
|
@@ -52,7 +54,7 @@ class FolderCreateController {
|
|
|
52
54
|
* TODO a remember me option to skip confirmation dialog
|
|
53
55
|
*/
|
|
54
56
|
await this.progressService.finishStep(i18n.t("Fetching parent permissions"), true);
|
|
55
|
-
const targetFolder = await this.
|
|
57
|
+
const targetFolder = await this.findFoldersService.findByIdWithPermissions(folderEntity.folderParentId);
|
|
56
58
|
|
|
57
59
|
await this.progressService.finishStep(i18n.t("Saving permissions..."), true);
|
|
58
60
|
const changes = await this.folderModel.calculatePermissionsChangesForCreate(folderEntity, targetFolder);
|
|
@@ -13,11 +13,11 @@
|
|
|
13
13
|
*/
|
|
14
14
|
|
|
15
15
|
import { enableFetchMocks } from "jest-fetch-mock";
|
|
16
|
-
import { defaultGroupsDtos } from "
|
|
16
|
+
import { defaultGroupsDtos } from "passbolt-styleguide/src/shared/models/entity/group/groupsCollection.test.data";
|
|
17
17
|
import { mockApiResponse } from "../../../../../test/mocks/mockApiResponse";
|
|
18
18
|
import FindMyGroupsController from "./findMyGroupsController";
|
|
19
19
|
import { defaultApiClientOptions } from "passbolt-styleguide/src/shared/lib/apiClient/apiClientOptions.test.data";
|
|
20
|
-
import GroupsCollection from "
|
|
20
|
+
import GroupsCollection from "passbolt-styleguide/src/shared/models/entity/group/groupsCollection";
|
|
21
21
|
import MockExtension from "../../../../../test/mocks/mockExtension";
|
|
22
22
|
import { pgpKeys } from "passbolt-styleguide/test/fixture/pgpKeys/keys";
|
|
23
23
|
import FindGroupsService from "../../service/group/findGroupsService";
|
|
@@ -0,0 +1,61 @@
|
|
|
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 GetOrFindGroupsService from "../../service/group/getOrFindGroupsService";
|
|
15
|
+
import { assertArrayUUID } from "../../utils/assertions";
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Controller for the `passbolt.groups.get-by-ids` event. Returns the groups matching the given ids,
|
|
19
|
+
* served from the local storage cache when available and otherwise fetched from the API.
|
|
20
|
+
*/
|
|
21
|
+
class GetOrFindGroupsController {
|
|
22
|
+
/**
|
|
23
|
+
* Constructor.
|
|
24
|
+
* @param {Worker} worker The associated worker.
|
|
25
|
+
* @param {string} requestId The associated request id.
|
|
26
|
+
* @param {ApiClientOptions} apiClientOptions The api client options.
|
|
27
|
+
* @param {AccountEntity} account The user account.
|
|
28
|
+
*/
|
|
29
|
+
constructor(worker, requestId, apiClientOptions, account) {
|
|
30
|
+
this.worker = worker;
|
|
31
|
+
this.requestId = requestId;
|
|
32
|
+
this.getOrFindGroupsService = new GetOrFindGroupsService(account, apiClientOptions);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Controller executor.
|
|
37
|
+
* @param {Array<string>} groupIds The ids of the groups to retrieve.
|
|
38
|
+
* @returns {Promise<void>}
|
|
39
|
+
*/
|
|
40
|
+
async _exec(groupIds) {
|
|
41
|
+
try {
|
|
42
|
+
const result = await this.exec(groupIds);
|
|
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
|
+
* Find all the groups matching the given ids.
|
|
52
|
+
* @param {Array<string>} groupIds The ids of the groups to retrieve.
|
|
53
|
+
* @returns {Promise<GroupsCollection>}
|
|
54
|
+
*/
|
|
55
|
+
async exec(groupIds) {
|
|
56
|
+
assertArrayUUID(groupIds);
|
|
57
|
+
return this.getOrFindGroupsService.getOrFindByIds(groupIds);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
export default GetOrFindGroupsController;
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Passbolt ~ Open source password manager for teams
|
|
3
|
+
* Copyright (c) Passbolt SA (https://www.passbolt.com)
|
|
4
|
+
*
|
|
5
|
+
* Licensed under GNU Affero General Public License version 3 of the or any later version.
|
|
6
|
+
* For full copyright and license information, please see the LICENSE.txt
|
|
7
|
+
* Redistributions of files must retain the above copyright notice.
|
|
8
|
+
*
|
|
9
|
+
* @copyright Copyright (c) Passbolt SA (https://www.passbolt.com)
|
|
10
|
+
* @license https://opensource.org/licenses/AGPL-3.0 AGPL License
|
|
11
|
+
* @link https://www.passbolt.com Passbolt(tm)
|
|
12
|
+
* @since 5.13.0
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
import AccountEntity from "../../model/entity/account/accountEntity";
|
|
16
|
+
import { defaultAccountDto } from "../../model/entity/account/accountEntity.test.data";
|
|
17
|
+
import { defaultApiClientOptions } from "passbolt-styleguide/src/shared/lib/apiClient/apiClientOptions.test.data";
|
|
18
|
+
import GetOrFindGroupsController from "./getOrFindGroupsController";
|
|
19
|
+
import GroupsCollection from "passbolt-styleguide/src/shared/models/entity/group/groupsCollection";
|
|
20
|
+
import { defaultGroupsDtos } from "passbolt-styleguide/src/shared/models/entity/group/groupsCollection.test.data";
|
|
21
|
+
|
|
22
|
+
beforeEach(() => {
|
|
23
|
+
jest.clearAllMocks();
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
describe("GetOrFindGroupsController", () => {
|
|
27
|
+
describe("::exec", () => {
|
|
28
|
+
it("Should retrieve the groups matching the given ids.", async () => {
|
|
29
|
+
expect.assertions(3);
|
|
30
|
+
|
|
31
|
+
const account = new AccountEntity(defaultAccountDto());
|
|
32
|
+
const groupsDto = defaultGroupsDtos();
|
|
33
|
+
const groupsCollection = new GroupsCollection(groupsDto);
|
|
34
|
+
const requestedIds = [groupsDto[1].id, groupsDto[3].id];
|
|
35
|
+
const controller = new GetOrFindGroupsController(null, null, defaultApiClientOptions(), account);
|
|
36
|
+
jest.spyOn(controller.getOrFindGroupsService, "getOrFindByIds").mockImplementation(() => groupsCollection);
|
|
37
|
+
|
|
38
|
+
const result = await controller.exec(requestedIds);
|
|
39
|
+
|
|
40
|
+
expect(result).toBeInstanceOf(GroupsCollection);
|
|
41
|
+
expect(result).toStrictEqual(groupsCollection);
|
|
42
|
+
expect(controller.getOrFindGroupsService.getOrFindByIds).toHaveBeenCalledWith(requestedIds);
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
it("Should let error been thrown from the service if any.", async () => {
|
|
46
|
+
expect.assertions(1);
|
|
47
|
+
|
|
48
|
+
const account = new AccountEntity(defaultAccountDto());
|
|
49
|
+
const controller = new GetOrFindGroupsController(null, null, defaultApiClientOptions(), account);
|
|
50
|
+
const requestedIds = [defaultGroupsDtos()[0].id];
|
|
51
|
+
jest.spyOn(controller.getOrFindGroupsService, "getOrFindByIds").mockImplementation(() => {
|
|
52
|
+
throw new Error("Something went wrong!");
|
|
53
|
+
});
|
|
54
|
+
|
|
55
|
+
await expect(() => controller.exec(requestedIds)).rejects.toThrow();
|
|
56
|
+
});
|
|
57
|
+
|
|
58
|
+
it("Should assert its parameter.", async () => {
|
|
59
|
+
expect.assertions(1);
|
|
60
|
+
|
|
61
|
+
const account = new AccountEntity(defaultAccountDto());
|
|
62
|
+
const controller = new GetOrFindGroupsController(null, null, defaultApiClientOptions(), account);
|
|
63
|
+
|
|
64
|
+
await expect(() => controller.exec(["not-a-uuid"])).rejects.toThrow(
|
|
65
|
+
"The given parameter is not a valid array of uuid",
|
|
66
|
+
);
|
|
67
|
+
});
|
|
68
|
+
});
|
|
69
|
+
});
|
|
@@ -0,0 +1,62 @@
|
|
|
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 GetOrFindGroupsUsersService from "../../service/group/getOrFindGroupsUsersService";
|
|
15
|
+
import { assertUuid } from "../../utils/assertions";
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Controller for the `passbolt.groups_users.get-by-group-id` event. Returns the members of the group
|
|
19
|
+
* matching the given id, served from the local storage cache when available and otherwise fetched
|
|
20
|
+
* from the API.
|
|
21
|
+
*/
|
|
22
|
+
class GetOrFindGroupsUsersController {
|
|
23
|
+
/**
|
|
24
|
+
* Constructor.
|
|
25
|
+
* @param {Worker} worker The associated worker.
|
|
26
|
+
* @param {string} requestId The associated request id.
|
|
27
|
+
* @param {ApiClientOptions} apiClientOptions The api client options.
|
|
28
|
+
* @param {AccountEntity} account The user account.
|
|
29
|
+
*/
|
|
30
|
+
constructor(worker, requestId, apiClientOptions, account) {
|
|
31
|
+
this.worker = worker;
|
|
32
|
+
this.requestId = requestId;
|
|
33
|
+
this.getOrFindGroupsUsersService = new GetOrFindGroupsUsersService(account, apiClientOptions);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Controller executor.
|
|
38
|
+
* @param {string} groupId The id of the group whose members are requested.
|
|
39
|
+
* @returns {Promise<void>}
|
|
40
|
+
*/
|
|
41
|
+
async _exec(groupId) {
|
|
42
|
+
try {
|
|
43
|
+
const result = await this.exec(groupId);
|
|
44
|
+
this.worker.port.emit(this.requestId, "SUCCESS", result);
|
|
45
|
+
} catch (error) {
|
|
46
|
+
console.error(error);
|
|
47
|
+
this.worker.port.emit(this.requestId, "ERROR", error);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* Find all the members of the group matching the given id.
|
|
53
|
+
* @param {string} groupId The id of the group whose members are requested.
|
|
54
|
+
* @returns {Promise<GroupsUsersCollection>}
|
|
55
|
+
*/
|
|
56
|
+
async exec(groupId) {
|
|
57
|
+
assertUuid(groupId);
|
|
58
|
+
return this.getOrFindGroupsUsersService.getOrFindByGroupId(groupId);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
export default GetOrFindGroupsUsersController;
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Passbolt ~ Open source password manager for teams
|
|
3
|
+
* Copyright (c) Passbolt SA (https://www.passbolt.com)
|
|
4
|
+
*
|
|
5
|
+
* Licensed under GNU Affero General Public License version 3 of the or any later version.
|
|
6
|
+
* For full copyright and license information, please see the LICENSE.txt
|
|
7
|
+
* Redistributions of files must retain the above copyright notice.
|
|
8
|
+
*
|
|
9
|
+
* @copyright Copyright (c) Passbolt SA (https://www.passbolt.com)
|
|
10
|
+
* @license https://opensource.org/licenses/AGPL-3.0 AGPL License
|
|
11
|
+
* @link https://www.passbolt.com Passbolt(tm)
|
|
12
|
+
* @since 5.13.0
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
import AccountEntity from "../../model/entity/account/accountEntity";
|
|
16
|
+
import { defaultAccountDto } from "../../model/entity/account/accountEntity.test.data";
|
|
17
|
+
import { defaultApiClientOptions } from "passbolt-styleguide/src/shared/lib/apiClient/apiClientOptions.test.data";
|
|
18
|
+
import GetOrFindGroupsUsersController from "./getOrFindGroupsUsersController";
|
|
19
|
+
import GroupsUsersCollection from "passbolt-styleguide/src/shared/models/entity/groupUser/groupsUsersCollection";
|
|
20
|
+
import { defaultGroupsDtos } from "passbolt-styleguide/src/shared/models/entity/group/groupsCollection.test.data";
|
|
21
|
+
|
|
22
|
+
beforeEach(() => {
|
|
23
|
+
jest.clearAllMocks();
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
describe("GetOrFindGroupsUsersController", () => {
|
|
27
|
+
describe("::exec", () => {
|
|
28
|
+
it("Should retrieve the members of the requested group.", async () => {
|
|
29
|
+
expect.assertions(3);
|
|
30
|
+
|
|
31
|
+
const account = new AccountEntity(defaultAccountDto());
|
|
32
|
+
const groupsDto = defaultGroupsDtos(1, { withGroupsUsers: 3 });
|
|
33
|
+
const targetGroup = groupsDto[0];
|
|
34
|
+
const groupsUsersCollection = new GroupsUsersCollection(targetGroup.groups_users);
|
|
35
|
+
const controller = new GetOrFindGroupsUsersController(null, null, defaultApiClientOptions(), account);
|
|
36
|
+
jest
|
|
37
|
+
.spyOn(controller.getOrFindGroupsUsersService, "getOrFindByGroupId")
|
|
38
|
+
.mockImplementation(() => groupsUsersCollection);
|
|
39
|
+
|
|
40
|
+
const result = await controller.exec(targetGroup.id);
|
|
41
|
+
|
|
42
|
+
expect(result).toBeInstanceOf(GroupsUsersCollection);
|
|
43
|
+
expect(result).toStrictEqual(groupsUsersCollection);
|
|
44
|
+
expect(controller.getOrFindGroupsUsersService.getOrFindByGroupId).toHaveBeenCalledWith(targetGroup.id);
|
|
45
|
+
});
|
|
46
|
+
|
|
47
|
+
it("Should let error been thrown from the service if any.", async () => {
|
|
48
|
+
expect.assertions(1);
|
|
49
|
+
|
|
50
|
+
const account = new AccountEntity(defaultAccountDto());
|
|
51
|
+
const controller = new GetOrFindGroupsUsersController(null, null, defaultApiClientOptions(), account);
|
|
52
|
+
const groupId = defaultGroupsDtos()[0].id;
|
|
53
|
+
jest.spyOn(controller.getOrFindGroupsUsersService, "getOrFindByGroupId").mockImplementation(() => {
|
|
54
|
+
throw new Error("Something went wrong!");
|
|
55
|
+
});
|
|
56
|
+
|
|
57
|
+
await expect(() => controller.exec(groupId)).rejects.toThrow();
|
|
58
|
+
});
|
|
59
|
+
|
|
60
|
+
it("Should assert its parameter.", async () => {
|
|
61
|
+
expect.assertions(1);
|
|
62
|
+
|
|
63
|
+
const account = new AccountEntity(defaultAccountDto());
|
|
64
|
+
const controller = new GetOrFindGroupsUsersController(null, null, defaultApiClientOptions(), account);
|
|
65
|
+
|
|
66
|
+
await expect(() => controller.exec("not-a-uuid")).rejects.toThrow("The given parameter is not a valid UUID");
|
|
67
|
+
});
|
|
68
|
+
});
|
|
69
|
+
});
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
* @since 5.11.0
|
|
13
13
|
*/
|
|
14
14
|
import CreateGroupService from "../../service/group/createGroupService";
|
|
15
|
-
import GroupEntity from "
|
|
15
|
+
import GroupEntity from "passbolt-styleguide/src/shared/models/entity/group/groupEntity";
|
|
16
16
|
|
|
17
17
|
class GroupCreateController {
|
|
18
18
|
/**
|
|
@@ -16,7 +16,7 @@ import { defaultAccountDto } from "../../model/entity/account/accountEntity.test
|
|
|
16
16
|
import { defaultApiClientOptions } from "passbolt-styleguide/src/shared/lib/apiClient/apiClientOptions.test.data";
|
|
17
17
|
import GroupCreateController from "./groupCreateController";
|
|
18
18
|
import { defaultGroupDto } from "passbolt-styleguide/src/shared/models/entity/group/groupEntity.test.data";
|
|
19
|
-
import GroupEntity from "
|
|
19
|
+
import GroupEntity from "passbolt-styleguide/src/shared/models/entity/group/groupEntity";
|
|
20
20
|
|
|
21
21
|
describe("GroupCreateController", () => {
|
|
22
22
|
let controller, account, apiClientOptions;
|
|
@@ -15,7 +15,7 @@ import GetPassphraseService from "../../service/passphrase/getPassphraseService"
|
|
|
15
15
|
import i18n from "../../sdk/i18n";
|
|
16
16
|
import ProgressService from "../../service/progress/progressService";
|
|
17
17
|
import GroupUpdateService from "../../service/group/groupUpdateService";
|
|
18
|
-
import GroupEntity from "
|
|
18
|
+
import GroupEntity from "passbolt-styleguide/src/shared/models/entity/group/groupEntity";
|
|
19
19
|
|
|
20
20
|
class GroupsUpdateController {
|
|
21
21
|
/**
|
package/src/all/background_page/controller/group/updateAllGroupsLocalStorageController.test.js
CHANGED
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
*/
|
|
14
14
|
|
|
15
15
|
import { defaultApiClientOptions } from "passbolt-styleguide/src/shared/lib/apiClient/apiClientOptions.test.data";
|
|
16
|
-
import GroupsCollection from "
|
|
16
|
+
import GroupsCollection from "passbolt-styleguide/src/shared/models/entity/group/groupsCollection";
|
|
17
17
|
import AccountEntity from "../../model/entity/account/accountEntity";
|
|
18
18
|
import { defaultAccountDto } from "../../model/entity/account/accountEntity.test.data";
|
|
19
19
|
import UpdateAllGroupsLocalStorageController from "./updateAllGroupsLocalStorageController";
|
|
@@ -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
|
+
import Keyring from "../../model/keyring";
|
|
15
|
+
|
|
16
|
+
class SynchroniseKeyringController {
|
|
17
|
+
/**
|
|
18
|
+
* SynchroniseKeyringController constructor.
|
|
19
|
+
* @param {Worker} worker
|
|
20
|
+
* @param {string} requestId uuid
|
|
21
|
+
*/
|
|
22
|
+
constructor(worker, requestId) {
|
|
23
|
+
this.worker = worker;
|
|
24
|
+
this.requestId = requestId;
|
|
25
|
+
this.keyring = new Keyring();
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Wrapper of exec function to run it with worker.
|
|
30
|
+
* @returns {Promise<void>}
|
|
31
|
+
*/
|
|
32
|
+
async _exec() {
|
|
33
|
+
try {
|
|
34
|
+
await this.exec();
|
|
35
|
+
this.worker.port.emit(this.requestId, "SUCCESS");
|
|
36
|
+
} catch (error) {
|
|
37
|
+
console.error(error);
|
|
38
|
+
this.worker.port.emit(this.requestId, "ERROR", error);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Synchronises the keyring with the API.
|
|
44
|
+
* @returns {Promise<void>}
|
|
45
|
+
*/
|
|
46
|
+
async exec() {
|
|
47
|
+
await this.keyring.sync();
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
export default SynchroniseKeyringController;
|