@steedos/objectql 2.2.55-beta.7 → 2.3.0-beta.10
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 +4 -67
- package/lib/formula/core.js +132 -238
- 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.d.ts +3 -3
- package/lib/formula/index.js +24 -37
- 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 +35 -51
- 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 +1 -52
- package/lib/formula/type.js +0 -4
- package/lib/formula/type.js.map +1 -1
- package/lib/formula/util.d.ts +2 -71
- package/lib/formula/util.js +9 -79
- 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 +96 -78
- package/lib/typeorm/driver.js.map +1 -1
- package/lib/typeorm/util.js +5 -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 +4 -34
- 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 +291 -403
- package/lib/types/object.js.map +1 -1
- package/lib/types/object_dynamic_load.js +40 -45
- 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 +11 -18
- 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,16 @@ 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
|
-
|
|
1252
|
-
return [2 /*return*/, (0, util_1.absoluteUrl)("/app/" + app_id + "/" + object_name + "/calendar/")];
|
|
1253
|
-
}
|
|
1254
|
-
else {
|
|
1255
|
-
return [2 /*return*/, (0, util_1.absoluteUrl)("/app/" + app_id + "/" + object_name + "/grid/" + list_view_id)];
|
|
1256
|
-
}
|
|
1204
|
+
return [2, (0, util_1.absoluteUrl)("/app/" + app_id + "/" + object_name + "/grid/" + list_view_id)];
|
|
1257
1205
|
}
|
|
1258
|
-
return [2
|
|
1206
|
+
return [2];
|
|
1259
1207
|
}
|
|
1260
1208
|
});
|
|
1261
1209
|
});
|
|
@@ -1264,8 +1212,8 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1264
1212
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
1265
1213
|
return tslib_1.__generator(this, function (_a) {
|
|
1266
1214
|
switch (_a.label) {
|
|
1267
|
-
case 0: return [4
|
|
1268
|
-
case 1: return [2
|
|
1215
|
+
case 0: return [4, this.getAbsoluteUrl(app_id, record_id)];
|
|
1216
|
+
case 1: return [2, _a.sent()];
|
|
1269
1217
|
}
|
|
1270
1218
|
});
|
|
1271
1219
|
});
|
|
@@ -1274,8 +1222,8 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1274
1222
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
1275
1223
|
return tslib_1.__generator(this, function (_a) {
|
|
1276
1224
|
switch (_a.label) {
|
|
1277
|
-
case 0: return [4
|
|
1278
|
-
case 1: return [2
|
|
1225
|
+
case 0: return [4, this.getAbsoluteUrl(app_id)];
|
|
1226
|
+
case 1: return [2, _a.sent()];
|
|
1279
1227
|
}
|
|
1280
1228
|
});
|
|
1281
1229
|
});
|
|
@@ -1283,7 +1231,7 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1283
1231
|
SteedosObjectType.prototype.isEnableAudit = function () {
|
|
1284
1232
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
1285
1233
|
return tslib_1.__generator(this, function (_a) {
|
|
1286
|
-
return [2
|
|
1234
|
+
return [2, this.enable_audit];
|
|
1287
1235
|
});
|
|
1288
1236
|
});
|
|
1289
1237
|
};
|
|
@@ -1291,8 +1239,8 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1291
1239
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
1292
1240
|
return tslib_1.__generator(this, function (_a) {
|
|
1293
1241
|
switch (_a.label) {
|
|
1294
|
-
case 0: return [4
|
|
1295
|
-
case 1: return [2
|
|
1242
|
+
case 0: return [4, this.callMetadataObjectServiceAction("getDetails", { objectApiName: this.name })];
|
|
1243
|
+
case 1: return [2, _a.sent()];
|
|
1296
1244
|
}
|
|
1297
1245
|
});
|
|
1298
1246
|
});
|
|
@@ -1301,8 +1249,8 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1301
1249
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
1302
1250
|
return tslib_1.__generator(this, function (_a) {
|
|
1303
1251
|
switch (_a.label) {
|
|
1304
|
-
case 0: return [4
|
|
1305
|
-
case 1: return [2
|
|
1252
|
+
case 0: return [4, this.callMetadataObjectServiceAction("getMasters", { objectApiName: this.name })];
|
|
1253
|
+
case 1: return [2, _a.sent()];
|
|
1306
1254
|
}
|
|
1307
1255
|
});
|
|
1308
1256
|
});
|
|
@@ -1311,8 +1259,8 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1311
1259
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
1312
1260
|
return tslib_1.__generator(this, function (_a) {
|
|
1313
1261
|
switch (_a.label) {
|
|
1314
|
-
case 0: return [4
|
|
1315
|
-
case 1: return [2
|
|
1262
|
+
case 0: return [4, this.callMetadataObjectServiceAction("getLookupDetails", { objectApiName: this.name })];
|
|
1263
|
+
case 1: return [2, _a.sent()];
|
|
1316
1264
|
}
|
|
1317
1265
|
});
|
|
1318
1266
|
});
|
|
@@ -1321,8 +1269,8 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1321
1269
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
1322
1270
|
return tslib_1.__generator(this, function (_a) {
|
|
1323
1271
|
switch (_a.label) {
|
|
1324
|
-
case 0: return [4
|
|
1325
|
-
case 1: return [2
|
|
1272
|
+
case 0: return [4, this.callMetadataObjectServiceAction("getDetailsInfo", { objectApiName: this.name })];
|
|
1273
|
+
case 1: return [2, _a.sent()];
|
|
1326
1274
|
}
|
|
1327
1275
|
});
|
|
1328
1276
|
});
|
|
@@ -1331,8 +1279,8 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1331
1279
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
1332
1280
|
return tslib_1.__generator(this, function (_a) {
|
|
1333
1281
|
switch (_a.label) {
|
|
1334
|
-
case 0: return [4
|
|
1335
|
-
case 1: return [2
|
|
1282
|
+
case 0: return [4, this.callMetadataObjectServiceAction("getMastersInfo", { objectApiName: this.name })];
|
|
1283
|
+
case 1: return [2, _a.sent()];
|
|
1336
1284
|
}
|
|
1337
1285
|
});
|
|
1338
1286
|
});
|
|
@@ -1341,21 +1289,18 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1341
1289
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
1342
1290
|
return tslib_1.__generator(this, function (_a) {
|
|
1343
1291
|
switch (_a.label) {
|
|
1344
|
-
case 0: return [4
|
|
1345
|
-
case 1: return [2
|
|
1292
|
+
case 0: return [4, this.callMetadataObjectServiceAction("getLookupDetailsInfo", { objectApiName: this.name })];
|
|
1293
|
+
case 1: return [2, _a.sent()];
|
|
1346
1294
|
}
|
|
1347
1295
|
});
|
|
1348
1296
|
});
|
|
1349
1297
|
};
|
|
1350
|
-
/**
|
|
1351
|
-
* 此函数返回getDetailsInfo、getMastersInfo、getLookupDetailsInfo 3个请求的结果,用于优化访问速度
|
|
1352
|
-
*/
|
|
1353
1298
|
SteedosObjectType.prototype.getRelationsInfo = function () {
|
|
1354
1299
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
1355
1300
|
return tslib_1.__generator(this, function (_a) {
|
|
1356
1301
|
switch (_a.label) {
|
|
1357
|
-
case 0: return [4
|
|
1358
|
-
case 1: return [2
|
|
1302
|
+
case 0: return [4, this.callMetadataObjectServiceAction("getRelationsInfo", { objectApiName: this.name })];
|
|
1303
|
+
case 1: return [2, _a.sent()];
|
|
1359
1304
|
}
|
|
1360
1305
|
});
|
|
1361
1306
|
});
|
|
@@ -1365,13 +1310,13 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1365
1310
|
var permissions, userId, user_company_ids, recordOwnerId, isOwner, record_company_id, record_company_ids;
|
|
1366
1311
|
return tslib_1.__generator(this, function (_a) {
|
|
1367
1312
|
switch (_a.label) {
|
|
1368
|
-
case 0: return [4
|
|
1313
|
+
case 0: return [4, this.getUserObjectPermission(userSession)];
|
|
1369
1314
|
case 1:
|
|
1370
1315
|
permissions = _a.sent();
|
|
1371
1316
|
userId = userSession.userId, user_company_ids = userSession.company_ids;
|
|
1372
1317
|
if (record) {
|
|
1373
1318
|
if (record.record_permissions) {
|
|
1374
|
-
return [2
|
|
1319
|
+
return [2, record.record_permissions];
|
|
1375
1320
|
}
|
|
1376
1321
|
recordOwnerId = record.owner;
|
|
1377
1322
|
if (_.isObject(recordOwnerId)) {
|
|
@@ -1426,23 +1371,11 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1426
1371
|
}
|
|
1427
1372
|
}
|
|
1428
1373
|
}
|
|
1429
|
-
return [2
|
|
1374
|
+
return [2, permissions];
|
|
1430
1375
|
}
|
|
1431
1376
|
});
|
|
1432
1377
|
});
|
|
1433
1378
|
};
|
|
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
1379
|
SteedosObjectType.prototype.getAccessFields = function (objectFields, objectLayout, objectPermission) {
|
|
1447
1380
|
var accessFields = {};
|
|
1448
1381
|
var universallyRequiredFields = _.filter(objectFields, function (objectFile) {
|
|
@@ -1461,12 +1394,17 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1461
1394
|
is_readonly: false,
|
|
1462
1395
|
});
|
|
1463
1396
|
}
|
|
1464
|
-
// 如果配置了页面布局且没有授权字段时, 不显示此字段
|
|
1465
1397
|
if (objectLayout && !fieldLayout) {
|
|
1466
1398
|
return;
|
|
1467
1399
|
}
|
|
1400
|
+
if (field.generated) {
|
|
1401
|
+
field.readonly = true;
|
|
1402
|
+
delete field.omit;
|
|
1403
|
+
if ((0, lodash_1.isNil)(field.visible_on)) {
|
|
1404
|
+
field.visible_on = "{{false}}";
|
|
1405
|
+
}
|
|
1406
|
+
}
|
|
1468
1407
|
var _a = fieldPermission || { read: !field.hidden, edit: !field.hidden && !field.readonly }, read = _a.read, edit = _a.edit;
|
|
1469
|
-
// 通用必填字段始终可见、可编辑
|
|
1470
1408
|
if (isUniversallyRequiredField) {
|
|
1471
1409
|
read = true;
|
|
1472
1410
|
edit = true;
|
|
@@ -1474,18 +1412,9 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1474
1412
|
if (fieldLayout && fieldLayout.is_readonly) {
|
|
1475
1413
|
edit = false;
|
|
1476
1414
|
}
|
|
1477
|
-
//不可查看: 配置了字段权限且不可查看; 没有配置字段权限,字段的hidden为true
|
|
1478
1415
|
if (read === false) {
|
|
1479
1416
|
return;
|
|
1480
1417
|
}
|
|
1481
|
-
// 自增字段移除omit属性,添加visible_on属性。
|
|
1482
|
-
if (field.generated) {
|
|
1483
|
-
delete field.omit;
|
|
1484
|
-
if ((0, lodash_1.isNil)(field.visible_on)) {
|
|
1485
|
-
field.visible_on = "{{false}}";
|
|
1486
|
-
}
|
|
1487
|
-
}
|
|
1488
|
-
//可查看不可编辑: 配置了字段权限可查看不可编辑; 没有配置字段权限 字段的hidden 为false 且字段的readonly为true
|
|
1489
1418
|
if (read === true && edit === false) {
|
|
1490
1419
|
accessFields[field.name] = Object.assign({}, field, {
|
|
1491
1420
|
hidden: false,
|
|
@@ -1495,7 +1424,6 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1495
1424
|
});
|
|
1496
1425
|
return;
|
|
1497
1426
|
}
|
|
1498
|
-
//可查看可编辑: 配置了字段权限可查看可编辑; 没有配置字段权限 字段的hidden 为false 且字段的readonly为false
|
|
1499
1427
|
if (read === true && edit === true) {
|
|
1500
1428
|
accessFields[field.name] = Object.assign({}, field, {
|
|
1501
1429
|
hidden: false,
|
|
@@ -1522,7 +1450,6 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1522
1450
|
sort_no_1++;
|
|
1523
1451
|
}
|
|
1524
1452
|
});
|
|
1525
|
-
//处理通用必填字段默认显示顺序
|
|
1526
1453
|
_.each(universallyRequiredFieldsName, function (fieldName) {
|
|
1527
1454
|
var fieldLayout = _.find(objectLayout.fields, function (item) { return item.field_name == fieldName; });
|
|
1528
1455
|
if (!fieldLayout) {
|
|
@@ -1542,8 +1469,8 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1542
1469
|
case 0:
|
|
1543
1470
|
objectConfig = context.objectConfig, layouts = context.layouts, spaceProcessDefinition = context.spaceProcessDefinition, dbListViews = context.dbListViews, rolesFieldsPermission = context.rolesFieldsPermission, relationsInfo = context.relationsInfo;
|
|
1544
1471
|
lng = userSession.language;
|
|
1545
|
-
if (!!objectConfig) return [3
|
|
1546
|
-
return [4
|
|
1472
|
+
if (!!objectConfig) return [3, 2];
|
|
1473
|
+
return [4, this.callMetadataObjectServiceAction('get', { objectApiName: this.name })];
|
|
1547
1474
|
case 1:
|
|
1548
1475
|
objectMetadataConfig = _b.sent();
|
|
1549
1476
|
objectConfig = objectMetadataConfig.metadata;
|
|
@@ -1552,11 +1479,11 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1552
1479
|
objectConfig.name = this.name;
|
|
1553
1480
|
objectConfig.datasource = this.datasource.name;
|
|
1554
1481
|
_a = objectConfig;
|
|
1555
|
-
return [4
|
|
1482
|
+
return [4, this.getUserObjectPermission(userSession, rolesFieldsPermission)];
|
|
1556
1483
|
case 3:
|
|
1557
1484
|
_a.permissions = _b.sent();
|
|
1558
|
-
if (!!relationsInfo) return [3
|
|
1559
|
-
return [4
|
|
1485
|
+
if (!!relationsInfo) return [3, 5];
|
|
1486
|
+
return [4, this.getRelationsInfo()];
|
|
1560
1487
|
case 4:
|
|
1561
1488
|
relationsInfo = _b.sent();
|
|
1562
1489
|
_b.label = 5;
|
|
@@ -1566,8 +1493,8 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1566
1493
|
objectConfig.lookup_details = relationsInfo.lookup_details;
|
|
1567
1494
|
delete objectConfig.db;
|
|
1568
1495
|
(0, i18n_1.translationObject)(lng, objectConfig.name, objectConfig, true);
|
|
1569
|
-
if (!!layouts) return [3
|
|
1570
|
-
return [4
|
|
1496
|
+
if (!!layouts) return [3, 7];
|
|
1497
|
+
return [4, (0, object_layouts_1.getObjectLayouts)(userSession.profile, userSession.spaceId, this.name)];
|
|
1571
1498
|
case 6:
|
|
1572
1499
|
layouts = _b.sent();
|
|
1573
1500
|
_b.label = 7;
|
|
@@ -1601,8 +1528,8 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1601
1528
|
});
|
|
1602
1529
|
}
|
|
1603
1530
|
objectConfig.fields = this.getAccessFields(objectConfig.fields, objectLayout, objectConfig.permissions);
|
|
1604
|
-
if (!!spaceProcessDefinition) return [3
|
|
1605
|
-
return [4
|
|
1531
|
+
if (!!spaceProcessDefinition) return [3, 9];
|
|
1532
|
+
return [4, getObject("process_definition").directFind({ filters: [['space', '=', userSession.spaceId], ['object_name', '=', this.name], ['active', '=', true]] })];
|
|
1606
1533
|
case 8:
|
|
1607
1534
|
spaceProcessDefinition = _b.sent();
|
|
1608
1535
|
_b.label = 9;
|
|
@@ -1610,14 +1537,13 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1610
1537
|
if (spaceProcessDefinition.length > 0) {
|
|
1611
1538
|
objectConfig.enable_process = true;
|
|
1612
1539
|
}
|
|
1613
|
-
//清理数据
|
|
1614
1540
|
_.each(objectConfig.triggers, function (trigger, key) {
|
|
1615
1541
|
if ((trigger === null || trigger === void 0 ? void 0 : trigger.on) != 'client') {
|
|
1616
1542
|
delete objectConfig.triggers[key];
|
|
1617
1543
|
}
|
|
1618
1544
|
});
|
|
1619
|
-
if (!!dbListViews) return [3
|
|
1620
|
-
return [4
|
|
1545
|
+
if (!!dbListViews) return [3, 11];
|
|
1546
|
+
return [4, getObject("object_listviews").directFind({ filters: [['space', '=', userSession.spaceId], ['object_name', '=', this.name], [['owner', '=', userSession.userId], 'or', ['shared', '=', true]]] })];
|
|
1621
1547
|
case 10:
|
|
1622
1548
|
dbListViews = _b.sent();
|
|
1623
1549
|
_b.label = 11;
|
|
@@ -1633,7 +1559,7 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1633
1559
|
delete objectConfig.listeners;
|
|
1634
1560
|
delete objectConfig.__filename;
|
|
1635
1561
|
delete objectConfig.extend;
|
|
1636
|
-
return [2
|
|
1562
|
+
return [2, objectConfig];
|
|
1637
1563
|
}
|
|
1638
1564
|
});
|
|
1639
1565
|
});
|
|
@@ -1650,7 +1576,7 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1650
1576
|
buttons = [];
|
|
1651
1577
|
fields = [];
|
|
1652
1578
|
related_lists = [];
|
|
1653
|
-
return [4
|
|
1579
|
+
return [4, this.callMetadataObjectServiceAction('getOriginalObject', { objectApiName: this.name })];
|
|
1654
1580
|
case 1:
|
|
1655
1581
|
objectConfig = _b.sent();
|
|
1656
1582
|
sortedFields = [];
|
|
@@ -1664,17 +1590,16 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1664
1590
|
layoutField.is_readonly = field.readonly;
|
|
1665
1591
|
layoutField.is_required = field.required;
|
|
1666
1592
|
layoutField.group = field.group;
|
|
1667
|
-
// layoutField.visible_on = `${!field.hidden}`;
|
|
1668
1593
|
fields.push(layoutField);
|
|
1669
1594
|
});
|
|
1670
1595
|
relatedLists = [];
|
|
1671
1596
|
if (this.enable_files) {
|
|
1672
1597
|
relatedLists.push("cms_files.parent");
|
|
1673
1598
|
}
|
|
1674
|
-
return [4
|
|
1599
|
+
return [4, this.getDetailsInfo()];
|
|
1675
1600
|
case 2:
|
|
1676
1601
|
details = _b.sent();
|
|
1677
|
-
return [4
|
|
1602
|
+
return [4, this.getLookupDetailsInfo()];
|
|
1678
1603
|
case 3:
|
|
1679
1604
|
lookup_details = _b.sent();
|
|
1680
1605
|
relatedLists = relatedLists.concat(_.union(details, lookup_details));
|
|
@@ -1705,12 +1630,12 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1705
1630
|
switch (_c.label) {
|
|
1706
1631
|
case 0:
|
|
1707
1632
|
related = relatedLists_1_1.value;
|
|
1708
|
-
if (!related) return [3
|
|
1633
|
+
if (!related) return [3, 2];
|
|
1709
1634
|
relatedItem = {};
|
|
1710
1635
|
relatedItem.related_field_fullname = related;
|
|
1711
1636
|
foo = related.split('.');
|
|
1712
1637
|
rObjectName = foo[0];
|
|
1713
|
-
return [4
|
|
1638
|
+
return [4, getObject(rObjectName).toConfig()];
|
|
1714
1639
|
case 1:
|
|
1715
1640
|
relatedObject = _c.sent();
|
|
1716
1641
|
relatedObjectAllListView = _.find(relatedObject.list_views, function (listview) {
|
|
@@ -1730,37 +1655,37 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1730
1655
|
}
|
|
1731
1656
|
related_lists.push(relatedItem);
|
|
1732
1657
|
_c.label = 2;
|
|
1733
|
-
case 2: return [2
|
|
1658
|
+
case 2: return [2];
|
|
1734
1659
|
}
|
|
1735
1660
|
});
|
|
1736
1661
|
};
|
|
1737
1662
|
relatedLists_1 = tslib_1.__asyncValues(relatedLists);
|
|
1738
1663
|
_b.label = 5;
|
|
1739
|
-
case 5: return [4
|
|
1664
|
+
case 5: return [4, relatedLists_1.next()];
|
|
1740
1665
|
case 6:
|
|
1741
|
-
if (!(relatedLists_1_1 = _b.sent(), !relatedLists_1_1.done)) return [3
|
|
1742
|
-
return [5
|
|
1666
|
+
if (!(relatedLists_1_1 = _b.sent(), !relatedLists_1_1.done)) return [3, 9];
|
|
1667
|
+
return [5, _loop_1()];
|
|
1743
1668
|
case 7:
|
|
1744
1669
|
_b.sent();
|
|
1745
1670
|
_b.label = 8;
|
|
1746
|
-
case 8: return [3
|
|
1747
|
-
case 9: return [3
|
|
1671
|
+
case 8: return [3, 5];
|
|
1672
|
+
case 9: return [3, 16];
|
|
1748
1673
|
case 10:
|
|
1749
1674
|
e_4_1 = _b.sent();
|
|
1750
1675
|
e_4 = { error: e_4_1 };
|
|
1751
|
-
return [3
|
|
1676
|
+
return [3, 16];
|
|
1752
1677
|
case 11:
|
|
1753
1678
|
_b.trys.push([11, , 14, 15]);
|
|
1754
|
-
if (!(relatedLists_1_1 && !relatedLists_1_1.done && (_a = relatedLists_1.return))) return [3
|
|
1755
|
-
return [4
|
|
1679
|
+
if (!(relatedLists_1_1 && !relatedLists_1_1.done && (_a = relatedLists_1.return))) return [3, 13];
|
|
1680
|
+
return [4, _a.call(relatedLists_1)];
|
|
1756
1681
|
case 12:
|
|
1757
1682
|
_b.sent();
|
|
1758
1683
|
_b.label = 13;
|
|
1759
|
-
case 13: return [3
|
|
1684
|
+
case 13: return [3, 15];
|
|
1760
1685
|
case 14:
|
|
1761
1686
|
if (e_4) throw e_4.error;
|
|
1762
|
-
return [7
|
|
1763
|
-
case 15: return [7
|
|
1687
|
+
return [7];
|
|
1688
|
+
case 15: return [7];
|
|
1764
1689
|
case 16:
|
|
1765
1690
|
buttons.push({
|
|
1766
1691
|
button_name: 'standard_new'
|
|
@@ -1778,7 +1703,7 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1778
1703
|
});
|
|
1779
1704
|
}
|
|
1780
1705
|
});
|
|
1781
|
-
return [2
|
|
1706
|
+
return [2, {
|
|
1782
1707
|
object_name: object_name,
|
|
1783
1708
|
type: type,
|
|
1784
1709
|
buttons: buttons,
|
|
@@ -1802,15 +1727,15 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1802
1727
|
_a.label = 1;
|
|
1803
1728
|
case 1:
|
|
1804
1729
|
_a.trys.push([1, 4, , 5]);
|
|
1805
|
-
return [4
|
|
1730
|
+
return [4, this.getDefaultRecordView(userSession)];
|
|
1806
1731
|
case 2:
|
|
1807
1732
|
defaultRecordView = _a.sent();
|
|
1808
|
-
return [4
|
|
1809
|
-
case 3: return [2
|
|
1733
|
+
return [4, getObject('object_layouts').insert(Object.assign({}, defaultRecordView, { name: name, label: label, profiles: profiles }), userSession)];
|
|
1734
|
+
case 3: return [2, _a.sent()];
|
|
1810
1735
|
case 4:
|
|
1811
1736
|
error_3 = _a.sent();
|
|
1812
|
-
return [2
|
|
1813
|
-
case 5: return [2
|
|
1737
|
+
return [2, { error: error_3.message }];
|
|
1738
|
+
case 5: return [2];
|
|
1814
1739
|
}
|
|
1815
1740
|
});
|
|
1816
1741
|
});
|
|
@@ -1826,10 +1751,10 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1826
1751
|
if (this.enable_files) {
|
|
1827
1752
|
related_objects.push({ object_name: "cms_files", foreign_key: "parent" });
|
|
1828
1753
|
}
|
|
1829
|
-
return [4
|
|
1754
|
+
return [4, this.getDetailsInfo()];
|
|
1830
1755
|
case 1:
|
|
1831
1756
|
detailsInfo = _b.sent();
|
|
1832
|
-
return [4
|
|
1757
|
+
return [4, this.getLookupDetailsInfo()];
|
|
1833
1758
|
case 2:
|
|
1834
1759
|
lookupsInfo = _b.sent();
|
|
1835
1760
|
relatedInfos = detailsInfo.concat(lookupsInfo);
|
|
@@ -1839,13 +1764,13 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1839
1764
|
relatedInfos_1 = tslib_1.__values(relatedInfos), relatedInfos_1_1 = relatedInfos_1.next();
|
|
1840
1765
|
_b.label = 4;
|
|
1841
1766
|
case 4:
|
|
1842
|
-
if (!!relatedInfos_1_1.done) return [3
|
|
1767
|
+
if (!!relatedInfos_1_1.done) return [3, 7];
|
|
1843
1768
|
info = relatedInfos_1_1.value;
|
|
1844
|
-
if (!!info.startsWith('__')) return [3
|
|
1769
|
+
if (!!info.startsWith('__')) return [3, 6];
|
|
1845
1770
|
infos = info.split('.');
|
|
1846
1771
|
detailObjectApiName = infos[0];
|
|
1847
1772
|
detailFieldName = infos[1];
|
|
1848
|
-
return [4
|
|
1773
|
+
return [4, getObject(detailObjectApiName).getField(detailFieldName)];
|
|
1849
1774
|
case 5:
|
|
1850
1775
|
related_field = _b.sent();
|
|
1851
1776
|
if (related_field) {
|
|
@@ -1861,18 +1786,18 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1861
1786
|
_b.label = 6;
|
|
1862
1787
|
case 6:
|
|
1863
1788
|
relatedInfos_1_1 = relatedInfos_1.next();
|
|
1864
|
-
return [3
|
|
1865
|
-
case 7: return [3
|
|
1789
|
+
return [3, 4];
|
|
1790
|
+
case 7: return [3, 10];
|
|
1866
1791
|
case 8:
|
|
1867
1792
|
e_5_1 = _b.sent();
|
|
1868
1793
|
e_5 = { error: e_5_1 };
|
|
1869
|
-
return [3
|
|
1794
|
+
return [3, 10];
|
|
1870
1795
|
case 9:
|
|
1871
1796
|
try {
|
|
1872
1797
|
if (relatedInfos_1_1 && !relatedInfos_1_1.done && (_a = relatedInfos_1.return)) _a.call(relatedInfos_1);
|
|
1873
1798
|
}
|
|
1874
1799
|
finally { if (e_5) throw e_5.error; }
|
|
1875
|
-
return [7
|
|
1800
|
+
return [7];
|
|
1876
1801
|
case 10:
|
|
1877
1802
|
if (this.enable_tasks) {
|
|
1878
1803
|
related_objects.push({ object_name: "tasks", foreign_key: "related_to" });
|
|
@@ -1892,7 +1817,7 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1892
1817
|
if (this.enable_process) {
|
|
1893
1818
|
related_objects.push({ object_name: "process_instance_history", foreign_key: "target_object" });
|
|
1894
1819
|
}
|
|
1895
|
-
return [2
|
|
1820
|
+
return [2, related_objects];
|
|
1896
1821
|
}
|
|
1897
1822
|
});
|
|
1898
1823
|
});
|
|
@@ -1907,8 +1832,8 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1907
1832
|
switch (_a.label) {
|
|
1908
1833
|
case 0:
|
|
1909
1834
|
clonedQuery = Object.assign({}, query);
|
|
1910
|
-
return [4
|
|
1911
|
-
case 1: return [2
|
|
1835
|
+
return [4, this.callAdapter('count', this.table_name, clonedQuery, userSession)];
|
|
1836
|
+
case 1: return [2, _a.sent()];
|
|
1912
1837
|
}
|
|
1913
1838
|
});
|
|
1914
1839
|
});
|
|
@@ -1919,24 +1844,24 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1919
1844
|
switch (_a.label) {
|
|
1920
1845
|
case 0:
|
|
1921
1846
|
if (_.isNull(userSession) || _.isUndefined(userSession)) {
|
|
1922
|
-
return [2
|
|
1847
|
+
return [2, true];
|
|
1923
1848
|
}
|
|
1924
|
-
if (!(method === 'find' || method === 'findOne' || method === 'count' || method === 'aggregate' || method === 'aggregatePrefixalPipeline')) return [3
|
|
1925
|
-
return [4
|
|
1926
|
-
case 1: return [2
|
|
1849
|
+
if (!(method === 'find' || method === 'findOne' || method === 'count' || method === 'aggregate' || method === 'aggregatePrefixalPipeline')) return [3, 2];
|
|
1850
|
+
return [4, this.allowRead(userSession)];
|
|
1851
|
+
case 1: return [2, _a.sent()];
|
|
1927
1852
|
case 2:
|
|
1928
|
-
if (!(method === 'insert')) return [3
|
|
1929
|
-
return [4
|
|
1930
|
-
case 3: return [2
|
|
1853
|
+
if (!(method === 'insert')) return [3, 4];
|
|
1854
|
+
return [4, this.allowInsert(userSession)];
|
|
1855
|
+
case 3: return [2, _a.sent()];
|
|
1931
1856
|
case 4:
|
|
1932
|
-
if (!(method === 'update' || method === 'updateOne' || method === 'updateMany')) return [3
|
|
1933
|
-
return [4
|
|
1934
|
-
case 5: return [2
|
|
1857
|
+
if (!(method === 'update' || method === 'updateOne' || method === 'updateMany')) return [3, 6];
|
|
1858
|
+
return [4, this.allowUpdate(userSession)];
|
|
1859
|
+
case 5: return [2, _a.sent()];
|
|
1935
1860
|
case 6:
|
|
1936
|
-
if (!(method === 'delete')) return [3
|
|
1937
|
-
return [4
|
|
1938
|
-
case 7: return [2
|
|
1939
|
-
case 8: return [2
|
|
1861
|
+
if (!(method === 'delete')) return [3, 8];
|
|
1862
|
+
return [4, this.allowDelete(userSession)];
|
|
1863
|
+
case 7: return [2, _a.sent()];
|
|
1864
|
+
case 8: return [2];
|
|
1940
1865
|
}
|
|
1941
1866
|
});
|
|
1942
1867
|
});
|
|
@@ -1952,11 +1877,11 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1952
1877
|
}
|
|
1953
1878
|
meteorWhen = "before".concat(method.charAt(0).toLocaleUpperCase()).concat(_.rest(tslib_1.__spreadArray([], tslib_1.__read(method), false)).join(''));
|
|
1954
1879
|
when = "before.".concat(method);
|
|
1955
|
-
return [4
|
|
1880
|
+
return [4, this.runTriggers(meteorWhen, context)];
|
|
1956
1881
|
case 1:
|
|
1957
1882
|
_a.sent();
|
|
1958
|
-
return [4
|
|
1959
|
-
case 2: return [2
|
|
1883
|
+
return [4, this.runTriggerActions(when, context)];
|
|
1884
|
+
case 2: return [2, _a.sent()];
|
|
1960
1885
|
}
|
|
1961
1886
|
});
|
|
1962
1887
|
});
|
|
@@ -1969,11 +1894,11 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1969
1894
|
case 0:
|
|
1970
1895
|
meteorWhen = "after".concat(method.charAt(0).toLocaleUpperCase()).concat(_.rest(tslib_1.__spreadArray([], tslib_1.__read(method), false)).join(''));
|
|
1971
1896
|
when = "after.".concat(method);
|
|
1972
|
-
return [4
|
|
1897
|
+
return [4, this.runTriggers(meteorWhen, context)];
|
|
1973
1898
|
case 1:
|
|
1974
1899
|
_a.sent();
|
|
1975
|
-
return [4
|
|
1976
|
-
case 2: return [2
|
|
1900
|
+
return [4, this.runTriggerActions(when, context)];
|
|
1901
|
+
case 2: return [2, _a.sent()];
|
|
1977
1902
|
}
|
|
1978
1903
|
});
|
|
1979
1904
|
});
|
|
@@ -1985,15 +1910,15 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1985
1910
|
switch (_a.label) {
|
|
1986
1911
|
case 0:
|
|
1987
1912
|
_ids = _.pluck(records, '_id');
|
|
1988
|
-
return [4
|
|
1913
|
+
return [4, this.getUserObjectPermission(userSession, false)];
|
|
1989
1914
|
case 1:
|
|
1990
1915
|
objPm = _a.sent();
|
|
1991
1916
|
permissionFilters = this.getObjectEditPermissionFilters(objPm, userSession);
|
|
1992
1917
|
if (_.isEmpty(permissionFilters)) {
|
|
1993
|
-
return [2
|
|
1918
|
+
return [2];
|
|
1994
1919
|
}
|
|
1995
1920
|
filters = (0, filters_1.formatFiltersToODataQuery)(['_id', 'in', _ids]);
|
|
1996
|
-
return [4
|
|
1921
|
+
return [4, this.directFind({
|
|
1997
1922
|
fields: ['_id'],
|
|
1998
1923
|
filters: "(".concat(filters, ") and (").concat(permissionFilters.join(' or '), ")")
|
|
1999
1924
|
})];
|
|
@@ -2009,7 +1934,7 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
2009
1934
|
};
|
|
2010
1935
|
}
|
|
2011
1936
|
});
|
|
2012
|
-
return [2
|
|
1937
|
+
return [2];
|
|
2013
1938
|
}
|
|
2014
1939
|
});
|
|
2015
1940
|
});
|
|
@@ -2034,13 +1959,13 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
2034
1959
|
if (method === 'insert' || method === 'update') {
|
|
2035
1960
|
context.doc = args[args.length - 2];
|
|
2036
1961
|
}
|
|
2037
|
-
if (!(when === 'after' && (method === 'update' || method === 'delete'))) return [3
|
|
1962
|
+
if (!(when === 'after' && (method === 'update' || method === 'delete'))) return [3, 2];
|
|
2038
1963
|
_a = context;
|
|
2039
|
-
return [4
|
|
1964
|
+
return [4, this.findOne(recordId, {}, userSession)];
|
|
2040
1965
|
case 1:
|
|
2041
1966
|
_a.previousDoc = _b.sent();
|
|
2042
1967
|
_b.label = 2;
|
|
2043
|
-
case 2: return [2
|
|
1968
|
+
case 2: return [2, context];
|
|
2044
1969
|
}
|
|
2045
1970
|
});
|
|
2046
1971
|
});
|
|
@@ -2052,9 +1977,9 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
2052
1977
|
switch (_a.label) {
|
|
2053
1978
|
case 0:
|
|
2054
1979
|
if (!userSession) {
|
|
2055
|
-
return [2
|
|
1980
|
+
return [2];
|
|
2056
1981
|
}
|
|
2057
|
-
return [4
|
|
1982
|
+
return [4, this.getUserObjectPermission(userSession, false)];
|
|
2058
1983
|
case 1:
|
|
2059
1984
|
userObjectPermission = _a.sent();
|
|
2060
1985
|
userObjectUnreadableFields = userObjectPermission.unreadable_fields;
|
|
@@ -2085,27 +2010,11 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
2085
2010
|
}
|
|
2086
2011
|
query.fields = queryFields_1.join(',');
|
|
2087
2012
|
}
|
|
2088
|
-
return [2
|
|
2013
|
+
return [2];
|
|
2089
2014
|
}
|
|
2090
2015
|
});
|
|
2091
2016
|
});
|
|
2092
2017
|
};
|
|
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
2018
|
SteedosObjectType.prototype.formatRecord = function (doc) {
|
|
2110
2019
|
var adapterFormat = this._datasource["formatRecord"];
|
|
2111
2020
|
if (typeof adapterFormat == 'function') {
|
|
@@ -2119,7 +2028,7 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
2119
2028
|
args[_i - 1] = arguments[_i];
|
|
2120
2029
|
}
|
|
2121
2030
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
2122
|
-
var adapterMethod, userSession, allow,
|
|
2031
|
+
var adapterMethod, userSession, allow, recordId, doc, objectName, paramRecordId, returnValue, beforeTriggerContext, afterTriggerContext, previousDoc, values, _records;
|
|
2123
2032
|
return tslib_1.__generator(this, function (_a) {
|
|
2124
2033
|
switch (_a.label) {
|
|
2125
2034
|
case 0:
|
|
@@ -2128,8 +2037,8 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
2128
2037
|
throw new Error('Adapted does not support "' + method + '" method');
|
|
2129
2038
|
}
|
|
2130
2039
|
userSession = args[args.length - 1];
|
|
2131
|
-
if (!!_.isEmpty(userSession)) return [3
|
|
2132
|
-
return [4
|
|
2040
|
+
if (!!_.isEmpty(userSession)) return [3, 2];
|
|
2041
|
+
return [4, this.allow(method, userSession)];
|
|
2133
2042
|
case 1:
|
|
2134
2043
|
allow = _a.sent();
|
|
2135
2044
|
if (!allow) {
|
|
@@ -2137,11 +2046,9 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
2137
2046
|
}
|
|
2138
2047
|
_a.label = 2;
|
|
2139
2048
|
case 2:
|
|
2140
|
-
objectName =
|
|
2049
|
+
objectName = this.name;
|
|
2141
2050
|
if (["insert", "update", "updateMany", "delete"].indexOf(method) > -1) {
|
|
2142
|
-
// 因下面的代码,比如函数dealWithMethodPermission可能改写args变量,所以需要提前从args取出对应变量值。
|
|
2143
2051
|
if (method === "insert") {
|
|
2144
|
-
// 此处doc不带_id值,得执行完adapterMethod.apply后,doc中才有_id属性,所以这里的doc及recordId都不准确
|
|
2145
2052
|
doc = args[1];
|
|
2146
2053
|
recordId = doc._id;
|
|
2147
2054
|
}
|
|
@@ -2153,32 +2060,32 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
2153
2060
|
if (method === 'findOne' || method === 'update' || method === 'delete') {
|
|
2154
2061
|
paramRecordId = args[1];
|
|
2155
2062
|
}
|
|
2156
|
-
if (!(!_.isEmpty(userSession) && this._datasource.enable_space)) return [3
|
|
2063
|
+
if (!(!_.isEmpty(userSession) && this._datasource.enable_space)) return [3, 4];
|
|
2157
2064
|
this.dealWithFilters(method, args);
|
|
2158
|
-
return [4
|
|
2065
|
+
return [4, this.dealWithMethodPermission(method, args)];
|
|
2159
2066
|
case 3:
|
|
2160
2067
|
_a.sent();
|
|
2161
2068
|
_a.label = 4;
|
|
2162
2069
|
case 4:
|
|
2163
|
-
if (!this.isDirectCRUD(method)) return [3
|
|
2070
|
+
if (!this.isDirectCRUD(method)) return [3, 6];
|
|
2164
2071
|
args.splice(args.length - 1, 1, userSession ? userSession.userId : undefined);
|
|
2165
|
-
return [4
|
|
2072
|
+
return [4, adapterMethod.apply(this._datasource, args)];
|
|
2166
2073
|
case 5:
|
|
2167
2074
|
returnValue = _a.sent();
|
|
2168
|
-
return [3
|
|
2169
|
-
case 6: return [4
|
|
2075
|
+
return [3, 26];
|
|
2076
|
+
case 6: return [4, this.getTriggerContext('before', method, args)];
|
|
2170
2077
|
case 7:
|
|
2171
2078
|
beforeTriggerContext = _a.sent();
|
|
2172
2079
|
if (paramRecordId) {
|
|
2173
2080
|
beforeTriggerContext = Object.assign({}, beforeTriggerContext, { id: paramRecordId });
|
|
2174
2081
|
}
|
|
2175
|
-
return [4
|
|
2082
|
+
return [4, this.runBeforeTriggers(method, beforeTriggerContext)];
|
|
2176
2083
|
case 8:
|
|
2177
2084
|
_a.sent();
|
|
2178
|
-
return [4
|
|
2085
|
+
return [4, (0, validation_rules_1.runValidationRules)(method, beforeTriggerContext, args[0], userSession)];
|
|
2179
2086
|
case 9:
|
|
2180
2087
|
_a.sent();
|
|
2181
|
-
return [4
|
|
2088
|
+
return [4, this.getTriggerContext('after', method, args, paramRecordId)];
|
|
2182
2089
|
case 10:
|
|
2183
2090
|
afterTriggerContext = _a.sent();
|
|
2184
2091
|
if (paramRecordId) {
|
|
@@ -2186,21 +2093,21 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
2186
2093
|
}
|
|
2187
2094
|
previousDoc = clone(afterTriggerContext.previousDoc);
|
|
2188
2095
|
args.splice(args.length - 1, 1, userSession ? userSession.userId : undefined);
|
|
2189
|
-
return [4
|
|
2096
|
+
return [4, adapterMethod.apply(this._datasource, args)];
|
|
2190
2097
|
case 11:
|
|
2191
2098
|
returnValue = _a.sent();
|
|
2192
|
-
if (!(method === 'find' || method == 'findOne' || method == 'count' || method == 'aggregate' || method == 'aggregatePrefixalPipeline')) return [3
|
|
2099
|
+
if (!(method === 'find' || method == 'findOne' || method == 'count' || method == 'aggregate' || method == 'aggregatePrefixalPipeline')) return [3, 15];
|
|
2193
2100
|
values = clone(returnValue) || {};
|
|
2194
|
-
if (!(method === 'count')) return [3
|
|
2101
|
+
if (!(method === 'count')) return [3, 12];
|
|
2195
2102
|
values = returnValue || 0;
|
|
2196
|
-
return [3
|
|
2103
|
+
return [3, 14];
|
|
2197
2104
|
case 12:
|
|
2198
|
-
if (!userSession) return [3
|
|
2105
|
+
if (!userSession) return [3, 14];
|
|
2199
2106
|
_records = returnValue;
|
|
2200
2107
|
if (method == 'findOne' && returnValue) {
|
|
2201
2108
|
_records = [_records];
|
|
2202
2109
|
}
|
|
2203
|
-
return [4
|
|
2110
|
+
return [4, this.appendRecordPermission(_records, userSession)];
|
|
2204
2111
|
case 13:
|
|
2205
2112
|
_a.sent();
|
|
2206
2113
|
_a.label = 14;
|
|
@@ -2208,33 +2115,32 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
2208
2115
|
Object.assign(afterTriggerContext, { data: { values: values } });
|
|
2209
2116
|
_a.label = 15;
|
|
2210
2117
|
case 15:
|
|
2211
|
-
// console.log("==returnValue==", returnValue);
|
|
2212
2118
|
if (method == 'insert' && _.has(returnValue, '_id')) {
|
|
2213
2119
|
afterTriggerContext.doc = returnValue;
|
|
2214
2120
|
afterTriggerContext = Object.assign({}, afterTriggerContext, { id: returnValue._id });
|
|
2215
2121
|
}
|
|
2216
|
-
if (!(method == "update")) return [3
|
|
2217
|
-
if (!returnValue) return [3
|
|
2122
|
+
if (!(method == "update")) return [3, 18];
|
|
2123
|
+
if (!returnValue) return [3, 17];
|
|
2218
2124
|
afterTriggerContext.doc = returnValue;
|
|
2219
|
-
return [4
|
|
2125
|
+
return [4, this.runAfterTriggers(method, afterTriggerContext)];
|
|
2220
2126
|
case 16:
|
|
2221
2127
|
_a.sent();
|
|
2222
2128
|
_a.label = 17;
|
|
2223
|
-
case 17: return [3
|
|
2224
|
-
case 18: return [4
|
|
2129
|
+
case 17: return [3, 20];
|
|
2130
|
+
case 18: return [4, this.runAfterTriggers(method, afterTriggerContext)];
|
|
2225
2131
|
case 19:
|
|
2226
2132
|
_a.sent();
|
|
2227
2133
|
_a.label = 20;
|
|
2228
2134
|
case 20:
|
|
2229
2135
|
if (method === 'find' || method == 'findOne' || method == 'count' || method == 'aggregate' || method == 'aggregatePrefixalPipeline') {
|
|
2230
2136
|
if (_.isEmpty(afterTriggerContext.data) || (_.isEmpty(afterTriggerContext.data.values) && !_.isNumber(afterTriggerContext.data.values))) {
|
|
2231
|
-
return [2
|
|
2137
|
+
return [2, returnValue];
|
|
2232
2138
|
}
|
|
2233
2139
|
else {
|
|
2234
|
-
return [2
|
|
2140
|
+
return [2, afterTriggerContext.data.values];
|
|
2235
2141
|
}
|
|
2236
2142
|
}
|
|
2237
|
-
return [4
|
|
2143
|
+
return [4, new actions_1.WorkflowRulesRunner({
|
|
2238
2144
|
object_name: this.name,
|
|
2239
2145
|
event: method,
|
|
2240
2146
|
record: returnValue,
|
|
@@ -2243,26 +2149,23 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
2243
2149
|
}).run()];
|
|
2244
2150
|
case 21:
|
|
2245
2151
|
_a.sent();
|
|
2246
|
-
if (!returnValue) return [3
|
|
2152
|
+
if (!returnValue) return [3, 24];
|
|
2247
2153
|
if (method === "insert") {
|
|
2248
|
-
// 当为insert时,上面代码执行后的doc不带_id,只能从returnValue中取
|
|
2249
2154
|
doc = returnValue;
|
|
2250
2155
|
recordId = doc._id;
|
|
2251
2156
|
}
|
|
2252
|
-
|
|
2253
|
-
return [4 /*yield*/, this.runRecordFormula(method, objectName, recordId, doc, userSession)];
|
|
2157
|
+
return [4, this.runRecordFormula(method, objectName, recordId, doc, userSession)];
|
|
2254
2158
|
case 22:
|
|
2255
|
-
// 一定要先运行公式再运行汇总,以下两个函数顺序不能反
|
|
2256
2159
|
_a.sent();
|
|
2257
|
-
return [4
|
|
2160
|
+
return [4, this.runRecordSummaries(method, objectName, recordId, doc, previousDoc, userSession)];
|
|
2258
2161
|
case 23:
|
|
2259
2162
|
_a.sent();
|
|
2260
2163
|
_a.label = 24;
|
|
2261
|
-
case 24: return [4
|
|
2164
|
+
case 24: return [4, (0, object_events_1.brokeEmitEvents)(objectName, method, afterTriggerContext)];
|
|
2262
2165
|
case 25:
|
|
2263
2166
|
_a.sent();
|
|
2264
2167
|
_a.label = 26;
|
|
2265
|
-
case 26: return [2
|
|
2168
|
+
case 26: return [2, returnValue];
|
|
2266
2169
|
}
|
|
2267
2170
|
});
|
|
2268
2171
|
});
|
|
@@ -2270,28 +2173,27 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
2270
2173
|
;
|
|
2271
2174
|
SteedosObjectType.prototype.runRecordFormula = function (method, objectName, recordId, doc, userSession) {
|
|
2272
2175
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
2273
|
-
var
|
|
2176
|
+
var onlyForOwn, withoutCurrent;
|
|
2274
2177
|
return tslib_1.__generator(this, function (_a) {
|
|
2275
2178
|
switch (_a.label) {
|
|
2276
2179
|
case 0:
|
|
2277
|
-
if (!(["insert", "update", "updateMany", "delete"].indexOf(method) > -1)) return [3
|
|
2278
|
-
if (!(method === "updateMany")) return [3
|
|
2279
|
-
return [3
|
|
2180
|
+
if (!(["insert", "update", "updateMany", "delete"].indexOf(method) > -1)) return [3, 5];
|
|
2181
|
+
if (!(method === "updateMany")) return [3, 1];
|
|
2182
|
+
return [3, 5];
|
|
2280
2183
|
case 1:
|
|
2281
|
-
|
|
2282
|
-
|
|
2283
|
-
return [4 /*yield*/, (0, formula_1.runCurrentObjectFieldFormulas)(objectName, recordId, doc, currentUserId, true)];
|
|
2184
|
+
if (!(method !== "delete")) return [3, 3];
|
|
2185
|
+
return [4, (0, formula_1.runCurrentObjectFieldFormulas)(objectName, recordId, doc, userSession, true)];
|
|
2284
2186
|
case 2:
|
|
2285
2187
|
_a.sent();
|
|
2286
2188
|
_a.label = 3;
|
|
2287
2189
|
case 3:
|
|
2288
2190
|
onlyForOwn = method === "insert";
|
|
2289
2191
|
withoutCurrent = method === "delete";
|
|
2290
|
-
return [4
|
|
2192
|
+
return [4, (0, formula_1.runQuotedByObjectFieldFormulas)(objectName, recordId, userSession, { onlyForOwn: onlyForOwn, withoutCurrent: withoutCurrent })];
|
|
2291
2193
|
case 4:
|
|
2292
2194
|
_a.sent();
|
|
2293
2195
|
_a.label = 5;
|
|
2294
|
-
case 5: return [2
|
|
2196
|
+
case 5: return [2];
|
|
2295
2197
|
}
|
|
2296
2198
|
});
|
|
2297
2199
|
});
|
|
@@ -2301,20 +2203,20 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
2301
2203
|
return tslib_1.__generator(this, function (_a) {
|
|
2302
2204
|
switch (_a.label) {
|
|
2303
2205
|
case 0:
|
|
2304
|
-
if (!(["insert", "update", "updateMany", "delete"].indexOf(method) > -1)) return [3
|
|
2305
|
-
if (!(method === "updateMany")) return [3
|
|
2306
|
-
return [3
|
|
2206
|
+
if (!(["insert", "update", "updateMany", "delete"].indexOf(method) > -1)) return [3, 5];
|
|
2207
|
+
if (!(method === "updateMany")) return [3, 1];
|
|
2208
|
+
return [3, 5];
|
|
2307
2209
|
case 1:
|
|
2308
|
-
if (!(method === "insert")) return [3
|
|
2309
|
-
return [4
|
|
2210
|
+
if (!(method === "insert")) return [3, 3];
|
|
2211
|
+
return [4, (0, summary_1.runCurrentObjectFieldSummaries)(objectName, recordId)];
|
|
2310
2212
|
case 2:
|
|
2311
2213
|
_a.sent();
|
|
2312
2214
|
_a.label = 3;
|
|
2313
|
-
case 3: return [4
|
|
2215
|
+
case 3: return [4, (0, summary_1.runQuotedByObjectFieldSummaries)(objectName, recordId, previousDoc, userSession)];
|
|
2314
2216
|
case 4:
|
|
2315
2217
|
_a.sent();
|
|
2316
2218
|
_a.label = 5;
|
|
2317
|
-
case 5: return [2
|
|
2219
|
+
case 5: return [2];
|
|
2318
2220
|
}
|
|
2319
2221
|
});
|
|
2320
2222
|
});
|
|
@@ -2326,10 +2228,6 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
2326
2228
|
}
|
|
2327
2229
|
return objectPermissionFilters;
|
|
2328
2230
|
};
|
|
2329
|
-
/**
|
|
2330
|
-
* 把query.filters用formatFiltersToODataQuery转为odata query
|
|
2331
|
-
* 主要是为了把userSession中的utcOffset逻辑传入formatFiltersToODataQuery函数处理
|
|
2332
|
-
*/
|
|
2333
2231
|
SteedosObjectType.prototype.dealWithFilters = function (method, args) {
|
|
2334
2232
|
var userSession = args[args.length - 1];
|
|
2335
2233
|
if (userSession) {
|
|
@@ -2351,13 +2249,13 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
2351
2249
|
switch (_a.label) {
|
|
2352
2250
|
case 0:
|
|
2353
2251
|
userSession = args[args.length - 1];
|
|
2354
|
-
if (!userSession) return [3
|
|
2252
|
+
if (!userSession) return [3, 5];
|
|
2355
2253
|
spaceId = userSession.spaceId;
|
|
2356
2254
|
userId = userSession.userId;
|
|
2357
|
-
return [4
|
|
2255
|
+
return [4, this.getUserObjectPermission(userSession, false)];
|
|
2358
2256
|
case 1:
|
|
2359
2257
|
objPm = _a.sent();
|
|
2360
|
-
if (!(method === 'find' || method === 'count' || method === 'findOne' || method === 'aggregate' || method === 'aggregatePrefixalPipeline')) return [3
|
|
2258
|
+
if (!(method === 'find' || method === 'count' || method === 'findOne' || method === 'aggregate' || method === 'aggregatePrefixalPipeline')) return [3, 4];
|
|
2361
2259
|
query = args[args.length - 2];
|
|
2362
2260
|
if (method === 'aggregate' || method === 'aggregatePrefixalPipeline') {
|
|
2363
2261
|
query = args[args.length - 3];
|
|
@@ -2366,17 +2264,15 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
2366
2264
|
query.filters = (0, filters_1.formatFiltersToODataQuery)(query.filters);
|
|
2367
2265
|
}
|
|
2368
2266
|
if (this.table_name == 'cfs.files.filerecord' || this.table_name == 'cfs.instances.filerecord') {
|
|
2369
|
-
return [2
|
|
2267
|
+
return [2];
|
|
2370
2268
|
}
|
|
2371
2269
|
if ((0, util_1.isCloudAdminSpace)(spaceId)) {
|
|
2372
|
-
return [2
|
|
2270
|
+
return [2];
|
|
2373
2271
|
}
|
|
2374
2272
|
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
2273
|
if (spaceId) {
|
|
2377
2274
|
spaceFilter = "(space eq '".concat(spaceId, "')");
|
|
2378
2275
|
}
|
|
2379
|
-
// 本公司权限
|
|
2380
2276
|
if (spaceId && !objPm.viewAllRecords && objPm.viewCompanyRecords) {
|
|
2381
2277
|
if (_.isEmpty(userSession.companies)) {
|
|
2382
2278
|
console.log('objPm', objPm);
|
|
@@ -2386,7 +2282,7 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
2386
2282
|
return "(company_id eq '".concat(comp._id, "') or (company_ids eq '").concat(comp._id, "')");
|
|
2387
2283
|
});
|
|
2388
2284
|
}
|
|
2389
|
-
if (!objPm.viewAllRecords && !objPm.viewCompanyRecords && objPm.allowRead) {
|
|
2285
|
+
if (!objPm.viewAllRecords && !objPm.viewCompanyRecords && objPm.allowRead) {
|
|
2390
2286
|
ownerFilter = "(owner eq '".concat(userId, "')");
|
|
2391
2287
|
}
|
|
2392
2288
|
viewAssignCompanysRecordsFilter_1 = [];
|
|
@@ -2398,25 +2294,18 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
2398
2294
|
if (!_.isEmpty(viewAssignCompanysRecordsFilter_1)) {
|
|
2399
2295
|
permissionFilters.push("(".concat(viewAssignCompanysRecordsFilter_1.join(' or '), ")"));
|
|
2400
2296
|
}
|
|
2401
|
-
return [4
|
|
2297
|
+
return [4, shareRule_1.ShareRules.getUserObjectFilters(this.name, userSession)];
|
|
2402
2298
|
case 2:
|
|
2403
|
-
//共享规则
|
|
2404
2299
|
shareRuleFilters = _a.sent();
|
|
2405
2300
|
if (!_.isEmpty(shareRuleFilters)) {
|
|
2406
2301
|
permissionFilters.push("(".concat(shareRuleFilters.join(' or '), ")"));
|
|
2407
2302
|
}
|
|
2408
|
-
return [4
|
|
2303
|
+
return [4, restrictionRule_1.RestrictionRule.getUserObjectFilters(this.name, userSession)];
|
|
2409
2304
|
case 3:
|
|
2410
|
-
// 限制规则
|
|
2411
2305
|
restrictionRuleFilters = _a.sent();
|
|
2412
2306
|
if (!_.isEmpty(restrictionRuleFilters)) {
|
|
2413
2307
|
userFilters.push("(".concat(restrictionRuleFilters.join(' or '), ")"));
|
|
2414
2308
|
}
|
|
2415
|
-
// objectPermissionFilters = this.getObjectPermissionFilters(objPm, userSession, false);
|
|
2416
|
-
// if (!_.isEmpty(objectPermissionFilters)) {
|
|
2417
|
-
// permissionFilters.push(`(${objectPermissionFilters.join(' or ')})`);
|
|
2418
|
-
// }
|
|
2419
|
-
//共享规则(旧)
|
|
2420
2309
|
sharesFilter = (0, util_1.getUserObjectSharesFilters)(this.name, userSession);
|
|
2421
2310
|
if (!_.isEmpty(companyFilter)) {
|
|
2422
2311
|
permissionFilters.push("(".concat(companyFilter.join(' or '), ")"));
|
|
@@ -2440,7 +2329,7 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
2440
2329
|
filters = filters ? "(".concat(filters, ") and (").concat(userFilters.join(' and '), ")") : userFilters.join(' and ');
|
|
2441
2330
|
}
|
|
2442
2331
|
query.filters = filters;
|
|
2443
|
-
return [3
|
|
2332
|
+
return [3, 5];
|
|
2444
2333
|
case 4:
|
|
2445
2334
|
if (method === 'insert') {
|
|
2446
2335
|
if (!objPm.allowCreate) {
|
|
@@ -2550,13 +2439,12 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
2550
2439
|
args[args.length - 2] = id;
|
|
2551
2440
|
}
|
|
2552
2441
|
_a.label = 5;
|
|
2553
|
-
case 5: return [2
|
|
2442
|
+
case 5: return [2];
|
|
2554
2443
|
}
|
|
2555
2444
|
});
|
|
2556
2445
|
});
|
|
2557
2446
|
};
|
|
2558
2447
|
Object.defineProperty(SteedosObjectType.prototype, "schema", {
|
|
2559
|
-
/***** get/set *****/
|
|
2560
2448
|
get: function () {
|
|
2561
2449
|
return this._schema;
|
|
2562
2450
|
},
|