@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-05-13 17:00:38
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 internalPermissionObjects = await getInternalPermissionObjects(originalPermissionSetId);
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.15",
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": "60922001047bf7270aaca51702a3f3541a6b0516"
15
+ "gitHead": "efa1f5bc5a03e09374141b10f65eaf269283e4d7"
16
16
  }