@steedos/standard-permission 2.5.3-beta.15 → 2.5.3-beta.18
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.
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* @Author: sunhaolin@hotoa.com
|
|
3
3
|
* @Date: 2022-05-26 16:56:54
|
|
4
4
|
* @LastEditors: sunhaolin@hotoa.com
|
|
5
|
-
* @LastEditTime: 2023-
|
|
5
|
+
* @LastEditTime: 2023-06-13 17:32:29
|
|
6
6
|
* @Description: 复制已有简档来创建新简档
|
|
7
7
|
* 使用mongodb的事务处理,保证数据的一致性
|
|
8
8
|
* 复制对象包括:简档、对象权限、字段权限、选项卡权限
|
|
@@ -121,9 +121,7 @@ router.post('/api/permission/permission_set/copy', core.requireAuthentication, a
|
|
|
121
121
|
if (newPermissionSet) {
|
|
122
122
|
const { _id: newPermissionSetId, name: newPermissionSetName } = newPermissionSet;
|
|
123
123
|
// 对象权限数据来源于两个部分,1、内存 2、数据库
|
|
124
|
-
const
|
|
125
|
-
const dbPermissionObjects = await poObj.directFind({ filters: [['space', '=', spaceId], ['permission_set_id', '=', originalPermissionSetId]] });
|
|
126
|
-
const originalPermissionObjects = getCombinedPermissionObjects(internalPermissionObjects, dbPermissionObjects);
|
|
124
|
+
const originalPermissionObjects = await poObj.find({ filters: [['space', '=', spaceId], ['permission_set_id', '=', originalPermissionSetId]] }, userSession);
|
|
127
125
|
const newPermissionObjects = []
|
|
128
126
|
const newPermissionFields = []
|
|
129
127
|
// 遍历原有的对象权限
|
|
@@ -252,24 +250,6 @@ async function getInternalPermissionObjects(permissionSetId) {
|
|
|
252
250
|
}
|
|
253
251
|
return objectsPermissions;
|
|
254
252
|
}
|
|
255
|
-
// 合并内存中的对象权限和数据库中的对象权限
|
|
256
|
-
// 如果dbPermissionObjects和internalPermissionObjects中permission_set_id存在相同的值,则以dbPermissionObjects中数据为准
|
|
257
|
-
function getCombinedPermissionObjects(internalPermissionObjects, dbPermissionObjects) {
|
|
258
|
-
const dbPermissionObjectsIds = _.pluck(dbPermissionObjects, 'permission_set_id');
|
|
259
|
-
const internalPermissionObjectsIds = _.pluck(internalPermissionObjects, 'permission_set_id');
|
|
260
|
-
const sameIds = _.intersection(dbPermissionObjectsIds, internalPermissionObjectsIds);
|
|
261
|
-
if (sameIds.length > 0) {
|
|
262
|
-
for (const sameId of sameIds) {
|
|
263
|
-
const dbPermissionObject = _.findWhere(dbPermissionObjects, { permission_set_id: sameId });
|
|
264
|
-
const internalPermissionObject = _.findWhere(internalPermissionObjects, { permission_set_id: sameId });
|
|
265
|
-
if (dbPermissionObject && internalPermissionObject) {
|
|
266
|
-
const index = internalPermissionObjects.indexOf(internalPermissionObject);
|
|
267
|
-
internalPermissionObjects.splice(index, 1, dbPermissionObject);
|
|
268
|
-
}
|
|
269
|
-
}
|
|
270
|
-
}
|
|
271
|
-
return [...internalPermissionObjects, ...dbPermissionObjects];
|
|
272
|
-
}
|
|
273
253
|
|
|
274
254
|
async function getFieldPermission(apiName) {
|
|
275
255
|
const schema = objectql.getSteedosSchema();
|
|
@@ -105,7 +105,7 @@ module.exports = {
|
|
|
105
105
|
filters: [
|
|
106
106
|
['_id', '=', permissionSetId],
|
|
107
107
|
]
|
|
108
|
-
})[0]
|
|
108
|
+
}))[0];
|
|
109
109
|
if (permissionSetDoc) {
|
|
110
110
|
// 替换this.query.filters中全部的的permission_set_id为permissionSetDoc.name
|
|
111
111
|
this.query.filters = this.query.filters.replace(regex, permissionSetDoc.name).replace(`permission_set_id eq '${permissionSetDoc.name}'`, `(permission_set_id eq '${permissionSetDoc.name}') or (permission_set_id eq '${permissionSetId}')`);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@steedos/standard-permission",
|
|
3
|
-
"version": "2.5.3-beta.
|
|
3
|
+
"version": "2.5.3-beta.18",
|
|
4
4
|
"main": "package.service.js",
|
|
5
5
|
"private": false,
|
|
6
6
|
"publishConfig": {
|
|
@@ -12,5 +12,5 @@
|
|
|
12
12
|
"description": "steedos package",
|
|
13
13
|
"repository": {},
|
|
14
14
|
"license": "MIT",
|
|
15
|
-
"gitHead": "
|
|
15
|
+
"gitHead": "efa1f5bc5a03e09374141b10f65eaf269283e4d7"
|
|
16
16
|
}
|