@steedos/objectql 2.2.55-beta.9 → 2.2.56
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/lib/actions/field_updates.js +36 -50
- package/lib/actions/field_updates.js.map +1 -1
- package/lib/actions/workflow_notifications.d.ts +0 -12
- package/lib/actions/workflow_notifications.js +14 -31
- package/lib/actions/workflow_notifications.js.map +1 -1
- package/lib/actions/workflow_rule.js +33 -54
- package/lib/actions/workflow_rule.js.map +1 -1
- package/lib/broker.js +5 -5
- package/lib/broker.js.map +1 -1
- package/lib/driver/driver.d.ts +0 -38
- package/lib/driver/field-encrytion/index.js +0 -7
- package/lib/driver/field-encrytion/index.js.map +1 -1
- package/lib/driver/field-encrytion/mongosharedconst.js +4 -20
- package/lib/driver/field-encrytion/mongosharedconst.js.map +1 -1
- package/lib/driver/fieldDBType.js +0 -4
- package/lib/driver/fieldDBType.js.map +1 -1
- package/lib/driver/format.d.ts +0 -12
- package/lib/driver/format.js +0 -12
- package/lib/driver/format.js.map +1 -1
- package/lib/driver/metadata.js +2 -10
- package/lib/driver/metadata.js.map +1 -1
- package/lib/driver/meteorMongo.js +32 -36
- package/lib/driver/meteorMongo.js.map +1 -1
- package/lib/driver/mongo.d.ts +0 -3
- package/lib/driver/mongo.js +59 -64
- package/lib/driver/mongo.js.map +1 -1
- package/lib/driver/mysql.js +1 -8
- package/lib/driver/mysql.js.map +1 -1
- package/lib/driver/oracle.js +3 -11
- package/lib/driver/oracle.js.map +1 -1
- package/lib/driver/postgres.js +1 -8
- package/lib/driver/postgres.js.map +1 -1
- package/lib/driver/sqlite3.js +1 -8
- package/lib/driver/sqlite3.js.map +1 -1
- package/lib/driver/sqlserver.js +3 -10
- package/lib/driver/sqlserver.js.map +1 -1
- package/lib/dynamic-load/actions.js +26 -27
- package/lib/dynamic-load/actions.js.map +1 -1
- package/lib/dynamic-load/approval_process.js +0 -1
- package/lib/dynamic-load/approval_process.js.map +1 -1
- package/lib/dynamic-load/button.js +13 -13
- package/lib/dynamic-load/button.js.map +1 -1
- package/lib/dynamic-load/chart.js +3 -3
- package/lib/dynamic-load/chart.js.map +1 -1
- package/lib/dynamic-load/client_script.js +0 -24
- package/lib/dynamic-load/client_script.js.map +1 -1
- package/lib/dynamic-load/field.js +13 -13
- package/lib/dynamic-load/field.js.map +1 -1
- package/lib/dynamic-load/layout.js +16 -16
- package/lib/dynamic-load/layout.js.map +1 -1
- package/lib/dynamic-load/listview.js +13 -13
- package/lib/dynamic-load/listview.js.map +1 -1
- package/lib/dynamic-load/object_translations.js +8 -20
- package/lib/dynamic-load/object_translations.js.map +1 -1
- package/lib/dynamic-load/package.d.ts +0 -8
- package/lib/dynamic-load/package.js +83 -95
- package/lib/dynamic-load/package.js.map +1 -1
- package/lib/dynamic-load/page.js +3 -3
- package/lib/dynamic-load/page.js.map +1 -1
- package/lib/dynamic-load/permission.js +24 -25
- package/lib/dynamic-load/permission.js.map +1 -1
- package/lib/dynamic-load/permissionset.js +22 -23
- package/lib/dynamic-load/permissionset.js.map +1 -1
- package/lib/dynamic-load/preload_data.js +73 -73
- package/lib/dynamic-load/preload_data.js.map +1 -1
- package/lib/dynamic-load/profile.js +22 -25
- package/lib/dynamic-load/profile.js.map +1 -1
- package/lib/dynamic-load/query.js +3 -3
- package/lib/dynamic-load/query.js.map +1 -1
- package/lib/dynamic-load/restrictionRules.js +3 -3
- package/lib/dynamic-load/restrictionRules.js.map +1 -1
- package/lib/dynamic-load/shareRules.js +3 -3
- package/lib/dynamic-load/shareRules.js.map +1 -1
- package/lib/dynamic-load/tab.js +4 -4
- package/lib/dynamic-load/tab.js.map +1 -1
- package/lib/dynamic-load/tabs.d.ts +0 -3
- package/lib/dynamic-load/tabs.js +4 -7
- package/lib/dynamic-load/tabs.js.map +1 -1
- package/lib/dynamic-load/translations.js +17 -28
- package/lib/dynamic-load/translations.js.map +1 -1
- package/lib/dynamic-load/trigger.d.ts +0 -5
- package/lib/dynamic-load/trigger.js +0 -29
- package/lib/dynamic-load/trigger.js.map +1 -1
- package/lib/errors/index.js +1 -25
- package/lib/errors/index.js.map +1 -1
- package/lib/formula/core.d.ts +0 -63
- package/lib/formula/core.js +94 -211
- package/lib/formula/core.js.map +1 -1
- package/lib/formula/field_formula.d.ts +0 -23
- package/lib/formula/field_formula.js +12 -36
- package/lib/formula/field_formula.js.map +1 -1
- package/lib/formula/index.js +15 -22
- package/lib/formula/index.js.map +1 -1
- package/lib/formula/params.js +23 -48
- package/lib/formula/params.js.map +1 -1
- package/lib/formula/recompute.d.ts +0 -8
- package/lib/formula/recompute.js +32 -45
- package/lib/formula/recompute.js.map +1 -1
- package/lib/formula/simple_params.js +10 -10
- package/lib/formula/simple_params.js.map +1 -1
- package/lib/formula/type.d.ts +0 -52
- package/lib/formula/type.js +0 -4
- package/lib/formula/type.js.map +1 -1
- package/lib/formula/util.d.ts +0 -69
- package/lib/formula/util.js +0 -70
- package/lib/formula/util.js.map +1 -1
- package/lib/index.js +0 -7
- package/lib/index.js.map +1 -1
- package/lib/metadata-register/_base.js +13 -13
- package/lib/metadata-register/_base.js.map +1 -1
- package/lib/metadata-register/app.js +8 -8
- package/lib/metadata-register/app.js.map +1 -1
- package/lib/metadata-register/chart.js +1 -1
- package/lib/metadata-register/index.js +49 -49
- package/lib/metadata-register/index.js.map +1 -1
- package/lib/metadata-register/layout.js +10 -10
- package/lib/metadata-register/layout.js.map +1 -1
- package/lib/metadata-register/object.js +10 -15
- package/lib/metadata-register/object.js.map +1 -1
- package/lib/metadata-register/page.js +1 -1
- package/lib/metadata-register/permissionFields.js +1 -1
- package/lib/metadata-register/permissionset.js +6 -6
- package/lib/metadata-register/permissionset.js.map +1 -1
- package/lib/metadata-register/process.js +1 -8
- package/lib/metadata-register/process.js.map +1 -1
- package/lib/metadata-register/processTrigger.d.ts +0 -11
- package/lib/metadata-register/processTrigger.js +1 -12
- package/lib/metadata-register/processTrigger.js.map +1 -1
- package/lib/metadata-register/profile.js +6 -6
- package/lib/metadata-register/profile.js.map +1 -1
- package/lib/metadata-register/query.js +1 -1
- package/lib/metadata-register/restrictionRules.js +1 -1
- package/lib/metadata-register/shareRules.js +1 -1
- package/lib/metadata-register/tab.js +1 -1
- package/lib/metadata-register/tabs.d.ts +0 -3
- package/lib/metadata-register/tabs.js +10 -13
- package/lib/metadata-register/tabs.js.map +1 -1
- package/lib/services/datasourceServiceFactory.js +5 -8
- package/lib/services/datasourceServiceFactory.js.map +1 -1
- package/lib/services/helpers/graphql/consts.js +0 -7
- package/lib/services/helpers/graphql/consts.js.map +1 -1
- package/lib/services/helpers/graphql/getPrimaryFieldType.d.ts +0 -4
- package/lib/services/helpers/graphql/getPrimaryFieldType.js +0 -12
- package/lib/services/helpers/graphql/getPrimaryFieldType.js.map +1 -1
- package/lib/services/helpers/graphql/getQueryFields.js +0 -4
- package/lib/services/helpers/graphql/getQueryFields.js.map +1 -1
- package/lib/services/helpers/graphql/index.js +84 -108
- package/lib/services/helpers/graphql/index.js.map +1 -1
- package/lib/services/objectService.js +127 -179
- package/lib/services/objectService.js.map +1 -1
- package/lib/services/objectServiceDispatcher.js +87 -87
- package/lib/services/objectServiceDispatcher.js.map +1 -1
- package/lib/services/objectServiceFactory.js +4 -4
- package/lib/services/objectServiceFactory.js.map +1 -1
- package/lib/summary/core.d.ts +0 -68
- package/lib/summary/core.js +46 -130
- package/lib/summary/core.js.map +1 -1
- package/lib/summary/field_summary.d.ts +0 -16
- package/lib/summary/field_summary.js +10 -27
- package/lib/summary/field_summary.js.map +1 -1
- package/lib/summary/index.d.ts +0 -5
- package/lib/summary/index.js +10 -28
- package/lib/summary/index.js.map +1 -1
- package/lib/summary/recompute.d.ts +0 -8
- package/lib/summary/recompute.js +8 -23
- package/lib/summary/recompute.js.map +1 -1
- package/lib/summary/type.d.ts +0 -17
- package/lib/summary/type.js +0 -13
- package/lib/summary/type.js.map +1 -1
- package/lib/typeorm/driver.js +69 -77
- package/lib/typeorm/driver.js.map +1 -1
- package/lib/typeorm/util.js +0 -4
- package/lib/typeorm/util.js.map +1 -1
- package/lib/types/action.js +1 -1
- package/lib/types/app.js +38 -43
- package/lib/types/app.js.map +1 -1
- package/lib/types/config.js +11 -15
- package/lib/types/config.js.map +1 -1
- package/lib/types/connection.d.ts +0 -10
- package/lib/types/connection.js +9 -16
- package/lib/types/connection.js.map +1 -1
- package/lib/types/dashboard.js +1 -1
- package/lib/types/datasource.d.ts +0 -3
- package/lib/types/datasource.js +97 -110
- package/lib/types/datasource.js.map +1 -1
- package/lib/types/field.js +3 -33
- package/lib/types/field.js.map +1 -1
- package/lib/types/field_permission.js +7 -7
- package/lib/types/field_permission.js.map +1 -1
- package/lib/types/list_view.js +2 -2
- package/lib/types/object.d.ts +0 -38
- package/lib/types/object.js +282 -389
- package/lib/types/object.js.map +1 -1
- package/lib/types/object_dynamic_load.js +39 -44
- package/lib/types/object_dynamic_load.js.map +1 -1
- package/lib/types/object_events.js +4 -14
- package/lib/types/object_events.js.map +1 -1
- package/lib/types/object_layouts.js +4 -4
- package/lib/types/object_layouts.js.map +1 -1
- package/lib/types/object_permission.js +2 -2
- package/lib/types/query.d.ts +0 -12
- package/lib/types/report.js +1 -1
- package/lib/types/restrictionRule.js +6 -6
- package/lib/types/restrictionRule.js.map +1 -1
- package/lib/types/schema.d.ts +0 -14
- package/lib/types/schema.js +14 -39
- package/lib/types/schema.js.map +1 -1
- package/lib/types/shareRule.js +6 -6
- package/lib/types/shareRule.js.map +1 -1
- package/lib/types/trigger.js +1 -1
- package/lib/types/validation_rules.js +10 -15
- package/lib/types/validation_rules.js.map +1 -1
- package/lib/util/index.d.ts +0 -12
- package/lib/util/index.js +10 -50
- package/lib/util/index.js.map +1 -1
- package/lib/util/locale.d.ts +0 -6
- package/lib/util/locale.js +0 -6
- package/lib/util/locale.js.map +1 -1
- package/lib/util/suffix.js +4 -12
- package/lib/util/suffix.js.map +1 -1
- package/package.json +13 -13
package/lib/types/object.js
CHANGED
|
@@ -22,23 +22,7 @@ var field_permission_1 = require("./field_permission");
|
|
|
22
22
|
var dynamic_load_1 = require("../dynamic-load");
|
|
23
23
|
var cachers_1 = require("@steedos/cachers");
|
|
24
24
|
var clone = require('clone');
|
|
25
|
-
// 主子表有层级限制,超过3层就报错,该函数判断当前对象作为主表对象往下的层级最多不越过3层,
|
|
26
|
-
// 其3层指的是A-B-C-D,它们都有父子关系,A作为最顶层,该对象上不可以再创建主表子表关系字段,但是B、C、D上可以;
|
|
27
|
-
// 或者如果当前对象上创建的主表子表关系字段指向的对象是D,那么也会超过3层的层级限制;
|
|
28
|
-
// 又或者中间加一层M先连接B再连接C,形成A-B-M-C-D,也会超过3层的层级限制;
|
|
29
25
|
exports.MAX_MASTER_DETAIL_LEAVE = 3;
|
|
30
|
-
/**
|
|
31
|
-
* 判断传入的paths中每条path下是否有重复对象名称,返回第一个重复的对象名称
|
|
32
|
-
* 有可能传入的paths有多个链条,只要其中任何一个链条上有同名对象名说明异常,返回第一个异常的同名对象名即可
|
|
33
|
-
* 比如传入下面示例中的paths,表示当前对象b向下有4条主子关系链,将返回第三条链中的重复对象名b
|
|
34
|
-
* @param paths 对象上getDetailPaths或getMasterPaths函数返回的当前对象向下或向上取主表子表关联对象名称列表链条
|
|
35
|
-
* [
|
|
36
|
-
[ 'b', 't1', 't2' ],
|
|
37
|
-
[ 'b', 't1', 'm1', 'm2' ],
|
|
38
|
-
[ 'b', 't1', 'm2', 'b' ],
|
|
39
|
-
[ 'b', 'c', 'd' ]
|
|
40
|
-
* ]
|
|
41
|
-
*/
|
|
42
26
|
var getRepeatObjectNameFromPaths = function (paths) {
|
|
43
27
|
var e_1, _a;
|
|
44
28
|
var repeatItem;
|
|
@@ -67,14 +51,14 @@ var getRepeatObjectNameFromPaths = function (paths) {
|
|
|
67
51
|
return repeatItem;
|
|
68
52
|
};
|
|
69
53
|
exports.getRepeatObjectNameFromPaths = getRepeatObjectNameFromPaths;
|
|
70
|
-
var SteedosObjectProperties =
|
|
54
|
+
var SteedosObjectProperties = (function () {
|
|
71
55
|
function SteedosObjectProperties() {
|
|
72
56
|
}
|
|
73
57
|
return SteedosObjectProperties;
|
|
74
58
|
}());
|
|
75
59
|
exports._TRIGGERKEYS = ['beforeFind', 'beforeInsert', 'beforeUpdate', 'beforeDelete', 'afterFind', 'afterCount', 'afterFindOne', 'afterInsert', 'afterUpdate', 'afterDelete', 'beforeAggregate', 'afterAggregate'];
|
|
76
60
|
var properties = ['label', 'icon', 'enable_search', 'sidebar', 'is_enable', 'enable_files', 'enable_tasks', 'enable_notes', 'enable_events', 'enable_api', 'enable_share', 'enable_instances', 'enable_chatter', 'enable_audit', 'enable_web_forms', 'enable_inline_edit', 'enable_approvals', 'enable_trash', 'enable_space_global', 'enable_tree', 'parent_field', 'children_field', 'enable_enhanced_lookup', 'enable_workflow', 'is_view', 'hidden', 'description', 'custom', 'owner', 'methods', '_id', 'relatedList', 'fields_serial_number', "is_enable", "in_development", "version", "paging"];
|
|
77
|
-
var SteedosObjectType =
|
|
61
|
+
var SteedosObjectType = (function (_super) {
|
|
78
62
|
tslib_1.__extends(SteedosObjectType, _super);
|
|
79
63
|
function SteedosObjectType(object_name, datasource, config) {
|
|
80
64
|
var _this = _super.call(this) || this;
|
|
@@ -123,7 +107,6 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
123
107
|
permission.name = name;
|
|
124
108
|
_this.setPermission(permission);
|
|
125
109
|
});
|
|
126
|
-
//TODO remove ; 目前为了兼容现有object的定义保留
|
|
127
110
|
_.each(config.permission_set, function (permission, name) {
|
|
128
111
|
permission.name = name;
|
|
129
112
|
_this.setPermission(permission);
|
|
@@ -238,10 +221,10 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
238
221
|
switch (_a.label) {
|
|
239
222
|
case 0:
|
|
240
223
|
actionFullName = "objects.".concat(action);
|
|
241
|
-
return [4
|
|
224
|
+
return [4, this.schema.metadataBroker.call(actionFullName, params)];
|
|
242
225
|
case 1:
|
|
243
226
|
result = _a.sent();
|
|
244
|
-
return [2
|
|
227
|
+
return [2, result];
|
|
245
228
|
}
|
|
246
229
|
});
|
|
247
230
|
});
|
|
@@ -296,7 +279,6 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
296
279
|
this.registerTrigger(trigger);
|
|
297
280
|
};
|
|
298
281
|
SteedosObjectType.prototype.registerTrigger = function (trigger) {
|
|
299
|
-
//如果是meteor mongo 则不做任何处理
|
|
300
282
|
if (!_.isString(this._datasource.driver) || this._datasource.driver != datasource_1.SteedosDatabaseDriverType.MeteorMongo || trigger.when === 'beforeFind' || trigger.when === 'afterFind' || trigger.when === 'afterFindOne' || trigger.when === 'afterCount' || trigger.when === 'beforeAggregate' || trigger.when === 'afterAggregate') {
|
|
301
283
|
if (!trigger.todo) {
|
|
302
284
|
return;
|
|
@@ -327,10 +309,8 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
327
309
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
328
310
|
return tslib_1.__generator(this, function (_a) {
|
|
329
311
|
switch (_a.label) {
|
|
330
|
-
case 0: return [4
|
|
331
|
-
case 1:
|
|
332
|
-
// Object.setPrototypeOf(thisArg, Object.getPrototypeOf(trigger))
|
|
333
|
-
return [2 /*return*/, _a.sent()];
|
|
312
|
+
case 0: return [4, event.apply(thisArg, args)];
|
|
313
|
+
case 1: return [2, _a.sent()];
|
|
334
314
|
}
|
|
335
315
|
});
|
|
336
316
|
});
|
|
@@ -338,8 +318,8 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
338
318
|
thisArg = tslib_1.__assign(tslib_1.__assign({}, context), { object_name: object_name, datasource_name: this._datasource.name, getObject: function (object_name) {
|
|
339
319
|
return _this._schema.getObject(object_name);
|
|
340
320
|
} });
|
|
341
|
-
return [4
|
|
342
|
-
case 1: return [2
|
|
321
|
+
return [4, todoWrapper.call(thisArg)];
|
|
322
|
+
case 1: return [2, _a.sent()];
|
|
343
323
|
}
|
|
344
324
|
});
|
|
345
325
|
});
|
|
@@ -351,34 +331,34 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
351
331
|
switch (_c.label) {
|
|
352
332
|
case 0:
|
|
353
333
|
triggers = this._triggersQueue[when];
|
|
354
|
-
if (!triggers) return [3
|
|
334
|
+
if (!triggers) return [3, 4];
|
|
355
335
|
triggerKeys = _.keys(triggers);
|
|
356
336
|
index = 0;
|
|
357
337
|
_c.label = 1;
|
|
358
338
|
case 1:
|
|
359
|
-
if (!(index < triggerKeys.length)) return [3
|
|
339
|
+
if (!(index < triggerKeys.length)) return [3, 4];
|
|
360
340
|
trigger = triggers[triggerKeys[index]];
|
|
361
|
-
return [4
|
|
341
|
+
return [4, this.runTirgger(trigger, context)];
|
|
362
342
|
case 2:
|
|
363
343
|
_c.sent();
|
|
364
344
|
_c.label = 3;
|
|
365
345
|
case 3:
|
|
366
346
|
index++;
|
|
367
|
-
return [3
|
|
347
|
+
return [3, 1];
|
|
368
348
|
case 4:
|
|
369
349
|
wildcardListeners = (0, dynamic_load_1.getPatternListeners)(this.name);
|
|
370
|
-
if (!wildcardListeners) return [3
|
|
350
|
+
if (!wildcardListeners) return [3, 8];
|
|
371
351
|
_a = [];
|
|
372
352
|
for (_b in wildcardListeners)
|
|
373
353
|
_a.push(_b);
|
|
374
354
|
_i = 0;
|
|
375
355
|
_c.label = 5;
|
|
376
356
|
case 5:
|
|
377
|
-
if (!(_i < _a.length)) return [3
|
|
357
|
+
if (!(_i < _a.length)) return [3, 8];
|
|
378
358
|
key = _a[_i];
|
|
379
|
-
if (!Object.prototype.hasOwnProperty.call(wildcardListeners, key)) return [3
|
|
359
|
+
if (!Object.prototype.hasOwnProperty.call(wildcardListeners, key)) return [3, 7];
|
|
380
360
|
listener = wildcardListeners[key];
|
|
381
|
-
if (!(listener && listener[when])) return [3
|
|
361
|
+
if (!(listener && listener[when])) return [3, 7];
|
|
382
362
|
triggerConfig = {
|
|
383
363
|
name: "".concat(key, "_").concat(when),
|
|
384
364
|
on: 'server',
|
|
@@ -386,14 +366,14 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
386
366
|
todo: listener[when],
|
|
387
367
|
};
|
|
388
368
|
trigger = new _1.SteedosTriggerType(triggerConfig);
|
|
389
|
-
return [4
|
|
369
|
+
return [4, this.runTirgger(trigger, context)];
|
|
390
370
|
case 6:
|
|
391
371
|
_c.sent();
|
|
392
372
|
_c.label = 7;
|
|
393
373
|
case 7:
|
|
394
374
|
_i++;
|
|
395
|
-
return [3
|
|
396
|
-
case 8: return [2
|
|
375
|
+
return [3, 5];
|
|
376
|
+
case 8: return [2];
|
|
397
377
|
}
|
|
398
378
|
});
|
|
399
379
|
});
|
|
@@ -451,7 +431,7 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
451
431
|
case 0:
|
|
452
432
|
triggers = this.getTriggerActions(when);
|
|
453
433
|
if (_.isEmpty(triggers)) {
|
|
454
|
-
return [2
|
|
434
|
+
return [2];
|
|
455
435
|
}
|
|
456
436
|
_b.label = 1;
|
|
457
437
|
case 1:
|
|
@@ -459,11 +439,10 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
459
439
|
triggers_1 = tslib_1.__values(triggers), triggers_1_1 = triggers_1.next();
|
|
460
440
|
_b.label = 2;
|
|
461
441
|
case 2:
|
|
462
|
-
if (!!triggers_1_1.done) return [3
|
|
442
|
+
if (!!triggers_1_1.done) return [3, 5];
|
|
463
443
|
trigger = triggers_1_1.value;
|
|
464
444
|
params = (0, util_1.generateActionParams)(when, context);
|
|
465
|
-
return [4
|
|
466
|
-
//如果action trigger 下线,则只打印error
|
|
445
|
+
return [4, this._schema.metadataBroker.call("".concat(trigger.service.name, ".").concat(trigger.metadata.action), params).catch(function (error) {
|
|
467
446
|
if (error && _.isObject(error) && error.type === 'SERVICE_NOT_AVAILABLE') {
|
|
468
447
|
console.error("runTriggerActions error", error);
|
|
469
448
|
}
|
|
@@ -476,19 +455,19 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
476
455
|
_b.label = 4;
|
|
477
456
|
case 4:
|
|
478
457
|
triggers_1_1 = triggers_1.next();
|
|
479
|
-
return [3
|
|
480
|
-
case 5: return [3
|
|
458
|
+
return [3, 2];
|
|
459
|
+
case 5: return [3, 8];
|
|
481
460
|
case 6:
|
|
482
461
|
e_2_1 = _b.sent();
|
|
483
462
|
e_2 = { error: e_2_1 };
|
|
484
|
-
return [3
|
|
463
|
+
return [3, 8];
|
|
485
464
|
case 7:
|
|
486
465
|
try {
|
|
487
466
|
if (triggers_1_1 && !triggers_1_1.done && (_a = triggers_1.return)) _a.call(triggers_1);
|
|
488
467
|
}
|
|
489
468
|
finally { if (e_2) throw e_2.error; }
|
|
490
|
-
return [7
|
|
491
|
-
case 8: return [2
|
|
469
|
+
return [7];
|
|
470
|
+
case 8: return [2];
|
|
492
471
|
}
|
|
493
472
|
});
|
|
494
473
|
});
|
|
@@ -568,8 +547,8 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
568
547
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
569
548
|
return tslib_1.__generator(this, function (_a) {
|
|
570
549
|
switch (_a.label) {
|
|
571
|
-
case 0: return [4
|
|
572
|
-
case 1: return [2
|
|
550
|
+
case 0: return [4, this.callMetadataObjectServiceAction("getDetailPaths", { objectApiName: this.name })];
|
|
551
|
+
case 1: return [2, _a.sent()];
|
|
573
552
|
}
|
|
574
553
|
});
|
|
575
554
|
});
|
|
@@ -578,8 +557,8 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
578
557
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
579
558
|
return tslib_1.__generator(this, function (_a) {
|
|
580
559
|
switch (_a.label) {
|
|
581
|
-
case 0: return [4
|
|
582
|
-
case 1: return [2
|
|
560
|
+
case 0: return [4, this.callMetadataObjectServiceAction("getMasterPaths", { objectApiName: this.name })];
|
|
561
|
+
case 1: return [2, _a.sent()];
|
|
583
562
|
}
|
|
584
563
|
});
|
|
585
564
|
});
|
|
@@ -588,8 +567,8 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
588
567
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
589
568
|
return tslib_1.__generator(this, function (_a) {
|
|
590
569
|
switch (_a.label) {
|
|
591
|
-
case 0: return [4
|
|
592
|
-
case 1: return [2
|
|
570
|
+
case 0: return [4, this.callMetadataObjectServiceAction("getMaxDetailsLeave", { objectApiName: this.name, paths: paths })];
|
|
571
|
+
case 1: return [2, _a.sent()];
|
|
593
572
|
}
|
|
594
573
|
});
|
|
595
574
|
});
|
|
@@ -598,8 +577,8 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
598
577
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
599
578
|
return tslib_1.__generator(this, function (_a) {
|
|
600
579
|
switch (_a.label) {
|
|
601
|
-
case 0: return [4
|
|
602
|
-
case 1: return [2
|
|
580
|
+
case 0: return [4, this.callMetadataObjectServiceAction("getMaxMastersLeave", { objectApiName: this.name, paths: paths })];
|
|
581
|
+
case 1: return [2, _a.sent()];
|
|
603
582
|
}
|
|
604
583
|
});
|
|
605
584
|
});
|
|
@@ -648,15 +627,15 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
648
627
|
return tslib_1.__generator(this, function (_b) {
|
|
649
628
|
switch (_b.label) {
|
|
650
629
|
case 0:
|
|
651
|
-
if (!(this.datasource.driver === datasource_1.SteedosDatabaseDriverType.Mongo || this.datasource.driver === datasource_1.SteedosDatabaseDriverType.MeteorMongo)) return [3
|
|
630
|
+
if (!(this.datasource.driver === datasource_1.SteedosDatabaseDriverType.Mongo || this.datasource.driver === datasource_1.SteedosDatabaseDriverType.MeteorMongo)) return [3, 21];
|
|
652
631
|
adapter = this.datasource.adapter;
|
|
653
|
-
return [4
|
|
632
|
+
return [4, adapter.connect()];
|
|
654
633
|
case 1:
|
|
655
634
|
_b.sent();
|
|
656
635
|
collection = adapter.collection(this.name);
|
|
657
|
-
if (!(this.datasource.driver === datasource_1.SteedosDatabaseDriverType.MeteorMongo)) return [3
|
|
636
|
+
if (!(this.datasource.driver === datasource_1.SteedosDatabaseDriverType.MeteorMongo)) return [3, 3];
|
|
658
637
|
defaultAdapter = (0, datasource_1.getDataSource)('default').adapter;
|
|
659
|
-
return [4
|
|
638
|
+
return [4, defaultAdapter.connect()];
|
|
660
639
|
case 2:
|
|
661
640
|
_b.sent();
|
|
662
641
|
collection = defaultAdapter.collection(this.name);
|
|
@@ -674,7 +653,7 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
674
653
|
dropIndexNames.push(field.getIndexName());
|
|
675
654
|
}
|
|
676
655
|
}
|
|
677
|
-
if (!(indexesInfo && indexesInfo.length > 0)) return [3
|
|
656
|
+
if (!(indexesInfo && indexesInfo.length > 0)) return [3, 21];
|
|
678
657
|
_b.label = 4;
|
|
679
658
|
case 4:
|
|
680
659
|
_b.trys.push([4, 20, , 21]);
|
|
@@ -683,71 +662,57 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
683
662
|
_b.trys.push([5, 13, 14, 19]);
|
|
684
663
|
indexesInfo_1 = tslib_1.__asyncValues(indexesInfo);
|
|
685
664
|
_b.label = 6;
|
|
686
|
-
case 6: return [4
|
|
665
|
+
case 6: return [4, indexesInfo_1.next()];
|
|
687
666
|
case 7:
|
|
688
|
-
if (!(indexesInfo_1_1 = _b.sent(), !indexesInfo_1_1.done)) return [3
|
|
667
|
+
if (!(indexesInfo_1_1 = _b.sent(), !indexesInfo_1_1.done)) return [3, 12];
|
|
689
668
|
indexInfo = indexesInfo_1_1.value;
|
|
690
669
|
key = indexInfo.key;
|
|
691
670
|
delete indexInfo.key;
|
|
692
671
|
_b.label = 8;
|
|
693
672
|
case 8:
|
|
694
673
|
_b.trys.push([8, 10, , 11]);
|
|
695
|
-
return [4
|
|
674
|
+
return [4, collection.createIndex(key, indexInfo)];
|
|
696
675
|
case 9:
|
|
697
676
|
_b.sent();
|
|
698
|
-
return [3
|
|
677
|
+
return [3, 11];
|
|
699
678
|
case 10:
|
|
700
679
|
error_1 = _b.sent();
|
|
701
|
-
return [3
|
|
702
|
-
case 11: return [3
|
|
703
|
-
case 12: return [3
|
|
680
|
+
return [3, 11];
|
|
681
|
+
case 11: return [3, 6];
|
|
682
|
+
case 12: return [3, 19];
|
|
704
683
|
case 13:
|
|
705
684
|
e_3_1 = _b.sent();
|
|
706
685
|
e_3 = { error: e_3_1 };
|
|
707
|
-
return [3
|
|
686
|
+
return [3, 19];
|
|
708
687
|
case 14:
|
|
709
688
|
_b.trys.push([14, , 17, 18]);
|
|
710
|
-
if (!(indexesInfo_1_1 && !indexesInfo_1_1.done && (_a = indexesInfo_1.return))) return [3
|
|
711
|
-
return [4
|
|
689
|
+
if (!(indexesInfo_1_1 && !indexesInfo_1_1.done && (_a = indexesInfo_1.return))) return [3, 16];
|
|
690
|
+
return [4, _a.call(indexesInfo_1)];
|
|
712
691
|
case 15:
|
|
713
692
|
_b.sent();
|
|
714
693
|
_b.label = 16;
|
|
715
|
-
case 16: return [3
|
|
694
|
+
case 16: return [3, 18];
|
|
716
695
|
case 17:
|
|
717
696
|
if (e_3) throw e_3.error;
|
|
718
|
-
return [7
|
|
719
|
-
case 18: return [7
|
|
720
|
-
case 19: return [3
|
|
697
|
+
return [7];
|
|
698
|
+
case 18: return [7];
|
|
699
|
+
case 19: return [3, 21];
|
|
721
700
|
case 20:
|
|
722
701
|
error_2 = _b.sent();
|
|
723
702
|
console.error(error_2);
|
|
724
|
-
return [3
|
|
725
|
-
case 21: return [2
|
|
703
|
+
return [3, 21];
|
|
704
|
+
case 21: return [2];
|
|
726
705
|
}
|
|
727
706
|
});
|
|
728
707
|
});
|
|
729
708
|
};
|
|
730
|
-
//TODO 处理对象继承
|
|
731
709
|
SteedosObjectType.prototype.extend_TODO = function (config) {
|
|
732
710
|
var _this = this;
|
|
733
711
|
if (this.name != config.name)
|
|
734
712
|
throw new Error("You can not extend on different object");
|
|
735
|
-
// override each fields
|
|
736
713
|
_.each(config.fields, function (field, field_name) {
|
|
737
714
|
_this.setField(field_name, field);
|
|
738
715
|
});
|
|
739
|
-
// override each actions
|
|
740
|
-
// if (config.actions) {
|
|
741
|
-
// _.each(config.actions, (action) => {
|
|
742
|
-
// this.actions[action.name] = action
|
|
743
|
-
// })
|
|
744
|
-
// }
|
|
745
|
-
// override each triggers
|
|
746
|
-
// if (config.triggers) {
|
|
747
|
-
// _.each(config.triggers, (trigger) => {
|
|
748
|
-
// this.triggers[trigger.name] = trigger
|
|
749
|
-
// })
|
|
750
|
-
// }
|
|
751
716
|
};
|
|
752
717
|
SteedosObjectType.prototype.getObjectRolesPermission = function (spaceId) {
|
|
753
718
|
var globalPermission = this._datasource.getObjectRolesPermission(this._name);
|
|
@@ -759,12 +724,6 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
759
724
|
}
|
|
760
725
|
return globalPermission;
|
|
761
726
|
};
|
|
762
|
-
/**
|
|
763
|
-
* @description:
|
|
764
|
-
* @param {SteedosUserSession} userSession
|
|
765
|
-
* @param {any} rolesFieldsPermission: 如果为false, 则不计算字段集权限,提交计算效率.
|
|
766
|
-
* @return {*}
|
|
767
|
-
*/
|
|
768
727
|
SteedosObjectType.prototype.getUserObjectPermission = function (userSession, rolesFieldsPermission) {
|
|
769
728
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
770
729
|
var roles, objectRolesPermission, userObjectPermission, field_permissions, spaceId;
|
|
@@ -799,18 +758,16 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
799
758
|
field_permissions: null,
|
|
800
759
|
viewAssignCompanysRecords: [],
|
|
801
760
|
modifyAssignCompanysRecords: [],
|
|
802
|
-
// read_filters: [],
|
|
803
|
-
// edit_filters: []
|
|
804
761
|
};
|
|
805
762
|
if (_.isEmpty(roles)) {
|
|
806
763
|
throw new Error('not find user permission');
|
|
807
764
|
}
|
|
808
|
-
if (!(rolesFieldsPermission === false)) return [3
|
|
765
|
+
if (!(rolesFieldsPermission === false)) return [3, 1];
|
|
809
766
|
rolesFieldsPermission = {};
|
|
810
|
-
return [3
|
|
767
|
+
return [3, 3];
|
|
811
768
|
case 1:
|
|
812
|
-
if (!!rolesFieldsPermission) return [3
|
|
813
|
-
return [4
|
|
769
|
+
if (!!rolesFieldsPermission) return [3, 3];
|
|
770
|
+
return [4, field_permission_1.FieldPermission.getObjectFieldsPermissionGroupRole(this.name)];
|
|
814
771
|
case 2:
|
|
815
772
|
rolesFieldsPermission = _a.sent();
|
|
816
773
|
_a.label = 3;
|
|
@@ -904,9 +861,9 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
904
861
|
userObjectPermission.unrelated_objects = userObjectPermission.unrelated_objects || [];
|
|
905
862
|
spaceId = userSession.spaceId;
|
|
906
863
|
if ((0, util_1.isTemplateSpace)(spaceId)) {
|
|
907
|
-
return [2
|
|
864
|
+
return [2, Object.assign({}, userObjectPermission, { allowRead: true, viewAllRecords: true, viewCompanyRecords: true })];
|
|
908
865
|
}
|
|
909
|
-
return [2
|
|
866
|
+
return [2, userObjectPermission];
|
|
910
867
|
}
|
|
911
868
|
});
|
|
912
869
|
});
|
|
@@ -918,17 +875,17 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
918
875
|
switch (_a.label) {
|
|
919
876
|
case 0:
|
|
920
877
|
if (!userSession)
|
|
921
|
-
return [2
|
|
922
|
-
return [4
|
|
878
|
+
return [2, true];
|
|
879
|
+
return [4, this.getUserObjectPermission(userSession, false)];
|
|
923
880
|
case 1:
|
|
924
881
|
userObjectPermission = _a.sent();
|
|
925
882
|
if (userObjectPermission.allowRead) {
|
|
926
|
-
return [2
|
|
883
|
+
return [2, true];
|
|
927
884
|
}
|
|
928
885
|
else {
|
|
929
|
-
return [2
|
|
886
|
+
return [2, false];
|
|
930
887
|
}
|
|
931
|
-
return [2
|
|
888
|
+
return [2];
|
|
932
889
|
}
|
|
933
890
|
});
|
|
934
891
|
});
|
|
@@ -940,17 +897,17 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
940
897
|
switch (_a.label) {
|
|
941
898
|
case 0:
|
|
942
899
|
if (!userSession)
|
|
943
|
-
return [2
|
|
944
|
-
return [4
|
|
900
|
+
return [2, true];
|
|
901
|
+
return [4, this.getUserObjectPermission(userSession, false)];
|
|
945
902
|
case 1:
|
|
946
903
|
userObjectPermission = _a.sent();
|
|
947
904
|
if (userObjectPermission.allowCreate) {
|
|
948
|
-
return [2
|
|
905
|
+
return [2, true];
|
|
949
906
|
}
|
|
950
907
|
else {
|
|
951
|
-
return [2
|
|
908
|
+
return [2, false];
|
|
952
909
|
}
|
|
953
|
-
return [2
|
|
910
|
+
return [2];
|
|
954
911
|
}
|
|
955
912
|
});
|
|
956
913
|
});
|
|
@@ -962,17 +919,17 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
962
919
|
switch (_a.label) {
|
|
963
920
|
case 0:
|
|
964
921
|
if (!userSession)
|
|
965
|
-
return [2
|
|
966
|
-
return [4
|
|
922
|
+
return [2, true];
|
|
923
|
+
return [4, this.getUserObjectPermission(userSession, false)];
|
|
967
924
|
case 1:
|
|
968
925
|
userObjectPermission = _a.sent();
|
|
969
926
|
if (userObjectPermission.allowEdit) {
|
|
970
|
-
return [2
|
|
927
|
+
return [2, true];
|
|
971
928
|
}
|
|
972
929
|
else {
|
|
973
|
-
return [2
|
|
930
|
+
return [2, false];
|
|
974
931
|
}
|
|
975
|
-
return [2
|
|
932
|
+
return [2];
|
|
976
933
|
}
|
|
977
934
|
});
|
|
978
935
|
});
|
|
@@ -984,17 +941,17 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
984
941
|
switch (_a.label) {
|
|
985
942
|
case 0:
|
|
986
943
|
if (!userSession)
|
|
987
|
-
return [2
|
|
988
|
-
return [4
|
|
944
|
+
return [2, true];
|
|
945
|
+
return [4, this.getUserObjectPermission(userSession, false)];
|
|
989
946
|
case 1:
|
|
990
947
|
userObjectPermission = _a.sent();
|
|
991
948
|
if (userObjectPermission.allowDelete) {
|
|
992
|
-
return [2
|
|
949
|
+
return [2, true];
|
|
993
950
|
}
|
|
994
951
|
else {
|
|
995
|
-
return [2
|
|
952
|
+
return [2, false];
|
|
996
953
|
}
|
|
997
|
-
return [2
|
|
954
|
+
return [2];
|
|
998
955
|
}
|
|
999
956
|
});
|
|
1000
957
|
});
|
|
@@ -1006,18 +963,17 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1006
963
|
switch (_a.label) {
|
|
1007
964
|
case 0:
|
|
1008
965
|
clonedQuery = Object.assign({}, query);
|
|
1009
|
-
if (!userSession) return [3
|
|
1010
|
-
return [4
|
|
966
|
+
if (!userSession) return [3, 2];
|
|
967
|
+
return [4, this.processUnreadableField(userSession, clonedQuery)];
|
|
1011
968
|
case 1:
|
|
1012
969
|
_a.sent();
|
|
1013
970
|
_a.label = 2;
|
|
1014
|
-
case 2: return [4
|
|
1015
|
-
case 3: return [2
|
|
971
|
+
case 2: return [4, this.callAdapter('find', this.table_name, clonedQuery, userSession)];
|
|
972
|
+
case 3: return [2, _a.sent()];
|
|
1016
973
|
}
|
|
1017
974
|
});
|
|
1018
975
|
});
|
|
1019
976
|
};
|
|
1020
|
-
// 此函数支持driver: MeteorMongo
|
|
1021
977
|
SteedosObjectType.prototype.aggregate = function (query, externalPipeline, userSession) {
|
|
1022
978
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
1023
979
|
var clonedQuery;
|
|
@@ -1025,18 +981,17 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1025
981
|
switch (_a.label) {
|
|
1026
982
|
case 0:
|
|
1027
983
|
clonedQuery = Object.assign({}, query);
|
|
1028
|
-
if (!userSession) return [3
|
|
1029
|
-
return [4
|
|
984
|
+
if (!userSession) return [3, 2];
|
|
985
|
+
return [4, this.processUnreadableField(userSession, clonedQuery)];
|
|
1030
986
|
case 1:
|
|
1031
987
|
_a.sent();
|
|
1032
988
|
_a.label = 2;
|
|
1033
|
-
case 2: return [4
|
|
1034
|
-
case 3: return [2
|
|
989
|
+
case 2: return [4, this.callAdapter('aggregate', this.table_name, clonedQuery, externalPipeline, userSession)];
|
|
990
|
+
case 3: return [2, _a.sent()];
|
|
1035
991
|
}
|
|
1036
992
|
});
|
|
1037
993
|
});
|
|
1038
994
|
};
|
|
1039
|
-
// 此函数支持driver: MeteorMongo
|
|
1040
995
|
SteedosObjectType.prototype.directAggregate = function (query, externalPipeline, userSession) {
|
|
1041
996
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
1042
997
|
var clonedQuery;
|
|
@@ -1044,18 +999,17 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1044
999
|
switch (_a.label) {
|
|
1045
1000
|
case 0:
|
|
1046
1001
|
clonedQuery = Object.assign({}, query);
|
|
1047
|
-
if (!userSession) return [3
|
|
1048
|
-
return [4
|
|
1002
|
+
if (!userSession) return [3, 2];
|
|
1003
|
+
return [4, this.processUnreadableField(userSession, clonedQuery)];
|
|
1049
1004
|
case 1:
|
|
1050
1005
|
_a.sent();
|
|
1051
1006
|
_a.label = 2;
|
|
1052
|
-
case 2: return [4
|
|
1053
|
-
case 3: return [2
|
|
1007
|
+
case 2: return [4, this.callAdapter('directAggregate', this.table_name, clonedQuery, externalPipeline, userSession)];
|
|
1008
|
+
case 3: return [2, _a.sent()];
|
|
1054
1009
|
}
|
|
1055
1010
|
});
|
|
1056
1011
|
});
|
|
1057
1012
|
};
|
|
1058
|
-
// 此函数支持driver: MeteorMongo,类似于aggregate,其参数externalPipeline放在最前面而已
|
|
1059
1013
|
SteedosObjectType.prototype.directAggregatePrefixalPipeline = function (query, prefixalPipeline, userSession) {
|
|
1060
1014
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
1061
1015
|
var clonedQuery;
|
|
@@ -1063,13 +1017,13 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1063
1017
|
switch (_a.label) {
|
|
1064
1018
|
case 0:
|
|
1065
1019
|
clonedQuery = Object.assign({}, query);
|
|
1066
|
-
if (!userSession) return [3
|
|
1067
|
-
return [4
|
|
1020
|
+
if (!userSession) return [3, 2];
|
|
1021
|
+
return [4, this.processUnreadableField(userSession, clonedQuery)];
|
|
1068
1022
|
case 1:
|
|
1069
1023
|
_a.sent();
|
|
1070
1024
|
_a.label = 2;
|
|
1071
|
-
case 2: return [4
|
|
1072
|
-
case 3: return [2
|
|
1025
|
+
case 2: return [4, this.callAdapter('directAggregatePrefixalPipeline', this.table_name, clonedQuery, prefixalPipeline, userSession)];
|
|
1026
|
+
case 3: return [2, _a.sent()];
|
|
1073
1027
|
}
|
|
1074
1028
|
});
|
|
1075
1029
|
});
|
|
@@ -1081,15 +1035,15 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1081
1035
|
switch (_a.label) {
|
|
1082
1036
|
case 0:
|
|
1083
1037
|
clonedQuery = Object.assign({}, query);
|
|
1084
|
-
if (!userSession) return [3
|
|
1085
|
-
return [4
|
|
1038
|
+
if (!userSession) return [3, 2];
|
|
1039
|
+
return [4, this.processUnreadableField(userSession, clonedQuery)];
|
|
1086
1040
|
case 1:
|
|
1087
1041
|
_a.sent();
|
|
1088
1042
|
_a.label = 2;
|
|
1089
|
-
case 2: return [4
|
|
1043
|
+
case 2: return [4, this.callAdapter('findOne', this.table_name, id, clonedQuery, userSession)];
|
|
1090
1044
|
case 3:
|
|
1091
1045
|
result = _a.sent();
|
|
1092
|
-
return [2
|
|
1046
|
+
return [2, result];
|
|
1093
1047
|
}
|
|
1094
1048
|
});
|
|
1095
1049
|
});
|
|
@@ -1100,8 +1054,8 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1100
1054
|
switch (_a.label) {
|
|
1101
1055
|
case 0:
|
|
1102
1056
|
doc = this.formatRecord(doc);
|
|
1103
|
-
return [4
|
|
1104
|
-
case 1: return [2
|
|
1057
|
+
return [4, this.callAdapter('insert', this.table_name, doc, userSession)];
|
|
1058
|
+
case 1: return [2, _a.sent()];
|
|
1105
1059
|
}
|
|
1106
1060
|
});
|
|
1107
1061
|
});
|
|
@@ -1114,8 +1068,8 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1114
1068
|
case 0:
|
|
1115
1069
|
doc = this.formatRecord(doc);
|
|
1116
1070
|
clonedId = id;
|
|
1117
|
-
return [4
|
|
1118
|
-
case 1: return [2
|
|
1071
|
+
return [4, this.callAdapter('update', this.table_name, clonedId, doc, userSession)];
|
|
1072
|
+
case 1: return [2, _a.sent()];
|
|
1119
1073
|
}
|
|
1120
1074
|
});
|
|
1121
1075
|
});
|
|
@@ -1128,13 +1082,12 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1128
1082
|
case 0:
|
|
1129
1083
|
doc = this.formatRecord(doc);
|
|
1130
1084
|
clonedId = id;
|
|
1131
|
-
return [4
|
|
1132
|
-
case 1: return [2
|
|
1085
|
+
return [4, this.callAdapter('updateOne', this.table_name, clonedId, doc, userSession)];
|
|
1086
|
+
case 1: return [2, _a.sent()];
|
|
1133
1087
|
}
|
|
1134
1088
|
});
|
|
1135
1089
|
});
|
|
1136
1090
|
};
|
|
1137
|
-
// 此函数支持driver: MeteorMongo、Mongo
|
|
1138
1091
|
SteedosObjectType.prototype.updateMany = function (queryFilters, doc, userSession) {
|
|
1139
1092
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
1140
1093
|
var clonedQueryFilters;
|
|
@@ -1143,8 +1096,8 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1143
1096
|
case 0:
|
|
1144
1097
|
doc = this.formatRecord(doc);
|
|
1145
1098
|
clonedQueryFilters = queryFilters;
|
|
1146
|
-
return [4
|
|
1147
|
-
case 1: return [2
|
|
1099
|
+
return [4, this.callAdapter('updateMany', this.table_name, clonedQueryFilters, doc, userSession)];
|
|
1100
|
+
case 1: return [2, _a.sent()];
|
|
1148
1101
|
}
|
|
1149
1102
|
});
|
|
1150
1103
|
});
|
|
@@ -1156,8 +1109,8 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1156
1109
|
switch (_a.label) {
|
|
1157
1110
|
case 0:
|
|
1158
1111
|
clonedId = id;
|
|
1159
|
-
return [4
|
|
1160
|
-
case 1: return [2
|
|
1112
|
+
return [4, this.callAdapter('delete', this.table_name, clonedId, userSession)];
|
|
1113
|
+
case 1: return [2, _a.sent()];
|
|
1161
1114
|
}
|
|
1162
1115
|
});
|
|
1163
1116
|
});
|
|
@@ -1169,11 +1122,11 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1169
1122
|
switch (_a.label) {
|
|
1170
1123
|
case 0:
|
|
1171
1124
|
clonedQuery = Object.assign({}, query);
|
|
1172
|
-
return [4
|
|
1125
|
+
return [4, this.processUnreadableField(userSession, clonedQuery)];
|
|
1173
1126
|
case 1:
|
|
1174
1127
|
_a.sent();
|
|
1175
|
-
return [4
|
|
1176
|
-
case 2: return [2
|
|
1128
|
+
return [4, this.callAdapter('directFind', this.table_name, clonedQuery, userSession)];
|
|
1129
|
+
case 2: return [2, _a.sent()];
|
|
1177
1130
|
}
|
|
1178
1131
|
});
|
|
1179
1132
|
});
|
|
@@ -1184,8 +1137,8 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1184
1137
|
switch (_a.label) {
|
|
1185
1138
|
case 0:
|
|
1186
1139
|
doc = this.formatRecord(doc);
|
|
1187
|
-
return [4
|
|
1188
|
-
case 1: return [2
|
|
1140
|
+
return [4, this.callAdapter('directInsert', this.table_name, doc, userSession)];
|
|
1141
|
+
case 1: return [2, _a.sent()];
|
|
1189
1142
|
}
|
|
1190
1143
|
});
|
|
1191
1144
|
});
|
|
@@ -1198,8 +1151,8 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1198
1151
|
case 0:
|
|
1199
1152
|
doc = this.formatRecord(doc);
|
|
1200
1153
|
clonedId = id;
|
|
1201
|
-
return [4
|
|
1202
|
-
case 1: return [2
|
|
1154
|
+
return [4, this.callAdapter('directUpdate', this.table_name, clonedId, doc, userSession)];
|
|
1155
|
+
case 1: return [2, _a.sent()];
|
|
1203
1156
|
}
|
|
1204
1157
|
});
|
|
1205
1158
|
});
|
|
@@ -1211,8 +1164,8 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1211
1164
|
switch (_a.label) {
|
|
1212
1165
|
case 0:
|
|
1213
1166
|
clonedId = id;
|
|
1214
|
-
return [4
|
|
1215
|
-
case 1: return [2
|
|
1167
|
+
return [4, this.callAdapter('directDelete', this.table_name, clonedId, userSession)];
|
|
1168
|
+
case 1: return [2, _a.sent()];
|
|
1216
1169
|
}
|
|
1217
1170
|
});
|
|
1218
1171
|
});
|
|
@@ -1221,8 +1174,8 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1221
1174
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
1222
1175
|
return tslib_1.__generator(this, function (_a) {
|
|
1223
1176
|
switch (_a.label) {
|
|
1224
|
-
case 0: return [4
|
|
1225
|
-
case 1: return [2
|
|
1177
|
+
case 0: return [4, this._datasource._makeNewID(this.table_name)];
|
|
1178
|
+
case 1: return [2, _a.sent()];
|
|
1226
1179
|
}
|
|
1227
1180
|
});
|
|
1228
1181
|
});
|
|
@@ -1230,7 +1183,7 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1230
1183
|
SteedosObjectType.prototype.getFirstListView = function () {
|
|
1231
1184
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
1232
1185
|
return tslib_1.__generator(this, function (_a) {
|
|
1233
|
-
return [2
|
|
1186
|
+
return [2, this.list_views[0]];
|
|
1234
1187
|
});
|
|
1235
1188
|
});
|
|
1236
1189
|
};
|
|
@@ -1241,21 +1194,21 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1241
1194
|
switch (_a.label) {
|
|
1242
1195
|
case 0:
|
|
1243
1196
|
object_name = this.name;
|
|
1244
|
-
return [4
|
|
1197
|
+
return [4, this.getFirstListView()];
|
|
1245
1198
|
case 1:
|
|
1246
1199
|
list_view = _a.sent();
|
|
1247
1200
|
list_view_id = list_view ? list_view._id || list_view.name : 'all';
|
|
1248
1201
|
if (record_id)
|
|
1249
|
-
return [2
|
|
1202
|
+
return [2, (0, util_1.absoluteUrl)("/app/" + app_id + "/" + object_name + "/view/" + record_id)];
|
|
1250
1203
|
else {
|
|
1251
1204
|
if (object_name === 'meeting') {
|
|
1252
|
-
return [2
|
|
1205
|
+
return [2, (0, util_1.absoluteUrl)("/app/" + app_id + "/" + object_name + "/calendar/")];
|
|
1253
1206
|
}
|
|
1254
1207
|
else {
|
|
1255
|
-
return [2
|
|
1208
|
+
return [2, (0, util_1.absoluteUrl)("/app/" + app_id + "/" + object_name + "/grid/" + list_view_id)];
|
|
1256
1209
|
}
|
|
1257
1210
|
}
|
|
1258
|
-
return [2
|
|
1211
|
+
return [2];
|
|
1259
1212
|
}
|
|
1260
1213
|
});
|
|
1261
1214
|
});
|
|
@@ -1264,8 +1217,8 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1264
1217
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
1265
1218
|
return tslib_1.__generator(this, function (_a) {
|
|
1266
1219
|
switch (_a.label) {
|
|
1267
|
-
case 0: return [4
|
|
1268
|
-
case 1: return [2
|
|
1220
|
+
case 0: return [4, this.getAbsoluteUrl(app_id, record_id)];
|
|
1221
|
+
case 1: return [2, _a.sent()];
|
|
1269
1222
|
}
|
|
1270
1223
|
});
|
|
1271
1224
|
});
|
|
@@ -1274,8 +1227,8 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1274
1227
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
1275
1228
|
return tslib_1.__generator(this, function (_a) {
|
|
1276
1229
|
switch (_a.label) {
|
|
1277
|
-
case 0: return [4
|
|
1278
|
-
case 1: return [2
|
|
1230
|
+
case 0: return [4, this.getAbsoluteUrl(app_id)];
|
|
1231
|
+
case 1: return [2, _a.sent()];
|
|
1279
1232
|
}
|
|
1280
1233
|
});
|
|
1281
1234
|
});
|
|
@@ -1283,7 +1236,7 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1283
1236
|
SteedosObjectType.prototype.isEnableAudit = function () {
|
|
1284
1237
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
1285
1238
|
return tslib_1.__generator(this, function (_a) {
|
|
1286
|
-
return [2
|
|
1239
|
+
return [2, this.enable_audit];
|
|
1287
1240
|
});
|
|
1288
1241
|
});
|
|
1289
1242
|
};
|
|
@@ -1291,8 +1244,8 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1291
1244
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
1292
1245
|
return tslib_1.__generator(this, function (_a) {
|
|
1293
1246
|
switch (_a.label) {
|
|
1294
|
-
case 0: return [4
|
|
1295
|
-
case 1: return [2
|
|
1247
|
+
case 0: return [4, this.callMetadataObjectServiceAction("getDetails", { objectApiName: this.name })];
|
|
1248
|
+
case 1: return [2, _a.sent()];
|
|
1296
1249
|
}
|
|
1297
1250
|
});
|
|
1298
1251
|
});
|
|
@@ -1301,8 +1254,8 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1301
1254
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
1302
1255
|
return tslib_1.__generator(this, function (_a) {
|
|
1303
1256
|
switch (_a.label) {
|
|
1304
|
-
case 0: return [4
|
|
1305
|
-
case 1: return [2
|
|
1257
|
+
case 0: return [4, this.callMetadataObjectServiceAction("getMasters", { objectApiName: this.name })];
|
|
1258
|
+
case 1: return [2, _a.sent()];
|
|
1306
1259
|
}
|
|
1307
1260
|
});
|
|
1308
1261
|
});
|
|
@@ -1311,8 +1264,8 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1311
1264
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
1312
1265
|
return tslib_1.__generator(this, function (_a) {
|
|
1313
1266
|
switch (_a.label) {
|
|
1314
|
-
case 0: return [4
|
|
1315
|
-
case 1: return [2
|
|
1267
|
+
case 0: return [4, this.callMetadataObjectServiceAction("getLookupDetails", { objectApiName: this.name })];
|
|
1268
|
+
case 1: return [2, _a.sent()];
|
|
1316
1269
|
}
|
|
1317
1270
|
});
|
|
1318
1271
|
});
|
|
@@ -1321,8 +1274,8 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1321
1274
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
1322
1275
|
return tslib_1.__generator(this, function (_a) {
|
|
1323
1276
|
switch (_a.label) {
|
|
1324
|
-
case 0: return [4
|
|
1325
|
-
case 1: return [2
|
|
1277
|
+
case 0: return [4, this.callMetadataObjectServiceAction("getDetailsInfo", { objectApiName: this.name })];
|
|
1278
|
+
case 1: return [2, _a.sent()];
|
|
1326
1279
|
}
|
|
1327
1280
|
});
|
|
1328
1281
|
});
|
|
@@ -1331,8 +1284,8 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1331
1284
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
1332
1285
|
return tslib_1.__generator(this, function (_a) {
|
|
1333
1286
|
switch (_a.label) {
|
|
1334
|
-
case 0: return [4
|
|
1335
|
-
case 1: return [2
|
|
1287
|
+
case 0: return [4, this.callMetadataObjectServiceAction("getMastersInfo", { objectApiName: this.name })];
|
|
1288
|
+
case 1: return [2, _a.sent()];
|
|
1336
1289
|
}
|
|
1337
1290
|
});
|
|
1338
1291
|
});
|
|
@@ -1341,21 +1294,18 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1341
1294
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
1342
1295
|
return tslib_1.__generator(this, function (_a) {
|
|
1343
1296
|
switch (_a.label) {
|
|
1344
|
-
case 0: return [4
|
|
1345
|
-
case 1: return [2
|
|
1297
|
+
case 0: return [4, this.callMetadataObjectServiceAction("getLookupDetailsInfo", { objectApiName: this.name })];
|
|
1298
|
+
case 1: return [2, _a.sent()];
|
|
1346
1299
|
}
|
|
1347
1300
|
});
|
|
1348
1301
|
});
|
|
1349
1302
|
};
|
|
1350
|
-
/**
|
|
1351
|
-
* 此函数返回getDetailsInfo、getMastersInfo、getLookupDetailsInfo 3个请求的结果,用于优化访问速度
|
|
1352
|
-
*/
|
|
1353
1303
|
SteedosObjectType.prototype.getRelationsInfo = function () {
|
|
1354
1304
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
1355
1305
|
return tslib_1.__generator(this, function (_a) {
|
|
1356
1306
|
switch (_a.label) {
|
|
1357
|
-
case 0: return [4
|
|
1358
|
-
case 1: return [2
|
|
1307
|
+
case 0: return [4, this.callMetadataObjectServiceAction("getRelationsInfo", { objectApiName: this.name })];
|
|
1308
|
+
case 1: return [2, _a.sent()];
|
|
1359
1309
|
}
|
|
1360
1310
|
});
|
|
1361
1311
|
});
|
|
@@ -1365,13 +1315,13 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1365
1315
|
var permissions, userId, user_company_ids, recordOwnerId, isOwner, record_company_id, record_company_ids;
|
|
1366
1316
|
return tslib_1.__generator(this, function (_a) {
|
|
1367
1317
|
switch (_a.label) {
|
|
1368
|
-
case 0: return [4
|
|
1318
|
+
case 0: return [4, this.getUserObjectPermission(userSession)];
|
|
1369
1319
|
case 1:
|
|
1370
1320
|
permissions = _a.sent();
|
|
1371
1321
|
userId = userSession.userId, user_company_ids = userSession.company_ids;
|
|
1372
1322
|
if (record) {
|
|
1373
1323
|
if (record.record_permissions) {
|
|
1374
|
-
return [2
|
|
1324
|
+
return [2, record.record_permissions];
|
|
1375
1325
|
}
|
|
1376
1326
|
recordOwnerId = record.owner;
|
|
1377
1327
|
if (_.isObject(recordOwnerId)) {
|
|
@@ -1426,23 +1376,11 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1426
1376
|
}
|
|
1427
1377
|
}
|
|
1428
1378
|
}
|
|
1429
|
-
return [2
|
|
1379
|
+
return [2, permissions];
|
|
1430
1380
|
}
|
|
1431
1381
|
});
|
|
1432
1382
|
});
|
|
1433
1383
|
};
|
|
1434
|
-
/**
|
|
1435
|
-
* 获取用户可访问字段
|
|
1436
|
-
* 字段权限设计: https://github.com/steedos/steedos-platform/issues/2943
|
|
1437
|
-
* 字段配置为必填字段:
|
|
1438
|
-
* 1 字段级权限不能设置为只读。
|
|
1439
|
-
* 2 页面布局中不能修改必填选项,始终必填。
|
|
1440
|
-
* 3 页面布局中不能设置为只读。
|
|
1441
|
-
* 4 字段如果不在页面布局中, 则显示在最后
|
|
1442
|
-
* @param objectFields
|
|
1443
|
-
* @param objectLayout
|
|
1444
|
-
* @param objectPermission
|
|
1445
|
-
*/
|
|
1446
1384
|
SteedosObjectType.prototype.getAccessFields = function (objectFields, objectLayout, objectPermission) {
|
|
1447
1385
|
var accessFields = {};
|
|
1448
1386
|
var universallyRequiredFields = _.filter(objectFields, function (objectFile) {
|
|
@@ -1461,12 +1399,10 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1461
1399
|
is_readonly: false,
|
|
1462
1400
|
});
|
|
1463
1401
|
}
|
|
1464
|
-
// 如果配置了页面布局且没有授权字段时, 不显示此字段
|
|
1465
1402
|
if (objectLayout && !fieldLayout) {
|
|
1466
1403
|
return;
|
|
1467
1404
|
}
|
|
1468
1405
|
var _a = fieldPermission || { read: !field.hidden, edit: !field.hidden && !field.readonly }, read = _a.read, edit = _a.edit;
|
|
1469
|
-
// 通用必填字段始终可见、可编辑
|
|
1470
1406
|
if (isUniversallyRequiredField) {
|
|
1471
1407
|
read = true;
|
|
1472
1408
|
edit = true;
|
|
@@ -1474,18 +1410,15 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1474
1410
|
if (fieldLayout && fieldLayout.is_readonly) {
|
|
1475
1411
|
edit = false;
|
|
1476
1412
|
}
|
|
1477
|
-
//不可查看: 配置了字段权限且不可查看; 没有配置字段权限,字段的hidden为true
|
|
1478
1413
|
if (read === false) {
|
|
1479
1414
|
return;
|
|
1480
1415
|
}
|
|
1481
|
-
// 自增字段移除omit属性,添加visible_on属性。
|
|
1482
1416
|
if (field.generated) {
|
|
1483
1417
|
delete field.omit;
|
|
1484
1418
|
if ((0, lodash_1.isNil)(field.visible_on)) {
|
|
1485
1419
|
field.visible_on = "{{false}}";
|
|
1486
1420
|
}
|
|
1487
1421
|
}
|
|
1488
|
-
//可查看不可编辑: 配置了字段权限可查看不可编辑; 没有配置字段权限 字段的hidden 为false 且字段的readonly为true
|
|
1489
1422
|
if (read === true && edit === false) {
|
|
1490
1423
|
accessFields[field.name] = Object.assign({}, field, {
|
|
1491
1424
|
hidden: false,
|
|
@@ -1495,7 +1428,6 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1495
1428
|
});
|
|
1496
1429
|
return;
|
|
1497
1430
|
}
|
|
1498
|
-
//可查看可编辑: 配置了字段权限可查看可编辑; 没有配置字段权限 字段的hidden 为false 且字段的readonly为false
|
|
1499
1431
|
if (read === true && edit === true) {
|
|
1500
1432
|
accessFields[field.name] = Object.assign({}, field, {
|
|
1501
1433
|
hidden: false,
|
|
@@ -1522,7 +1454,6 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1522
1454
|
sort_no_1++;
|
|
1523
1455
|
}
|
|
1524
1456
|
});
|
|
1525
|
-
//处理通用必填字段默认显示顺序
|
|
1526
1457
|
_.each(universallyRequiredFieldsName, function (fieldName) {
|
|
1527
1458
|
var fieldLayout = _.find(objectLayout.fields, function (item) { return item.field_name == fieldName; });
|
|
1528
1459
|
if (!fieldLayout) {
|
|
@@ -1542,8 +1473,8 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1542
1473
|
case 0:
|
|
1543
1474
|
objectConfig = context.objectConfig, layouts = context.layouts, spaceProcessDefinition = context.spaceProcessDefinition, dbListViews = context.dbListViews, rolesFieldsPermission = context.rolesFieldsPermission, relationsInfo = context.relationsInfo;
|
|
1544
1475
|
lng = userSession.language;
|
|
1545
|
-
if (!!objectConfig) return [3
|
|
1546
|
-
return [4
|
|
1476
|
+
if (!!objectConfig) return [3, 2];
|
|
1477
|
+
return [4, this.callMetadataObjectServiceAction('get', { objectApiName: this.name })];
|
|
1547
1478
|
case 1:
|
|
1548
1479
|
objectMetadataConfig = _b.sent();
|
|
1549
1480
|
objectConfig = objectMetadataConfig.metadata;
|
|
@@ -1552,11 +1483,11 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1552
1483
|
objectConfig.name = this.name;
|
|
1553
1484
|
objectConfig.datasource = this.datasource.name;
|
|
1554
1485
|
_a = objectConfig;
|
|
1555
|
-
return [4
|
|
1486
|
+
return [4, this.getUserObjectPermission(userSession, rolesFieldsPermission)];
|
|
1556
1487
|
case 3:
|
|
1557
1488
|
_a.permissions = _b.sent();
|
|
1558
|
-
if (!!relationsInfo) return [3
|
|
1559
|
-
return [4
|
|
1489
|
+
if (!!relationsInfo) return [3, 5];
|
|
1490
|
+
return [4, this.getRelationsInfo()];
|
|
1560
1491
|
case 4:
|
|
1561
1492
|
relationsInfo = _b.sent();
|
|
1562
1493
|
_b.label = 5;
|
|
@@ -1566,8 +1497,8 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1566
1497
|
objectConfig.lookup_details = relationsInfo.lookup_details;
|
|
1567
1498
|
delete objectConfig.db;
|
|
1568
1499
|
(0, i18n_1.translationObject)(lng, objectConfig.name, objectConfig, true);
|
|
1569
|
-
if (!!layouts) return [3
|
|
1570
|
-
return [4
|
|
1500
|
+
if (!!layouts) return [3, 7];
|
|
1501
|
+
return [4, (0, object_layouts_1.getObjectLayouts)(userSession.profile, userSession.spaceId, this.name)];
|
|
1571
1502
|
case 6:
|
|
1572
1503
|
layouts = _b.sent();
|
|
1573
1504
|
_b.label = 7;
|
|
@@ -1601,8 +1532,8 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1601
1532
|
});
|
|
1602
1533
|
}
|
|
1603
1534
|
objectConfig.fields = this.getAccessFields(objectConfig.fields, objectLayout, objectConfig.permissions);
|
|
1604
|
-
if (!!spaceProcessDefinition) return [3
|
|
1605
|
-
return [4
|
|
1535
|
+
if (!!spaceProcessDefinition) return [3, 9];
|
|
1536
|
+
return [4, getObject("process_definition").directFind({ filters: [['space', '=', userSession.spaceId], ['object_name', '=', this.name], ['active', '=', true]] })];
|
|
1606
1537
|
case 8:
|
|
1607
1538
|
spaceProcessDefinition = _b.sent();
|
|
1608
1539
|
_b.label = 9;
|
|
@@ -1610,14 +1541,13 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1610
1541
|
if (spaceProcessDefinition.length > 0) {
|
|
1611
1542
|
objectConfig.enable_process = true;
|
|
1612
1543
|
}
|
|
1613
|
-
//清理数据
|
|
1614
1544
|
_.each(objectConfig.triggers, function (trigger, key) {
|
|
1615
1545
|
if ((trigger === null || trigger === void 0 ? void 0 : trigger.on) != 'client') {
|
|
1616
1546
|
delete objectConfig.triggers[key];
|
|
1617
1547
|
}
|
|
1618
1548
|
});
|
|
1619
|
-
if (!!dbListViews) return [3
|
|
1620
|
-
return [4
|
|
1549
|
+
if (!!dbListViews) return [3, 11];
|
|
1550
|
+
return [4, getObject("object_listviews").directFind({ filters: [['space', '=', userSession.spaceId], ['object_name', '=', this.name], [['owner', '=', userSession.userId], 'or', ['shared', '=', true]]] })];
|
|
1621
1551
|
case 10:
|
|
1622
1552
|
dbListViews = _b.sent();
|
|
1623
1553
|
_b.label = 11;
|
|
@@ -1633,7 +1563,7 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1633
1563
|
delete objectConfig.listeners;
|
|
1634
1564
|
delete objectConfig.__filename;
|
|
1635
1565
|
delete objectConfig.extend;
|
|
1636
|
-
return [2
|
|
1566
|
+
return [2, objectConfig];
|
|
1637
1567
|
}
|
|
1638
1568
|
});
|
|
1639
1569
|
});
|
|
@@ -1650,7 +1580,7 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1650
1580
|
buttons = [];
|
|
1651
1581
|
fields = [];
|
|
1652
1582
|
related_lists = [];
|
|
1653
|
-
return [4
|
|
1583
|
+
return [4, this.callMetadataObjectServiceAction('getOriginalObject', { objectApiName: this.name })];
|
|
1654
1584
|
case 1:
|
|
1655
1585
|
objectConfig = _b.sent();
|
|
1656
1586
|
sortedFields = [];
|
|
@@ -1664,17 +1594,16 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1664
1594
|
layoutField.is_readonly = field.readonly;
|
|
1665
1595
|
layoutField.is_required = field.required;
|
|
1666
1596
|
layoutField.group = field.group;
|
|
1667
|
-
// layoutField.visible_on = `${!field.hidden}`;
|
|
1668
1597
|
fields.push(layoutField);
|
|
1669
1598
|
});
|
|
1670
1599
|
relatedLists = [];
|
|
1671
1600
|
if (this.enable_files) {
|
|
1672
1601
|
relatedLists.push("cms_files.parent");
|
|
1673
1602
|
}
|
|
1674
|
-
return [4
|
|
1603
|
+
return [4, this.getDetailsInfo()];
|
|
1675
1604
|
case 2:
|
|
1676
1605
|
details = _b.sent();
|
|
1677
|
-
return [4
|
|
1606
|
+
return [4, this.getLookupDetailsInfo()];
|
|
1678
1607
|
case 3:
|
|
1679
1608
|
lookup_details = _b.sent();
|
|
1680
1609
|
relatedLists = relatedLists.concat(_.union(details, lookup_details));
|
|
@@ -1705,12 +1634,12 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1705
1634
|
switch (_c.label) {
|
|
1706
1635
|
case 0:
|
|
1707
1636
|
related = relatedLists_1_1.value;
|
|
1708
|
-
if (!related) return [3
|
|
1637
|
+
if (!related) return [3, 2];
|
|
1709
1638
|
relatedItem = {};
|
|
1710
1639
|
relatedItem.related_field_fullname = related;
|
|
1711
1640
|
foo = related.split('.');
|
|
1712
1641
|
rObjectName = foo[0];
|
|
1713
|
-
return [4
|
|
1642
|
+
return [4, getObject(rObjectName).toConfig()];
|
|
1714
1643
|
case 1:
|
|
1715
1644
|
relatedObject = _c.sent();
|
|
1716
1645
|
relatedObjectAllListView = _.find(relatedObject.list_views, function (listview) {
|
|
@@ -1730,37 +1659,37 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1730
1659
|
}
|
|
1731
1660
|
related_lists.push(relatedItem);
|
|
1732
1661
|
_c.label = 2;
|
|
1733
|
-
case 2: return [2
|
|
1662
|
+
case 2: return [2];
|
|
1734
1663
|
}
|
|
1735
1664
|
});
|
|
1736
1665
|
};
|
|
1737
1666
|
relatedLists_1 = tslib_1.__asyncValues(relatedLists);
|
|
1738
1667
|
_b.label = 5;
|
|
1739
|
-
case 5: return [4
|
|
1668
|
+
case 5: return [4, relatedLists_1.next()];
|
|
1740
1669
|
case 6:
|
|
1741
|
-
if (!(relatedLists_1_1 = _b.sent(), !relatedLists_1_1.done)) return [3
|
|
1742
|
-
return [5
|
|
1670
|
+
if (!(relatedLists_1_1 = _b.sent(), !relatedLists_1_1.done)) return [3, 9];
|
|
1671
|
+
return [5, _loop_1()];
|
|
1743
1672
|
case 7:
|
|
1744
1673
|
_b.sent();
|
|
1745
1674
|
_b.label = 8;
|
|
1746
|
-
case 8: return [3
|
|
1747
|
-
case 9: return [3
|
|
1675
|
+
case 8: return [3, 5];
|
|
1676
|
+
case 9: return [3, 16];
|
|
1748
1677
|
case 10:
|
|
1749
1678
|
e_4_1 = _b.sent();
|
|
1750
1679
|
e_4 = { error: e_4_1 };
|
|
1751
|
-
return [3
|
|
1680
|
+
return [3, 16];
|
|
1752
1681
|
case 11:
|
|
1753
1682
|
_b.trys.push([11, , 14, 15]);
|
|
1754
|
-
if (!(relatedLists_1_1 && !relatedLists_1_1.done && (_a = relatedLists_1.return))) return [3
|
|
1755
|
-
return [4
|
|
1683
|
+
if (!(relatedLists_1_1 && !relatedLists_1_1.done && (_a = relatedLists_1.return))) return [3, 13];
|
|
1684
|
+
return [4, _a.call(relatedLists_1)];
|
|
1756
1685
|
case 12:
|
|
1757
1686
|
_b.sent();
|
|
1758
1687
|
_b.label = 13;
|
|
1759
|
-
case 13: return [3
|
|
1688
|
+
case 13: return [3, 15];
|
|
1760
1689
|
case 14:
|
|
1761
1690
|
if (e_4) throw e_4.error;
|
|
1762
|
-
return [7
|
|
1763
|
-
case 15: return [7
|
|
1691
|
+
return [7];
|
|
1692
|
+
case 15: return [7];
|
|
1764
1693
|
case 16:
|
|
1765
1694
|
buttons.push({
|
|
1766
1695
|
button_name: 'standard_new'
|
|
@@ -1778,7 +1707,7 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1778
1707
|
});
|
|
1779
1708
|
}
|
|
1780
1709
|
});
|
|
1781
|
-
return [2
|
|
1710
|
+
return [2, {
|
|
1782
1711
|
object_name: object_name,
|
|
1783
1712
|
type: type,
|
|
1784
1713
|
buttons: buttons,
|
|
@@ -1802,15 +1731,15 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1802
1731
|
_a.label = 1;
|
|
1803
1732
|
case 1:
|
|
1804
1733
|
_a.trys.push([1, 4, , 5]);
|
|
1805
|
-
return [4
|
|
1734
|
+
return [4, this.getDefaultRecordView(userSession)];
|
|
1806
1735
|
case 2:
|
|
1807
1736
|
defaultRecordView = _a.sent();
|
|
1808
|
-
return [4
|
|
1809
|
-
case 3: return [2
|
|
1737
|
+
return [4, getObject('object_layouts').insert(Object.assign({}, defaultRecordView, { name: name, label: label, profiles: profiles }), userSession)];
|
|
1738
|
+
case 3: return [2, _a.sent()];
|
|
1810
1739
|
case 4:
|
|
1811
1740
|
error_3 = _a.sent();
|
|
1812
|
-
return [2
|
|
1813
|
-
case 5: return [2
|
|
1741
|
+
return [2, { error: error_3.message }];
|
|
1742
|
+
case 5: return [2];
|
|
1814
1743
|
}
|
|
1815
1744
|
});
|
|
1816
1745
|
});
|
|
@@ -1826,10 +1755,10 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1826
1755
|
if (this.enable_files) {
|
|
1827
1756
|
related_objects.push({ object_name: "cms_files", foreign_key: "parent" });
|
|
1828
1757
|
}
|
|
1829
|
-
return [4
|
|
1758
|
+
return [4, this.getDetailsInfo()];
|
|
1830
1759
|
case 1:
|
|
1831
1760
|
detailsInfo = _b.sent();
|
|
1832
|
-
return [4
|
|
1761
|
+
return [4, this.getLookupDetailsInfo()];
|
|
1833
1762
|
case 2:
|
|
1834
1763
|
lookupsInfo = _b.sent();
|
|
1835
1764
|
relatedInfos = detailsInfo.concat(lookupsInfo);
|
|
@@ -1839,13 +1768,13 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1839
1768
|
relatedInfos_1 = tslib_1.__values(relatedInfos), relatedInfos_1_1 = relatedInfos_1.next();
|
|
1840
1769
|
_b.label = 4;
|
|
1841
1770
|
case 4:
|
|
1842
|
-
if (!!relatedInfos_1_1.done) return [3
|
|
1771
|
+
if (!!relatedInfos_1_1.done) return [3, 7];
|
|
1843
1772
|
info = relatedInfos_1_1.value;
|
|
1844
|
-
if (!!info.startsWith('__')) return [3
|
|
1773
|
+
if (!!info.startsWith('__')) return [3, 6];
|
|
1845
1774
|
infos = info.split('.');
|
|
1846
1775
|
detailObjectApiName = infos[0];
|
|
1847
1776
|
detailFieldName = infos[1];
|
|
1848
|
-
return [4
|
|
1777
|
+
return [4, getObject(detailObjectApiName).getField(detailFieldName)];
|
|
1849
1778
|
case 5:
|
|
1850
1779
|
related_field = _b.sent();
|
|
1851
1780
|
if (related_field) {
|
|
@@ -1861,18 +1790,18 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1861
1790
|
_b.label = 6;
|
|
1862
1791
|
case 6:
|
|
1863
1792
|
relatedInfos_1_1 = relatedInfos_1.next();
|
|
1864
|
-
return [3
|
|
1865
|
-
case 7: return [3
|
|
1793
|
+
return [3, 4];
|
|
1794
|
+
case 7: return [3, 10];
|
|
1866
1795
|
case 8:
|
|
1867
1796
|
e_5_1 = _b.sent();
|
|
1868
1797
|
e_5 = { error: e_5_1 };
|
|
1869
|
-
return [3
|
|
1798
|
+
return [3, 10];
|
|
1870
1799
|
case 9:
|
|
1871
1800
|
try {
|
|
1872
1801
|
if (relatedInfos_1_1 && !relatedInfos_1_1.done && (_a = relatedInfos_1.return)) _a.call(relatedInfos_1);
|
|
1873
1802
|
}
|
|
1874
1803
|
finally { if (e_5) throw e_5.error; }
|
|
1875
|
-
return [7
|
|
1804
|
+
return [7];
|
|
1876
1805
|
case 10:
|
|
1877
1806
|
if (this.enable_tasks) {
|
|
1878
1807
|
related_objects.push({ object_name: "tasks", foreign_key: "related_to" });
|
|
@@ -1892,7 +1821,7 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1892
1821
|
if (this.enable_process) {
|
|
1893
1822
|
related_objects.push({ object_name: "process_instance_history", foreign_key: "target_object" });
|
|
1894
1823
|
}
|
|
1895
|
-
return [2
|
|
1824
|
+
return [2, related_objects];
|
|
1896
1825
|
}
|
|
1897
1826
|
});
|
|
1898
1827
|
});
|
|
@@ -1907,8 +1836,8 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1907
1836
|
switch (_a.label) {
|
|
1908
1837
|
case 0:
|
|
1909
1838
|
clonedQuery = Object.assign({}, query);
|
|
1910
|
-
return [4
|
|
1911
|
-
case 1: return [2
|
|
1839
|
+
return [4, this.callAdapter('count', this.table_name, clonedQuery, userSession)];
|
|
1840
|
+
case 1: return [2, _a.sent()];
|
|
1912
1841
|
}
|
|
1913
1842
|
});
|
|
1914
1843
|
});
|
|
@@ -1919,24 +1848,24 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1919
1848
|
switch (_a.label) {
|
|
1920
1849
|
case 0:
|
|
1921
1850
|
if (_.isNull(userSession) || _.isUndefined(userSession)) {
|
|
1922
|
-
return [2
|
|
1851
|
+
return [2, true];
|
|
1923
1852
|
}
|
|
1924
|
-
if (!(method === 'find' || method === 'findOne' || method === 'count' || method === 'aggregate' || method === 'aggregatePrefixalPipeline')) return [3
|
|
1925
|
-
return [4
|
|
1926
|
-
case 1: return [2
|
|
1853
|
+
if (!(method === 'find' || method === 'findOne' || method === 'count' || method === 'aggregate' || method === 'aggregatePrefixalPipeline')) return [3, 2];
|
|
1854
|
+
return [4, this.allowRead(userSession)];
|
|
1855
|
+
case 1: return [2, _a.sent()];
|
|
1927
1856
|
case 2:
|
|
1928
|
-
if (!(method === 'insert')) return [3
|
|
1929
|
-
return [4
|
|
1930
|
-
case 3: return [2
|
|
1857
|
+
if (!(method === 'insert')) return [3, 4];
|
|
1858
|
+
return [4, this.allowInsert(userSession)];
|
|
1859
|
+
case 3: return [2, _a.sent()];
|
|
1931
1860
|
case 4:
|
|
1932
|
-
if (!(method === 'update' || method === 'updateOne' || method === 'updateMany')) return [3
|
|
1933
|
-
return [4
|
|
1934
|
-
case 5: return [2
|
|
1861
|
+
if (!(method === 'update' || method === 'updateOne' || method === 'updateMany')) return [3, 6];
|
|
1862
|
+
return [4, this.allowUpdate(userSession)];
|
|
1863
|
+
case 5: return [2, _a.sent()];
|
|
1935
1864
|
case 6:
|
|
1936
|
-
if (!(method === 'delete')) return [3
|
|
1937
|
-
return [4
|
|
1938
|
-
case 7: return [2
|
|
1939
|
-
case 8: return [2
|
|
1865
|
+
if (!(method === 'delete')) return [3, 8];
|
|
1866
|
+
return [4, this.allowDelete(userSession)];
|
|
1867
|
+
case 7: return [2, _a.sent()];
|
|
1868
|
+
case 8: return [2];
|
|
1940
1869
|
}
|
|
1941
1870
|
});
|
|
1942
1871
|
});
|
|
@@ -1952,11 +1881,11 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1952
1881
|
}
|
|
1953
1882
|
meteorWhen = "before".concat(method.charAt(0).toLocaleUpperCase()).concat(_.rest(tslib_1.__spreadArray([], tslib_1.__read(method), false)).join(''));
|
|
1954
1883
|
when = "before.".concat(method);
|
|
1955
|
-
return [4
|
|
1884
|
+
return [4, this.runTriggers(meteorWhen, context)];
|
|
1956
1885
|
case 1:
|
|
1957
1886
|
_a.sent();
|
|
1958
|
-
return [4
|
|
1959
|
-
case 2: return [2
|
|
1887
|
+
return [4, this.runTriggerActions(when, context)];
|
|
1888
|
+
case 2: return [2, _a.sent()];
|
|
1960
1889
|
}
|
|
1961
1890
|
});
|
|
1962
1891
|
});
|
|
@@ -1969,11 +1898,11 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1969
1898
|
case 0:
|
|
1970
1899
|
meteorWhen = "after".concat(method.charAt(0).toLocaleUpperCase()).concat(_.rest(tslib_1.__spreadArray([], tslib_1.__read(method), false)).join(''));
|
|
1971
1900
|
when = "after.".concat(method);
|
|
1972
|
-
return [4
|
|
1901
|
+
return [4, this.runTriggers(meteorWhen, context)];
|
|
1973
1902
|
case 1:
|
|
1974
1903
|
_a.sent();
|
|
1975
|
-
return [4
|
|
1976
|
-
case 2: return [2
|
|
1904
|
+
return [4, this.runTriggerActions(when, context)];
|
|
1905
|
+
case 2: return [2, _a.sent()];
|
|
1977
1906
|
}
|
|
1978
1907
|
});
|
|
1979
1908
|
});
|
|
@@ -1985,15 +1914,15 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1985
1914
|
switch (_a.label) {
|
|
1986
1915
|
case 0:
|
|
1987
1916
|
_ids = _.pluck(records, '_id');
|
|
1988
|
-
return [4
|
|
1917
|
+
return [4, this.getUserObjectPermission(userSession, false)];
|
|
1989
1918
|
case 1:
|
|
1990
1919
|
objPm = _a.sent();
|
|
1991
1920
|
permissionFilters = this.getObjectEditPermissionFilters(objPm, userSession);
|
|
1992
1921
|
if (_.isEmpty(permissionFilters)) {
|
|
1993
|
-
return [2
|
|
1922
|
+
return [2];
|
|
1994
1923
|
}
|
|
1995
1924
|
filters = (0, filters_1.formatFiltersToODataQuery)(['_id', 'in', _ids]);
|
|
1996
|
-
return [4
|
|
1925
|
+
return [4, this.directFind({
|
|
1997
1926
|
fields: ['_id'],
|
|
1998
1927
|
filters: "(".concat(filters, ") and (").concat(permissionFilters.join(' or '), ")")
|
|
1999
1928
|
})];
|
|
@@ -2009,7 +1938,7 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
2009
1938
|
};
|
|
2010
1939
|
}
|
|
2011
1940
|
});
|
|
2012
|
-
return [2
|
|
1941
|
+
return [2];
|
|
2013
1942
|
}
|
|
2014
1943
|
});
|
|
2015
1944
|
});
|
|
@@ -2034,13 +1963,13 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
2034
1963
|
if (method === 'insert' || method === 'update') {
|
|
2035
1964
|
context.doc = args[args.length - 2];
|
|
2036
1965
|
}
|
|
2037
|
-
if (!(when === 'after' && (method === 'update' || method === 'delete'))) return [3
|
|
1966
|
+
if (!(when === 'after' && (method === 'update' || method === 'delete'))) return [3, 2];
|
|
2038
1967
|
_a = context;
|
|
2039
|
-
return [4
|
|
1968
|
+
return [4, this.findOne(recordId, {}, userSession)];
|
|
2040
1969
|
case 1:
|
|
2041
1970
|
_a.previousDoc = _b.sent();
|
|
2042
1971
|
_b.label = 2;
|
|
2043
|
-
case 2: return [2
|
|
1972
|
+
case 2: return [2, context];
|
|
2044
1973
|
}
|
|
2045
1974
|
});
|
|
2046
1975
|
});
|
|
@@ -2052,9 +1981,9 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
2052
1981
|
switch (_a.label) {
|
|
2053
1982
|
case 0:
|
|
2054
1983
|
if (!userSession) {
|
|
2055
|
-
return [2
|
|
1984
|
+
return [2];
|
|
2056
1985
|
}
|
|
2057
|
-
return [4
|
|
1986
|
+
return [4, this.getUserObjectPermission(userSession, false)];
|
|
2058
1987
|
case 1:
|
|
2059
1988
|
userObjectPermission = _a.sent();
|
|
2060
1989
|
userObjectUnreadableFields = userObjectPermission.unreadable_fields;
|
|
@@ -2085,27 +2014,11 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
2085
2014
|
}
|
|
2086
2015
|
query.fields = queryFields_1.join(',');
|
|
2087
2016
|
}
|
|
2088
|
-
return [2
|
|
2017
|
+
return [2];
|
|
2089
2018
|
}
|
|
2090
2019
|
});
|
|
2091
2020
|
});
|
|
2092
2021
|
};
|
|
2093
|
-
// private async processUneditableFields(userSession: SteedosUserSession, doc: JsonMap) {
|
|
2094
|
-
// 后台直接去掉uneditable_fields相关判断逻辑
|
|
2095
|
-
// [签约对象同时配置了company_ids必填及uneditable_fields造成部分用户新建签约对象时报错 #192](https://github.com/steedos/steedos-project-dzug/issues/192)
|
|
2096
|
-
// if (!userSession) {
|
|
2097
|
-
// return
|
|
2098
|
-
// }
|
|
2099
|
-
// let userObjectPermission = await this.getUserObjectPermission(userSession)
|
|
2100
|
-
// let userObjectUneditableFields = userObjectPermission.uneditable_fields
|
|
2101
|
-
// let intersection = _.intersection(userObjectUneditableFields, _.keys(doc))
|
|
2102
|
-
// if (intersection.length > 0) {
|
|
2103
|
-
// throw new Error(`no permissions to edit fields ${intersection.join(', ')}`)
|
|
2104
|
-
// }
|
|
2105
|
-
// // _.each(userObjectUneditableFields, (name: string)=>{
|
|
2106
|
-
// // delete doc[name]
|
|
2107
|
-
// // })
|
|
2108
|
-
// }
|
|
2109
2022
|
SteedosObjectType.prototype.formatRecord = function (doc) {
|
|
2110
2023
|
var adapterFormat = this._datasource["formatRecord"];
|
|
2111
2024
|
if (typeof adapterFormat == 'function') {
|
|
@@ -2128,8 +2041,8 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
2128
2041
|
throw new Error('Adapted does not support "' + method + '" method');
|
|
2129
2042
|
}
|
|
2130
2043
|
userSession = args[args.length - 1];
|
|
2131
|
-
if (!!_.isEmpty(userSession)) return [3
|
|
2132
|
-
return [4
|
|
2044
|
+
if (!!_.isEmpty(userSession)) return [3, 2];
|
|
2045
|
+
return [4, this.allow(method, userSession)];
|
|
2133
2046
|
case 1:
|
|
2134
2047
|
allow = _a.sent();
|
|
2135
2048
|
if (!allow) {
|
|
@@ -2139,9 +2052,7 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
2139
2052
|
case 2:
|
|
2140
2053
|
objectName = args[0];
|
|
2141
2054
|
if (["insert", "update", "updateMany", "delete"].indexOf(method) > -1) {
|
|
2142
|
-
// 因下面的代码,比如函数dealWithMethodPermission可能改写args变量,所以需要提前从args取出对应变量值。
|
|
2143
2055
|
if (method === "insert") {
|
|
2144
|
-
// 此处doc不带_id值,得执行完adapterMethod.apply后,doc中才有_id属性,所以这里的doc及recordId都不准确
|
|
2145
2056
|
doc = args[1];
|
|
2146
2057
|
recordId = doc._id;
|
|
2147
2058
|
}
|
|
@@ -2153,32 +2064,32 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
2153
2064
|
if (method === 'findOne' || method === 'update' || method === 'delete') {
|
|
2154
2065
|
paramRecordId = args[1];
|
|
2155
2066
|
}
|
|
2156
|
-
if (!(!_.isEmpty(userSession) && this._datasource.enable_space)) return [3
|
|
2067
|
+
if (!(!_.isEmpty(userSession) && this._datasource.enable_space)) return [3, 4];
|
|
2157
2068
|
this.dealWithFilters(method, args);
|
|
2158
|
-
return [4
|
|
2069
|
+
return [4, this.dealWithMethodPermission(method, args)];
|
|
2159
2070
|
case 3:
|
|
2160
2071
|
_a.sent();
|
|
2161
2072
|
_a.label = 4;
|
|
2162
2073
|
case 4:
|
|
2163
|
-
if (!this.isDirectCRUD(method)) return [3
|
|
2074
|
+
if (!this.isDirectCRUD(method)) return [3, 6];
|
|
2164
2075
|
args.splice(args.length - 1, 1, userSession ? userSession.userId : undefined);
|
|
2165
|
-
return [4
|
|
2076
|
+
return [4, adapterMethod.apply(this._datasource, args)];
|
|
2166
2077
|
case 5:
|
|
2167
2078
|
returnValue = _a.sent();
|
|
2168
|
-
return [3
|
|
2169
|
-
case 6: return [4
|
|
2079
|
+
return [3, 26];
|
|
2080
|
+
case 6: return [4, this.getTriggerContext('before', method, args)];
|
|
2170
2081
|
case 7:
|
|
2171
2082
|
beforeTriggerContext = _a.sent();
|
|
2172
2083
|
if (paramRecordId) {
|
|
2173
2084
|
beforeTriggerContext = Object.assign({}, beforeTriggerContext, { id: paramRecordId });
|
|
2174
2085
|
}
|
|
2175
|
-
return [4
|
|
2086
|
+
return [4, this.runBeforeTriggers(method, beforeTriggerContext)];
|
|
2176
2087
|
case 8:
|
|
2177
2088
|
_a.sent();
|
|
2178
|
-
return [4
|
|
2089
|
+
return [4, (0, validation_rules_1.runValidationRules)(method, beforeTriggerContext, args[0], userSession)];
|
|
2179
2090
|
case 9:
|
|
2180
2091
|
_a.sent();
|
|
2181
|
-
return [4
|
|
2092
|
+
return [4, this.getTriggerContext('after', method, args, paramRecordId)];
|
|
2182
2093
|
case 10:
|
|
2183
2094
|
afterTriggerContext = _a.sent();
|
|
2184
2095
|
if (paramRecordId) {
|
|
@@ -2186,21 +2097,21 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
2186
2097
|
}
|
|
2187
2098
|
previousDoc = clone(afterTriggerContext.previousDoc);
|
|
2188
2099
|
args.splice(args.length - 1, 1, userSession ? userSession.userId : undefined);
|
|
2189
|
-
return [4
|
|
2100
|
+
return [4, adapterMethod.apply(this._datasource, args)];
|
|
2190
2101
|
case 11:
|
|
2191
2102
|
returnValue = _a.sent();
|
|
2192
|
-
if (!(method === 'find' || method == 'findOne' || method == 'count' || method == 'aggregate' || method == 'aggregatePrefixalPipeline')) return [3
|
|
2103
|
+
if (!(method === 'find' || method == 'findOne' || method == 'count' || method == 'aggregate' || method == 'aggregatePrefixalPipeline')) return [3, 15];
|
|
2193
2104
|
values = clone(returnValue) || {};
|
|
2194
|
-
if (!(method === 'count')) return [3
|
|
2105
|
+
if (!(method === 'count')) return [3, 12];
|
|
2195
2106
|
values = returnValue || 0;
|
|
2196
|
-
return [3
|
|
2107
|
+
return [3, 14];
|
|
2197
2108
|
case 12:
|
|
2198
|
-
if (!userSession) return [3
|
|
2109
|
+
if (!userSession) return [3, 14];
|
|
2199
2110
|
_records = returnValue;
|
|
2200
2111
|
if (method == 'findOne' && returnValue) {
|
|
2201
2112
|
_records = [_records];
|
|
2202
2113
|
}
|
|
2203
|
-
return [4
|
|
2114
|
+
return [4, this.appendRecordPermission(_records, userSession)];
|
|
2204
2115
|
case 13:
|
|
2205
2116
|
_a.sent();
|
|
2206
2117
|
_a.label = 14;
|
|
@@ -2208,33 +2119,32 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
2208
2119
|
Object.assign(afterTriggerContext, { data: { values: values } });
|
|
2209
2120
|
_a.label = 15;
|
|
2210
2121
|
case 15:
|
|
2211
|
-
// console.log("==returnValue==", returnValue);
|
|
2212
2122
|
if (method == 'insert' && _.has(returnValue, '_id')) {
|
|
2213
2123
|
afterTriggerContext.doc = returnValue;
|
|
2214
2124
|
afterTriggerContext = Object.assign({}, afterTriggerContext, { id: returnValue._id });
|
|
2215
2125
|
}
|
|
2216
|
-
if (!(method == "update")) return [3
|
|
2217
|
-
if (!returnValue) return [3
|
|
2126
|
+
if (!(method == "update")) return [3, 18];
|
|
2127
|
+
if (!returnValue) return [3, 17];
|
|
2218
2128
|
afterTriggerContext.doc = returnValue;
|
|
2219
|
-
return [4
|
|
2129
|
+
return [4, this.runAfterTriggers(method, afterTriggerContext)];
|
|
2220
2130
|
case 16:
|
|
2221
2131
|
_a.sent();
|
|
2222
2132
|
_a.label = 17;
|
|
2223
|
-
case 17: return [3
|
|
2224
|
-
case 18: return [4
|
|
2133
|
+
case 17: return [3, 20];
|
|
2134
|
+
case 18: return [4, this.runAfterTriggers(method, afterTriggerContext)];
|
|
2225
2135
|
case 19:
|
|
2226
2136
|
_a.sent();
|
|
2227
2137
|
_a.label = 20;
|
|
2228
2138
|
case 20:
|
|
2229
2139
|
if (method === 'find' || method == 'findOne' || method == 'count' || method == 'aggregate' || method == 'aggregatePrefixalPipeline') {
|
|
2230
2140
|
if (_.isEmpty(afterTriggerContext.data) || (_.isEmpty(afterTriggerContext.data.values) && !_.isNumber(afterTriggerContext.data.values))) {
|
|
2231
|
-
return [2
|
|
2141
|
+
return [2, returnValue];
|
|
2232
2142
|
}
|
|
2233
2143
|
else {
|
|
2234
|
-
return [2
|
|
2144
|
+
return [2, afterTriggerContext.data.values];
|
|
2235
2145
|
}
|
|
2236
2146
|
}
|
|
2237
|
-
return [4
|
|
2147
|
+
return [4, new actions_1.WorkflowRulesRunner({
|
|
2238
2148
|
object_name: this.name,
|
|
2239
2149
|
event: method,
|
|
2240
2150
|
record: returnValue,
|
|
@@ -2243,26 +2153,23 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
2243
2153
|
}).run()];
|
|
2244
2154
|
case 21:
|
|
2245
2155
|
_a.sent();
|
|
2246
|
-
if (!returnValue) return [3
|
|
2156
|
+
if (!returnValue) return [3, 24];
|
|
2247
2157
|
if (method === "insert") {
|
|
2248
|
-
// 当为insert时,上面代码执行后的doc不带_id,只能从returnValue中取
|
|
2249
2158
|
doc = returnValue;
|
|
2250
2159
|
recordId = doc._id;
|
|
2251
2160
|
}
|
|
2252
|
-
|
|
2253
|
-
return [4 /*yield*/, this.runRecordFormula(method, objectName, recordId, doc, userSession)];
|
|
2161
|
+
return [4, this.runRecordFormula(method, objectName, recordId, doc, userSession)];
|
|
2254
2162
|
case 22:
|
|
2255
|
-
// 一定要先运行公式再运行汇总,以下两个函数顺序不能反
|
|
2256
2163
|
_a.sent();
|
|
2257
|
-
return [4
|
|
2164
|
+
return [4, this.runRecordSummaries(method, objectName, recordId, doc, previousDoc, userSession)];
|
|
2258
2165
|
case 23:
|
|
2259
2166
|
_a.sent();
|
|
2260
2167
|
_a.label = 24;
|
|
2261
|
-
case 24: return [4
|
|
2168
|
+
case 24: return [4, (0, object_events_1.brokeEmitEvents)(objectName, method, afterTriggerContext)];
|
|
2262
2169
|
case 25:
|
|
2263
2170
|
_a.sent();
|
|
2264
2171
|
_a.label = 26;
|
|
2265
|
-
case 26: return [2
|
|
2172
|
+
case 26: return [2, returnValue];
|
|
2266
2173
|
}
|
|
2267
2174
|
});
|
|
2268
2175
|
});
|
|
@@ -2274,24 +2181,24 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
2274
2181
|
return tslib_1.__generator(this, function (_a) {
|
|
2275
2182
|
switch (_a.label) {
|
|
2276
2183
|
case 0:
|
|
2277
|
-
if (!(["insert", "update", "updateMany", "delete"].indexOf(method) > -1)) return [3
|
|
2278
|
-
if (!(method === "updateMany")) return [3
|
|
2279
|
-
return [3
|
|
2184
|
+
if (!(["insert", "update", "updateMany", "delete"].indexOf(method) > -1)) return [3, 5];
|
|
2185
|
+
if (!(method === "updateMany")) return [3, 1];
|
|
2186
|
+
return [3, 5];
|
|
2280
2187
|
case 1:
|
|
2281
2188
|
currentUserId = userSession ? userSession.userId : undefined;
|
|
2282
|
-
if (!(method !== "delete")) return [3
|
|
2283
|
-
return [4
|
|
2189
|
+
if (!(method !== "delete")) return [3, 3];
|
|
2190
|
+
return [4, (0, formula_1.runCurrentObjectFieldFormulas)(objectName, recordId, doc, currentUserId, true)];
|
|
2284
2191
|
case 2:
|
|
2285
2192
|
_a.sent();
|
|
2286
2193
|
_a.label = 3;
|
|
2287
2194
|
case 3:
|
|
2288
2195
|
onlyForOwn = method === "insert";
|
|
2289
2196
|
withoutCurrent = method === "delete";
|
|
2290
|
-
return [4
|
|
2197
|
+
return [4, (0, formula_1.runQuotedByObjectFieldFormulas)(objectName, recordId, userSession, { onlyForOwn: onlyForOwn, withoutCurrent: withoutCurrent })];
|
|
2291
2198
|
case 4:
|
|
2292
2199
|
_a.sent();
|
|
2293
2200
|
_a.label = 5;
|
|
2294
|
-
case 5: return [2
|
|
2201
|
+
case 5: return [2];
|
|
2295
2202
|
}
|
|
2296
2203
|
});
|
|
2297
2204
|
});
|
|
@@ -2301,20 +2208,20 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
2301
2208
|
return tslib_1.__generator(this, function (_a) {
|
|
2302
2209
|
switch (_a.label) {
|
|
2303
2210
|
case 0:
|
|
2304
|
-
if (!(["insert", "update", "updateMany", "delete"].indexOf(method) > -1)) return [3
|
|
2305
|
-
if (!(method === "updateMany")) return [3
|
|
2306
|
-
return [3
|
|
2211
|
+
if (!(["insert", "update", "updateMany", "delete"].indexOf(method) > -1)) return [3, 5];
|
|
2212
|
+
if (!(method === "updateMany")) return [3, 1];
|
|
2213
|
+
return [3, 5];
|
|
2307
2214
|
case 1:
|
|
2308
|
-
if (!(method === "insert")) return [3
|
|
2309
|
-
return [4
|
|
2215
|
+
if (!(method === "insert")) return [3, 3];
|
|
2216
|
+
return [4, (0, summary_1.runCurrentObjectFieldSummaries)(objectName, recordId)];
|
|
2310
2217
|
case 2:
|
|
2311
2218
|
_a.sent();
|
|
2312
2219
|
_a.label = 3;
|
|
2313
|
-
case 3: return [4
|
|
2220
|
+
case 3: return [4, (0, summary_1.runQuotedByObjectFieldSummaries)(objectName, recordId, previousDoc, userSession)];
|
|
2314
2221
|
case 4:
|
|
2315
2222
|
_a.sent();
|
|
2316
2223
|
_a.label = 5;
|
|
2317
|
-
case 5: return [2
|
|
2224
|
+
case 5: return [2];
|
|
2318
2225
|
}
|
|
2319
2226
|
});
|
|
2320
2227
|
});
|
|
@@ -2326,10 +2233,6 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
2326
2233
|
}
|
|
2327
2234
|
return objectPermissionFilters;
|
|
2328
2235
|
};
|
|
2329
|
-
/**
|
|
2330
|
-
* 把query.filters用formatFiltersToODataQuery转为odata query
|
|
2331
|
-
* 主要是为了把userSession中的utcOffset逻辑传入formatFiltersToODataQuery函数处理
|
|
2332
|
-
*/
|
|
2333
2236
|
SteedosObjectType.prototype.dealWithFilters = function (method, args) {
|
|
2334
2237
|
var userSession = args[args.length - 1];
|
|
2335
2238
|
if (userSession) {
|
|
@@ -2351,13 +2254,13 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
2351
2254
|
switch (_a.label) {
|
|
2352
2255
|
case 0:
|
|
2353
2256
|
userSession = args[args.length - 1];
|
|
2354
|
-
if (!userSession) return [3
|
|
2257
|
+
if (!userSession) return [3, 5];
|
|
2355
2258
|
spaceId = userSession.spaceId;
|
|
2356
2259
|
userId = userSession.userId;
|
|
2357
|
-
return [4
|
|
2260
|
+
return [4, this.getUserObjectPermission(userSession, false)];
|
|
2358
2261
|
case 1:
|
|
2359
2262
|
objPm = _a.sent();
|
|
2360
|
-
if (!(method === 'find' || method === 'count' || method === 'findOne' || method === 'aggregate' || method === 'aggregatePrefixalPipeline')) return [3
|
|
2263
|
+
if (!(method === 'find' || method === 'count' || method === 'findOne' || method === 'aggregate' || method === 'aggregatePrefixalPipeline')) return [3, 4];
|
|
2361
2264
|
query = args[args.length - 2];
|
|
2362
2265
|
if (method === 'aggregate' || method === 'aggregatePrefixalPipeline') {
|
|
2363
2266
|
query = args[args.length - 3];
|
|
@@ -2366,17 +2269,15 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
2366
2269
|
query.filters = (0, filters_1.formatFiltersToODataQuery)(query.filters);
|
|
2367
2270
|
}
|
|
2368
2271
|
if (this.table_name == 'cfs.files.filerecord' || this.table_name == 'cfs.instances.filerecord') {
|
|
2369
|
-
return [2
|
|
2272
|
+
return [2];
|
|
2370
2273
|
}
|
|
2371
2274
|
if ((0, util_1.isCloudAdminSpace)(spaceId)) {
|
|
2372
|
-
return [2
|
|
2275
|
+
return [2];
|
|
2373
2276
|
}
|
|
2374
2277
|
spaceFilter = void 0, companyFilter = void 0, ownerFilter = void 0, sharesFilter = void 0, shareRuleFilters = void 0, restrictionRuleFilters = void 0, clientFilter = query.filters, filters = void 0, permissionFilters = [], userFilters = [];
|
|
2375
|
-
//space 权限
|
|
2376
2278
|
if (spaceId) {
|
|
2377
2279
|
spaceFilter = "(space eq '".concat(spaceId, "')");
|
|
2378
2280
|
}
|
|
2379
|
-
// 本公司权限
|
|
2380
2281
|
if (spaceId && !objPm.viewAllRecords && objPm.viewCompanyRecords) {
|
|
2381
2282
|
if (_.isEmpty(userSession.companies)) {
|
|
2382
2283
|
console.log('objPm', objPm);
|
|
@@ -2386,7 +2287,7 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
2386
2287
|
return "(company_id eq '".concat(comp._id, "') or (company_ids eq '").concat(comp._id, "')");
|
|
2387
2288
|
});
|
|
2388
2289
|
}
|
|
2389
|
-
if (!objPm.viewAllRecords && !objPm.viewCompanyRecords && objPm.allowRead) {
|
|
2290
|
+
if (!objPm.viewAllRecords && !objPm.viewCompanyRecords && objPm.allowRead) {
|
|
2390
2291
|
ownerFilter = "(owner eq '".concat(userId, "')");
|
|
2391
2292
|
}
|
|
2392
2293
|
viewAssignCompanysRecordsFilter_1 = [];
|
|
@@ -2398,25 +2299,18 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
2398
2299
|
if (!_.isEmpty(viewAssignCompanysRecordsFilter_1)) {
|
|
2399
2300
|
permissionFilters.push("(".concat(viewAssignCompanysRecordsFilter_1.join(' or '), ")"));
|
|
2400
2301
|
}
|
|
2401
|
-
return [4
|
|
2302
|
+
return [4, shareRule_1.ShareRules.getUserObjectFilters(this.name, userSession)];
|
|
2402
2303
|
case 2:
|
|
2403
|
-
//共享规则
|
|
2404
2304
|
shareRuleFilters = _a.sent();
|
|
2405
2305
|
if (!_.isEmpty(shareRuleFilters)) {
|
|
2406
2306
|
permissionFilters.push("(".concat(shareRuleFilters.join(' or '), ")"));
|
|
2407
2307
|
}
|
|
2408
|
-
return [4
|
|
2308
|
+
return [4, restrictionRule_1.RestrictionRule.getUserObjectFilters(this.name, userSession)];
|
|
2409
2309
|
case 3:
|
|
2410
|
-
// 限制规则
|
|
2411
2310
|
restrictionRuleFilters = _a.sent();
|
|
2412
2311
|
if (!_.isEmpty(restrictionRuleFilters)) {
|
|
2413
2312
|
userFilters.push("(".concat(restrictionRuleFilters.join(' or '), ")"));
|
|
2414
2313
|
}
|
|
2415
|
-
// objectPermissionFilters = this.getObjectPermissionFilters(objPm, userSession, false);
|
|
2416
|
-
// if (!_.isEmpty(objectPermissionFilters)) {
|
|
2417
|
-
// permissionFilters.push(`(${objectPermissionFilters.join(' or ')})`);
|
|
2418
|
-
// }
|
|
2419
|
-
//共享规则(旧)
|
|
2420
2314
|
sharesFilter = (0, util_1.getUserObjectSharesFilters)(this.name, userSession);
|
|
2421
2315
|
if (!_.isEmpty(companyFilter)) {
|
|
2422
2316
|
permissionFilters.push("(".concat(companyFilter.join(' or '), ")"));
|
|
@@ -2440,7 +2334,7 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
2440
2334
|
filters = filters ? "(".concat(filters, ") and (").concat(userFilters.join(' and '), ")") : userFilters.join(' and ');
|
|
2441
2335
|
}
|
|
2442
2336
|
query.filters = filters;
|
|
2443
|
-
return [3
|
|
2337
|
+
return [3, 5];
|
|
2444
2338
|
case 4:
|
|
2445
2339
|
if (method === 'insert') {
|
|
2446
2340
|
if (!objPm.allowCreate) {
|
|
@@ -2550,13 +2444,12 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
2550
2444
|
args[args.length - 2] = id;
|
|
2551
2445
|
}
|
|
2552
2446
|
_a.label = 5;
|
|
2553
|
-
case 5: return [2
|
|
2447
|
+
case 5: return [2];
|
|
2554
2448
|
}
|
|
2555
2449
|
});
|
|
2556
2450
|
});
|
|
2557
2451
|
};
|
|
2558
2452
|
Object.defineProperty(SteedosObjectType.prototype, "schema", {
|
|
2559
|
-
/***** get/set *****/
|
|
2560
2453
|
get: function () {
|
|
2561
2454
|
return this._schema;
|
|
2562
2455
|
},
|