@steedos/objectql 2.2.55-beta.2 → 2.2.55-beta.22
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 +1 -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 +288 -388
- 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 +39 -2
- 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,11 +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
|
-
|
|
1416
|
+
if (field.generated) {
|
|
1417
|
+
delete field.omit;
|
|
1418
|
+
if ((0, lodash_1.isNil)(field.visible_on)) {
|
|
1419
|
+
field.visible_on = "{{false}}";
|
|
1420
|
+
}
|
|
1421
|
+
}
|
|
1482
1422
|
if (read === true && edit === false) {
|
|
1483
1423
|
accessFields[field.name] = Object.assign({}, field, {
|
|
1484
1424
|
hidden: false,
|
|
@@ -1488,7 +1428,6 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1488
1428
|
});
|
|
1489
1429
|
return;
|
|
1490
1430
|
}
|
|
1491
|
-
//可查看可编辑: 配置了字段权限可查看可编辑; 没有配置字段权限 字段的hidden 为false 且字段的readonly为false
|
|
1492
1431
|
if (read === true && edit === true) {
|
|
1493
1432
|
accessFields[field.name] = Object.assign({}, field, {
|
|
1494
1433
|
hidden: false,
|
|
@@ -1515,7 +1454,6 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1515
1454
|
sort_no_1++;
|
|
1516
1455
|
}
|
|
1517
1456
|
});
|
|
1518
|
-
//处理通用必填字段默认显示顺序
|
|
1519
1457
|
_.each(universallyRequiredFieldsName, function (fieldName) {
|
|
1520
1458
|
var fieldLayout = _.find(objectLayout.fields, function (item) { return item.field_name == fieldName; });
|
|
1521
1459
|
if (!fieldLayout) {
|
|
@@ -1535,8 +1473,8 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1535
1473
|
case 0:
|
|
1536
1474
|
objectConfig = context.objectConfig, layouts = context.layouts, spaceProcessDefinition = context.spaceProcessDefinition, dbListViews = context.dbListViews, rolesFieldsPermission = context.rolesFieldsPermission, relationsInfo = context.relationsInfo;
|
|
1537
1475
|
lng = userSession.language;
|
|
1538
|
-
if (!!objectConfig) return [3
|
|
1539
|
-
return [4
|
|
1476
|
+
if (!!objectConfig) return [3, 2];
|
|
1477
|
+
return [4, this.callMetadataObjectServiceAction('get', { objectApiName: this.name })];
|
|
1540
1478
|
case 1:
|
|
1541
1479
|
objectMetadataConfig = _b.sent();
|
|
1542
1480
|
objectConfig = objectMetadataConfig.metadata;
|
|
@@ -1545,11 +1483,11 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1545
1483
|
objectConfig.name = this.name;
|
|
1546
1484
|
objectConfig.datasource = this.datasource.name;
|
|
1547
1485
|
_a = objectConfig;
|
|
1548
|
-
return [4
|
|
1486
|
+
return [4, this.getUserObjectPermission(userSession, rolesFieldsPermission)];
|
|
1549
1487
|
case 3:
|
|
1550
1488
|
_a.permissions = _b.sent();
|
|
1551
|
-
if (!!relationsInfo) return [3
|
|
1552
|
-
return [4
|
|
1489
|
+
if (!!relationsInfo) return [3, 5];
|
|
1490
|
+
return [4, this.getRelationsInfo()];
|
|
1553
1491
|
case 4:
|
|
1554
1492
|
relationsInfo = _b.sent();
|
|
1555
1493
|
_b.label = 5;
|
|
@@ -1559,8 +1497,8 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1559
1497
|
objectConfig.lookup_details = relationsInfo.lookup_details;
|
|
1560
1498
|
delete objectConfig.db;
|
|
1561
1499
|
(0, i18n_1.translationObject)(lng, objectConfig.name, objectConfig, true);
|
|
1562
|
-
if (!!layouts) return [3
|
|
1563
|
-
return [4
|
|
1500
|
+
if (!!layouts) return [3, 7];
|
|
1501
|
+
return [4, (0, object_layouts_1.getObjectLayouts)(userSession.profile, userSession.spaceId, this.name)];
|
|
1564
1502
|
case 6:
|
|
1565
1503
|
layouts = _b.sent();
|
|
1566
1504
|
_b.label = 7;
|
|
@@ -1594,8 +1532,8 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1594
1532
|
});
|
|
1595
1533
|
}
|
|
1596
1534
|
objectConfig.fields = this.getAccessFields(objectConfig.fields, objectLayout, objectConfig.permissions);
|
|
1597
|
-
if (!!spaceProcessDefinition) return [3
|
|
1598
|
-
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]] })];
|
|
1599
1537
|
case 8:
|
|
1600
1538
|
spaceProcessDefinition = _b.sent();
|
|
1601
1539
|
_b.label = 9;
|
|
@@ -1603,14 +1541,13 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1603
1541
|
if (spaceProcessDefinition.length > 0) {
|
|
1604
1542
|
objectConfig.enable_process = true;
|
|
1605
1543
|
}
|
|
1606
|
-
//清理数据
|
|
1607
1544
|
_.each(objectConfig.triggers, function (trigger, key) {
|
|
1608
1545
|
if ((trigger === null || trigger === void 0 ? void 0 : trigger.on) != 'client') {
|
|
1609
1546
|
delete objectConfig.triggers[key];
|
|
1610
1547
|
}
|
|
1611
1548
|
});
|
|
1612
|
-
if (!!dbListViews) return [3
|
|
1613
|
-
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]]] })];
|
|
1614
1551
|
case 10:
|
|
1615
1552
|
dbListViews = _b.sent();
|
|
1616
1553
|
_b.label = 11;
|
|
@@ -1626,7 +1563,7 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1626
1563
|
delete objectConfig.listeners;
|
|
1627
1564
|
delete objectConfig.__filename;
|
|
1628
1565
|
delete objectConfig.extend;
|
|
1629
|
-
return [2
|
|
1566
|
+
return [2, objectConfig];
|
|
1630
1567
|
}
|
|
1631
1568
|
});
|
|
1632
1569
|
});
|
|
@@ -1643,7 +1580,7 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1643
1580
|
buttons = [];
|
|
1644
1581
|
fields = [];
|
|
1645
1582
|
related_lists = [];
|
|
1646
|
-
return [4
|
|
1583
|
+
return [4, this.callMetadataObjectServiceAction('getOriginalObject', { objectApiName: this.name })];
|
|
1647
1584
|
case 1:
|
|
1648
1585
|
objectConfig = _b.sent();
|
|
1649
1586
|
sortedFields = [];
|
|
@@ -1657,17 +1594,16 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1657
1594
|
layoutField.is_readonly = field.readonly;
|
|
1658
1595
|
layoutField.is_required = field.required;
|
|
1659
1596
|
layoutField.group = field.group;
|
|
1660
|
-
// layoutField.visible_on = `${!field.hidden}`;
|
|
1661
1597
|
fields.push(layoutField);
|
|
1662
1598
|
});
|
|
1663
1599
|
relatedLists = [];
|
|
1664
1600
|
if (this.enable_files) {
|
|
1665
1601
|
relatedLists.push("cms_files.parent");
|
|
1666
1602
|
}
|
|
1667
|
-
return [4
|
|
1603
|
+
return [4, this.getDetailsInfo()];
|
|
1668
1604
|
case 2:
|
|
1669
1605
|
details = _b.sent();
|
|
1670
|
-
return [4
|
|
1606
|
+
return [4, this.getLookupDetailsInfo()];
|
|
1671
1607
|
case 3:
|
|
1672
1608
|
lookup_details = _b.sent();
|
|
1673
1609
|
relatedLists = relatedLists.concat(_.union(details, lookup_details));
|
|
@@ -1698,12 +1634,12 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1698
1634
|
switch (_c.label) {
|
|
1699
1635
|
case 0:
|
|
1700
1636
|
related = relatedLists_1_1.value;
|
|
1701
|
-
if (!related) return [3
|
|
1637
|
+
if (!related) return [3, 2];
|
|
1702
1638
|
relatedItem = {};
|
|
1703
1639
|
relatedItem.related_field_fullname = related;
|
|
1704
1640
|
foo = related.split('.');
|
|
1705
1641
|
rObjectName = foo[0];
|
|
1706
|
-
return [4
|
|
1642
|
+
return [4, getObject(rObjectName).toConfig()];
|
|
1707
1643
|
case 1:
|
|
1708
1644
|
relatedObject = _c.sent();
|
|
1709
1645
|
relatedObjectAllListView = _.find(relatedObject.list_views, function (listview) {
|
|
@@ -1723,37 +1659,37 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1723
1659
|
}
|
|
1724
1660
|
related_lists.push(relatedItem);
|
|
1725
1661
|
_c.label = 2;
|
|
1726
|
-
case 2: return [2
|
|
1662
|
+
case 2: return [2];
|
|
1727
1663
|
}
|
|
1728
1664
|
});
|
|
1729
1665
|
};
|
|
1730
1666
|
relatedLists_1 = tslib_1.__asyncValues(relatedLists);
|
|
1731
1667
|
_b.label = 5;
|
|
1732
|
-
case 5: return [4
|
|
1668
|
+
case 5: return [4, relatedLists_1.next()];
|
|
1733
1669
|
case 6:
|
|
1734
|
-
if (!(relatedLists_1_1 = _b.sent(), !relatedLists_1_1.done)) return [3
|
|
1735
|
-
return [5
|
|
1670
|
+
if (!(relatedLists_1_1 = _b.sent(), !relatedLists_1_1.done)) return [3, 9];
|
|
1671
|
+
return [5, _loop_1()];
|
|
1736
1672
|
case 7:
|
|
1737
1673
|
_b.sent();
|
|
1738
1674
|
_b.label = 8;
|
|
1739
|
-
case 8: return [3
|
|
1740
|
-
case 9: return [3
|
|
1675
|
+
case 8: return [3, 5];
|
|
1676
|
+
case 9: return [3, 16];
|
|
1741
1677
|
case 10:
|
|
1742
1678
|
e_4_1 = _b.sent();
|
|
1743
1679
|
e_4 = { error: e_4_1 };
|
|
1744
|
-
return [3
|
|
1680
|
+
return [3, 16];
|
|
1745
1681
|
case 11:
|
|
1746
1682
|
_b.trys.push([11, , 14, 15]);
|
|
1747
|
-
if (!(relatedLists_1_1 && !relatedLists_1_1.done && (_a = relatedLists_1.return))) return [3
|
|
1748
|
-
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)];
|
|
1749
1685
|
case 12:
|
|
1750
1686
|
_b.sent();
|
|
1751
1687
|
_b.label = 13;
|
|
1752
|
-
case 13: return [3
|
|
1688
|
+
case 13: return [3, 15];
|
|
1753
1689
|
case 14:
|
|
1754
1690
|
if (e_4) throw e_4.error;
|
|
1755
|
-
return [7
|
|
1756
|
-
case 15: return [7
|
|
1691
|
+
return [7];
|
|
1692
|
+
case 15: return [7];
|
|
1757
1693
|
case 16:
|
|
1758
1694
|
buttons.push({
|
|
1759
1695
|
button_name: 'standard_new'
|
|
@@ -1771,7 +1707,7 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1771
1707
|
});
|
|
1772
1708
|
}
|
|
1773
1709
|
});
|
|
1774
|
-
return [2
|
|
1710
|
+
return [2, {
|
|
1775
1711
|
object_name: object_name,
|
|
1776
1712
|
type: type,
|
|
1777
1713
|
buttons: buttons,
|
|
@@ -1795,15 +1731,15 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1795
1731
|
_a.label = 1;
|
|
1796
1732
|
case 1:
|
|
1797
1733
|
_a.trys.push([1, 4, , 5]);
|
|
1798
|
-
return [4
|
|
1734
|
+
return [4, this.getDefaultRecordView(userSession)];
|
|
1799
1735
|
case 2:
|
|
1800
1736
|
defaultRecordView = _a.sent();
|
|
1801
|
-
return [4
|
|
1802
|
-
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()];
|
|
1803
1739
|
case 4:
|
|
1804
1740
|
error_3 = _a.sent();
|
|
1805
|
-
return [2
|
|
1806
|
-
case 5: return [2
|
|
1741
|
+
return [2, { error: error_3.message }];
|
|
1742
|
+
case 5: return [2];
|
|
1807
1743
|
}
|
|
1808
1744
|
});
|
|
1809
1745
|
});
|
|
@@ -1819,10 +1755,10 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1819
1755
|
if (this.enable_files) {
|
|
1820
1756
|
related_objects.push({ object_name: "cms_files", foreign_key: "parent" });
|
|
1821
1757
|
}
|
|
1822
|
-
return [4
|
|
1758
|
+
return [4, this.getDetailsInfo()];
|
|
1823
1759
|
case 1:
|
|
1824
1760
|
detailsInfo = _b.sent();
|
|
1825
|
-
return [4
|
|
1761
|
+
return [4, this.getLookupDetailsInfo()];
|
|
1826
1762
|
case 2:
|
|
1827
1763
|
lookupsInfo = _b.sent();
|
|
1828
1764
|
relatedInfos = detailsInfo.concat(lookupsInfo);
|
|
@@ -1832,13 +1768,13 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1832
1768
|
relatedInfos_1 = tslib_1.__values(relatedInfos), relatedInfos_1_1 = relatedInfos_1.next();
|
|
1833
1769
|
_b.label = 4;
|
|
1834
1770
|
case 4:
|
|
1835
|
-
if (!!relatedInfos_1_1.done) return [3
|
|
1771
|
+
if (!!relatedInfos_1_1.done) return [3, 7];
|
|
1836
1772
|
info = relatedInfos_1_1.value;
|
|
1837
|
-
if (!!info.startsWith('__')) return [3
|
|
1773
|
+
if (!!info.startsWith('__')) return [3, 6];
|
|
1838
1774
|
infos = info.split('.');
|
|
1839
1775
|
detailObjectApiName = infos[0];
|
|
1840
1776
|
detailFieldName = infos[1];
|
|
1841
|
-
return [4
|
|
1777
|
+
return [4, getObject(detailObjectApiName).getField(detailFieldName)];
|
|
1842
1778
|
case 5:
|
|
1843
1779
|
related_field = _b.sent();
|
|
1844
1780
|
if (related_field) {
|
|
@@ -1854,18 +1790,18 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1854
1790
|
_b.label = 6;
|
|
1855
1791
|
case 6:
|
|
1856
1792
|
relatedInfos_1_1 = relatedInfos_1.next();
|
|
1857
|
-
return [3
|
|
1858
|
-
case 7: return [3
|
|
1793
|
+
return [3, 4];
|
|
1794
|
+
case 7: return [3, 10];
|
|
1859
1795
|
case 8:
|
|
1860
1796
|
e_5_1 = _b.sent();
|
|
1861
1797
|
e_5 = { error: e_5_1 };
|
|
1862
|
-
return [3
|
|
1798
|
+
return [3, 10];
|
|
1863
1799
|
case 9:
|
|
1864
1800
|
try {
|
|
1865
1801
|
if (relatedInfos_1_1 && !relatedInfos_1_1.done && (_a = relatedInfos_1.return)) _a.call(relatedInfos_1);
|
|
1866
1802
|
}
|
|
1867
1803
|
finally { if (e_5) throw e_5.error; }
|
|
1868
|
-
return [7
|
|
1804
|
+
return [7];
|
|
1869
1805
|
case 10:
|
|
1870
1806
|
if (this.enable_tasks) {
|
|
1871
1807
|
related_objects.push({ object_name: "tasks", foreign_key: "related_to" });
|
|
@@ -1885,7 +1821,7 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1885
1821
|
if (this.enable_process) {
|
|
1886
1822
|
related_objects.push({ object_name: "process_instance_history", foreign_key: "target_object" });
|
|
1887
1823
|
}
|
|
1888
|
-
return [2
|
|
1824
|
+
return [2, related_objects];
|
|
1889
1825
|
}
|
|
1890
1826
|
});
|
|
1891
1827
|
});
|
|
@@ -1900,8 +1836,8 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1900
1836
|
switch (_a.label) {
|
|
1901
1837
|
case 0:
|
|
1902
1838
|
clonedQuery = Object.assign({}, query);
|
|
1903
|
-
return [4
|
|
1904
|
-
case 1: return [2
|
|
1839
|
+
return [4, this.callAdapter('count', this.table_name, clonedQuery, userSession)];
|
|
1840
|
+
case 1: return [2, _a.sent()];
|
|
1905
1841
|
}
|
|
1906
1842
|
});
|
|
1907
1843
|
});
|
|
@@ -1912,24 +1848,24 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1912
1848
|
switch (_a.label) {
|
|
1913
1849
|
case 0:
|
|
1914
1850
|
if (_.isNull(userSession) || _.isUndefined(userSession)) {
|
|
1915
|
-
return [2
|
|
1851
|
+
return [2, true];
|
|
1916
1852
|
}
|
|
1917
|
-
if (!(method === 'find' || method === 'findOne' || method === 'count' || method === 'aggregate' || method === 'aggregatePrefixalPipeline')) return [3
|
|
1918
|
-
return [4
|
|
1919
|
-
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()];
|
|
1920
1856
|
case 2:
|
|
1921
|
-
if (!(method === 'insert')) return [3
|
|
1922
|
-
return [4
|
|
1923
|
-
case 3: return [2
|
|
1857
|
+
if (!(method === 'insert')) return [3, 4];
|
|
1858
|
+
return [4, this.allowInsert(userSession)];
|
|
1859
|
+
case 3: return [2, _a.sent()];
|
|
1924
1860
|
case 4:
|
|
1925
|
-
if (!(method === 'update' || method === 'updateOne' || method === 'updateMany')) return [3
|
|
1926
|
-
return [4
|
|
1927
|
-
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()];
|
|
1928
1864
|
case 6:
|
|
1929
|
-
if (!(method === 'delete')) return [3
|
|
1930
|
-
return [4
|
|
1931
|
-
case 7: return [2
|
|
1932
|
-
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];
|
|
1933
1869
|
}
|
|
1934
1870
|
});
|
|
1935
1871
|
});
|
|
@@ -1945,11 +1881,11 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1945
1881
|
}
|
|
1946
1882
|
meteorWhen = "before".concat(method.charAt(0).toLocaleUpperCase()).concat(_.rest(tslib_1.__spreadArray([], tslib_1.__read(method), false)).join(''));
|
|
1947
1883
|
when = "before.".concat(method);
|
|
1948
|
-
return [4
|
|
1884
|
+
return [4, this.runTriggers(meteorWhen, context)];
|
|
1949
1885
|
case 1:
|
|
1950
1886
|
_a.sent();
|
|
1951
|
-
return [4
|
|
1952
|
-
case 2: return [2
|
|
1887
|
+
return [4, this.runTriggerActions(when, context)];
|
|
1888
|
+
case 2: return [2, _a.sent()];
|
|
1953
1889
|
}
|
|
1954
1890
|
});
|
|
1955
1891
|
});
|
|
@@ -1962,11 +1898,11 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1962
1898
|
case 0:
|
|
1963
1899
|
meteorWhen = "after".concat(method.charAt(0).toLocaleUpperCase()).concat(_.rest(tslib_1.__spreadArray([], tslib_1.__read(method), false)).join(''));
|
|
1964
1900
|
when = "after.".concat(method);
|
|
1965
|
-
return [4
|
|
1901
|
+
return [4, this.runTriggers(meteorWhen, context)];
|
|
1966
1902
|
case 1:
|
|
1967
1903
|
_a.sent();
|
|
1968
|
-
return [4
|
|
1969
|
-
case 2: return [2
|
|
1904
|
+
return [4, this.runTriggerActions(when, context)];
|
|
1905
|
+
case 2: return [2, _a.sent()];
|
|
1970
1906
|
}
|
|
1971
1907
|
});
|
|
1972
1908
|
});
|
|
@@ -1978,15 +1914,15 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1978
1914
|
switch (_a.label) {
|
|
1979
1915
|
case 0:
|
|
1980
1916
|
_ids = _.pluck(records, '_id');
|
|
1981
|
-
return [4
|
|
1917
|
+
return [4, this.getUserObjectPermission(userSession, false)];
|
|
1982
1918
|
case 1:
|
|
1983
1919
|
objPm = _a.sent();
|
|
1984
1920
|
permissionFilters = this.getObjectEditPermissionFilters(objPm, userSession);
|
|
1985
1921
|
if (_.isEmpty(permissionFilters)) {
|
|
1986
|
-
return [2
|
|
1922
|
+
return [2];
|
|
1987
1923
|
}
|
|
1988
1924
|
filters = (0, filters_1.formatFiltersToODataQuery)(['_id', 'in', _ids]);
|
|
1989
|
-
return [4
|
|
1925
|
+
return [4, this.directFind({
|
|
1990
1926
|
fields: ['_id'],
|
|
1991
1927
|
filters: "(".concat(filters, ") and (").concat(permissionFilters.join(' or '), ")")
|
|
1992
1928
|
})];
|
|
@@ -2002,7 +1938,7 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
2002
1938
|
};
|
|
2003
1939
|
}
|
|
2004
1940
|
});
|
|
2005
|
-
return [2
|
|
1941
|
+
return [2];
|
|
2006
1942
|
}
|
|
2007
1943
|
});
|
|
2008
1944
|
});
|
|
@@ -2027,13 +1963,13 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
2027
1963
|
if (method === 'insert' || method === 'update') {
|
|
2028
1964
|
context.doc = args[args.length - 2];
|
|
2029
1965
|
}
|
|
2030
|
-
if (!(when === 'after' && (method === 'update' || method === 'delete'))) return [3
|
|
1966
|
+
if (!(when === 'after' && (method === 'update' || method === 'delete'))) return [3, 2];
|
|
2031
1967
|
_a = context;
|
|
2032
|
-
return [4
|
|
1968
|
+
return [4, this.findOne(recordId, {}, userSession)];
|
|
2033
1969
|
case 1:
|
|
2034
1970
|
_a.previousDoc = _b.sent();
|
|
2035
1971
|
_b.label = 2;
|
|
2036
|
-
case 2: return [2
|
|
1972
|
+
case 2: return [2, context];
|
|
2037
1973
|
}
|
|
2038
1974
|
});
|
|
2039
1975
|
});
|
|
@@ -2045,9 +1981,9 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
2045
1981
|
switch (_a.label) {
|
|
2046
1982
|
case 0:
|
|
2047
1983
|
if (!userSession) {
|
|
2048
|
-
return [2
|
|
1984
|
+
return [2];
|
|
2049
1985
|
}
|
|
2050
|
-
return [4
|
|
1986
|
+
return [4, this.getUserObjectPermission(userSession, false)];
|
|
2051
1987
|
case 1:
|
|
2052
1988
|
userObjectPermission = _a.sent();
|
|
2053
1989
|
userObjectUnreadableFields = userObjectPermission.unreadable_fields;
|
|
@@ -2078,27 +2014,11 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
2078
2014
|
}
|
|
2079
2015
|
query.fields = queryFields_1.join(',');
|
|
2080
2016
|
}
|
|
2081
|
-
return [2
|
|
2017
|
+
return [2];
|
|
2082
2018
|
}
|
|
2083
2019
|
});
|
|
2084
2020
|
});
|
|
2085
2021
|
};
|
|
2086
|
-
// private async processUneditableFields(userSession: SteedosUserSession, doc: JsonMap) {
|
|
2087
|
-
// 后台直接去掉uneditable_fields相关判断逻辑
|
|
2088
|
-
// [签约对象同时配置了company_ids必填及uneditable_fields造成部分用户新建签约对象时报错 #192](https://github.com/steedos/steedos-project-dzug/issues/192)
|
|
2089
|
-
// if (!userSession) {
|
|
2090
|
-
// return
|
|
2091
|
-
// }
|
|
2092
|
-
// let userObjectPermission = await this.getUserObjectPermission(userSession)
|
|
2093
|
-
// let userObjectUneditableFields = userObjectPermission.uneditable_fields
|
|
2094
|
-
// let intersection = _.intersection(userObjectUneditableFields, _.keys(doc))
|
|
2095
|
-
// if (intersection.length > 0) {
|
|
2096
|
-
// throw new Error(`no permissions to edit fields ${intersection.join(', ')}`)
|
|
2097
|
-
// }
|
|
2098
|
-
// // _.each(userObjectUneditableFields, (name: string)=>{
|
|
2099
|
-
// // delete doc[name]
|
|
2100
|
-
// // })
|
|
2101
|
-
// }
|
|
2102
2022
|
SteedosObjectType.prototype.formatRecord = function (doc) {
|
|
2103
2023
|
var adapterFormat = this._datasource["formatRecord"];
|
|
2104
2024
|
if (typeof adapterFormat == 'function') {
|
|
@@ -2121,8 +2041,8 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
2121
2041
|
throw new Error('Adapted does not support "' + method + '" method');
|
|
2122
2042
|
}
|
|
2123
2043
|
userSession = args[args.length - 1];
|
|
2124
|
-
if (!!_.isEmpty(userSession)) return [3
|
|
2125
|
-
return [4
|
|
2044
|
+
if (!!_.isEmpty(userSession)) return [3, 2];
|
|
2045
|
+
return [4, this.allow(method, userSession)];
|
|
2126
2046
|
case 1:
|
|
2127
2047
|
allow = _a.sent();
|
|
2128
2048
|
if (!allow) {
|
|
@@ -2132,9 +2052,7 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
2132
2052
|
case 2:
|
|
2133
2053
|
objectName = args[0];
|
|
2134
2054
|
if (["insert", "update", "updateMany", "delete"].indexOf(method) > -1) {
|
|
2135
|
-
// 因下面的代码,比如函数dealWithMethodPermission可能改写args变量,所以需要提前从args取出对应变量值。
|
|
2136
2055
|
if (method === "insert") {
|
|
2137
|
-
// 此处doc不带_id值,得执行完adapterMethod.apply后,doc中才有_id属性,所以这里的doc及recordId都不准确
|
|
2138
2056
|
doc = args[1];
|
|
2139
2057
|
recordId = doc._id;
|
|
2140
2058
|
}
|
|
@@ -2146,32 +2064,32 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
2146
2064
|
if (method === 'findOne' || method === 'update' || method === 'delete') {
|
|
2147
2065
|
paramRecordId = args[1];
|
|
2148
2066
|
}
|
|
2149
|
-
if (!(!_.isEmpty(userSession) && this._datasource.enable_space)) return [3
|
|
2067
|
+
if (!(!_.isEmpty(userSession) && this._datasource.enable_space)) return [3, 4];
|
|
2150
2068
|
this.dealWithFilters(method, args);
|
|
2151
|
-
return [4
|
|
2069
|
+
return [4, this.dealWithMethodPermission(method, args)];
|
|
2152
2070
|
case 3:
|
|
2153
2071
|
_a.sent();
|
|
2154
2072
|
_a.label = 4;
|
|
2155
2073
|
case 4:
|
|
2156
|
-
if (!this.isDirectCRUD(method)) return [3
|
|
2074
|
+
if (!this.isDirectCRUD(method)) return [3, 6];
|
|
2157
2075
|
args.splice(args.length - 1, 1, userSession ? userSession.userId : undefined);
|
|
2158
|
-
return [4
|
|
2076
|
+
return [4, adapterMethod.apply(this._datasource, args)];
|
|
2159
2077
|
case 5:
|
|
2160
2078
|
returnValue = _a.sent();
|
|
2161
|
-
return [3
|
|
2162
|
-
case 6: return [4
|
|
2079
|
+
return [3, 26];
|
|
2080
|
+
case 6: return [4, this.getTriggerContext('before', method, args)];
|
|
2163
2081
|
case 7:
|
|
2164
2082
|
beforeTriggerContext = _a.sent();
|
|
2165
2083
|
if (paramRecordId) {
|
|
2166
2084
|
beforeTriggerContext = Object.assign({}, beforeTriggerContext, { id: paramRecordId });
|
|
2167
2085
|
}
|
|
2168
|
-
return [4
|
|
2086
|
+
return [4, this.runBeforeTriggers(method, beforeTriggerContext)];
|
|
2169
2087
|
case 8:
|
|
2170
2088
|
_a.sent();
|
|
2171
|
-
return [4
|
|
2089
|
+
return [4, (0, validation_rules_1.runValidationRules)(method, beforeTriggerContext, args[0], userSession)];
|
|
2172
2090
|
case 9:
|
|
2173
2091
|
_a.sent();
|
|
2174
|
-
return [4
|
|
2092
|
+
return [4, this.getTriggerContext('after', method, args, paramRecordId)];
|
|
2175
2093
|
case 10:
|
|
2176
2094
|
afterTriggerContext = _a.sent();
|
|
2177
2095
|
if (paramRecordId) {
|
|
@@ -2179,21 +2097,21 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
2179
2097
|
}
|
|
2180
2098
|
previousDoc = clone(afterTriggerContext.previousDoc);
|
|
2181
2099
|
args.splice(args.length - 1, 1, userSession ? userSession.userId : undefined);
|
|
2182
|
-
return [4
|
|
2100
|
+
return [4, adapterMethod.apply(this._datasource, args)];
|
|
2183
2101
|
case 11:
|
|
2184
2102
|
returnValue = _a.sent();
|
|
2185
|
-
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];
|
|
2186
2104
|
values = clone(returnValue) || {};
|
|
2187
|
-
if (!(method === 'count')) return [3
|
|
2105
|
+
if (!(method === 'count')) return [3, 12];
|
|
2188
2106
|
values = returnValue || 0;
|
|
2189
|
-
return [3
|
|
2107
|
+
return [3, 14];
|
|
2190
2108
|
case 12:
|
|
2191
|
-
if (!userSession) return [3
|
|
2109
|
+
if (!userSession) return [3, 14];
|
|
2192
2110
|
_records = returnValue;
|
|
2193
2111
|
if (method == 'findOne' && returnValue) {
|
|
2194
2112
|
_records = [_records];
|
|
2195
2113
|
}
|
|
2196
|
-
return [4
|
|
2114
|
+
return [4, this.appendRecordPermission(_records, userSession)];
|
|
2197
2115
|
case 13:
|
|
2198
2116
|
_a.sent();
|
|
2199
2117
|
_a.label = 14;
|
|
@@ -2201,33 +2119,32 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
2201
2119
|
Object.assign(afterTriggerContext, { data: { values: values } });
|
|
2202
2120
|
_a.label = 15;
|
|
2203
2121
|
case 15:
|
|
2204
|
-
// console.log("==returnValue==", returnValue);
|
|
2205
2122
|
if (method == 'insert' && _.has(returnValue, '_id')) {
|
|
2206
2123
|
afterTriggerContext.doc = returnValue;
|
|
2207
2124
|
afterTriggerContext = Object.assign({}, afterTriggerContext, { id: returnValue._id });
|
|
2208
2125
|
}
|
|
2209
|
-
if (!(method == "update")) return [3
|
|
2210
|
-
if (!returnValue) return [3
|
|
2126
|
+
if (!(method == "update")) return [3, 18];
|
|
2127
|
+
if (!returnValue) return [3, 17];
|
|
2211
2128
|
afterTriggerContext.doc = returnValue;
|
|
2212
|
-
return [4
|
|
2129
|
+
return [4, this.runAfterTriggers(method, afterTriggerContext)];
|
|
2213
2130
|
case 16:
|
|
2214
2131
|
_a.sent();
|
|
2215
2132
|
_a.label = 17;
|
|
2216
|
-
case 17: return [3
|
|
2217
|
-
case 18: return [4
|
|
2133
|
+
case 17: return [3, 20];
|
|
2134
|
+
case 18: return [4, this.runAfterTriggers(method, afterTriggerContext)];
|
|
2218
2135
|
case 19:
|
|
2219
2136
|
_a.sent();
|
|
2220
2137
|
_a.label = 20;
|
|
2221
2138
|
case 20:
|
|
2222
2139
|
if (method === 'find' || method == 'findOne' || method == 'count' || method == 'aggregate' || method == 'aggregatePrefixalPipeline') {
|
|
2223
2140
|
if (_.isEmpty(afterTriggerContext.data) || (_.isEmpty(afterTriggerContext.data.values) && !_.isNumber(afterTriggerContext.data.values))) {
|
|
2224
|
-
return [2
|
|
2141
|
+
return [2, returnValue];
|
|
2225
2142
|
}
|
|
2226
2143
|
else {
|
|
2227
|
-
return [2
|
|
2144
|
+
return [2, afterTriggerContext.data.values];
|
|
2228
2145
|
}
|
|
2229
2146
|
}
|
|
2230
|
-
return [4
|
|
2147
|
+
return [4, new actions_1.WorkflowRulesRunner({
|
|
2231
2148
|
object_name: this.name,
|
|
2232
2149
|
event: method,
|
|
2233
2150
|
record: returnValue,
|
|
@@ -2236,26 +2153,23 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
2236
2153
|
}).run()];
|
|
2237
2154
|
case 21:
|
|
2238
2155
|
_a.sent();
|
|
2239
|
-
if (!returnValue) return [3
|
|
2156
|
+
if (!returnValue) return [3, 24];
|
|
2240
2157
|
if (method === "insert") {
|
|
2241
|
-
// 当为insert时,上面代码执行后的doc不带_id,只能从returnValue中取
|
|
2242
2158
|
doc = returnValue;
|
|
2243
2159
|
recordId = doc._id;
|
|
2244
2160
|
}
|
|
2245
|
-
|
|
2246
|
-
return [4 /*yield*/, this.runRecordFormula(method, objectName, recordId, doc, userSession)];
|
|
2161
|
+
return [4, this.runRecordFormula(method, objectName, recordId, doc, userSession)];
|
|
2247
2162
|
case 22:
|
|
2248
|
-
// 一定要先运行公式再运行汇总,以下两个函数顺序不能反
|
|
2249
2163
|
_a.sent();
|
|
2250
|
-
return [4
|
|
2164
|
+
return [4, this.runRecordSummaries(method, objectName, recordId, doc, previousDoc, userSession)];
|
|
2251
2165
|
case 23:
|
|
2252
2166
|
_a.sent();
|
|
2253
2167
|
_a.label = 24;
|
|
2254
|
-
case 24: return [4
|
|
2168
|
+
case 24: return [4, (0, object_events_1.brokeEmitEvents)(objectName, method, afterTriggerContext)];
|
|
2255
2169
|
case 25:
|
|
2256
2170
|
_a.sent();
|
|
2257
2171
|
_a.label = 26;
|
|
2258
|
-
case 26: return [2
|
|
2172
|
+
case 26: return [2, returnValue];
|
|
2259
2173
|
}
|
|
2260
2174
|
});
|
|
2261
2175
|
});
|
|
@@ -2267,24 +2181,24 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
2267
2181
|
return tslib_1.__generator(this, function (_a) {
|
|
2268
2182
|
switch (_a.label) {
|
|
2269
2183
|
case 0:
|
|
2270
|
-
if (!(["insert", "update", "updateMany", "delete"].indexOf(method) > -1)) return [3
|
|
2271
|
-
if (!(method === "updateMany")) return [3
|
|
2272
|
-
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];
|
|
2273
2187
|
case 1:
|
|
2274
2188
|
currentUserId = userSession ? userSession.userId : undefined;
|
|
2275
|
-
if (!(method !== "delete")) return [3
|
|
2276
|
-
return [4
|
|
2189
|
+
if (!(method !== "delete")) return [3, 3];
|
|
2190
|
+
return [4, (0, formula_1.runCurrentObjectFieldFormulas)(objectName, recordId, doc, currentUserId, true)];
|
|
2277
2191
|
case 2:
|
|
2278
2192
|
_a.sent();
|
|
2279
2193
|
_a.label = 3;
|
|
2280
2194
|
case 3:
|
|
2281
2195
|
onlyForOwn = method === "insert";
|
|
2282
2196
|
withoutCurrent = method === "delete";
|
|
2283
|
-
return [4
|
|
2197
|
+
return [4, (0, formula_1.runQuotedByObjectFieldFormulas)(objectName, recordId, userSession, { onlyForOwn: onlyForOwn, withoutCurrent: withoutCurrent })];
|
|
2284
2198
|
case 4:
|
|
2285
2199
|
_a.sent();
|
|
2286
2200
|
_a.label = 5;
|
|
2287
|
-
case 5: return [2
|
|
2201
|
+
case 5: return [2];
|
|
2288
2202
|
}
|
|
2289
2203
|
});
|
|
2290
2204
|
});
|
|
@@ -2294,20 +2208,20 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
2294
2208
|
return tslib_1.__generator(this, function (_a) {
|
|
2295
2209
|
switch (_a.label) {
|
|
2296
2210
|
case 0:
|
|
2297
|
-
if (!(["insert", "update", "updateMany", "delete"].indexOf(method) > -1)) return [3
|
|
2298
|
-
if (!(method === "updateMany")) return [3
|
|
2299
|
-
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];
|
|
2300
2214
|
case 1:
|
|
2301
|
-
if (!(method === "insert")) return [3
|
|
2302
|
-
return [4
|
|
2215
|
+
if (!(method === "insert")) return [3, 3];
|
|
2216
|
+
return [4, (0, summary_1.runCurrentObjectFieldSummaries)(objectName, recordId)];
|
|
2303
2217
|
case 2:
|
|
2304
2218
|
_a.sent();
|
|
2305
2219
|
_a.label = 3;
|
|
2306
|
-
case 3: return [4
|
|
2220
|
+
case 3: return [4, (0, summary_1.runQuotedByObjectFieldSummaries)(objectName, recordId, previousDoc, userSession)];
|
|
2307
2221
|
case 4:
|
|
2308
2222
|
_a.sent();
|
|
2309
2223
|
_a.label = 5;
|
|
2310
|
-
case 5: return [2
|
|
2224
|
+
case 5: return [2];
|
|
2311
2225
|
}
|
|
2312
2226
|
});
|
|
2313
2227
|
});
|
|
@@ -2319,10 +2233,6 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
2319
2233
|
}
|
|
2320
2234
|
return objectPermissionFilters;
|
|
2321
2235
|
};
|
|
2322
|
-
/**
|
|
2323
|
-
* 把query.filters用formatFiltersToODataQuery转为odata query
|
|
2324
|
-
* 主要是为了把userSession中的utcOffset逻辑传入formatFiltersToODataQuery函数处理
|
|
2325
|
-
*/
|
|
2326
2236
|
SteedosObjectType.prototype.dealWithFilters = function (method, args) {
|
|
2327
2237
|
var userSession = args[args.length - 1];
|
|
2328
2238
|
if (userSession) {
|
|
@@ -2344,13 +2254,13 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
2344
2254
|
switch (_a.label) {
|
|
2345
2255
|
case 0:
|
|
2346
2256
|
userSession = args[args.length - 1];
|
|
2347
|
-
if (!userSession) return [3
|
|
2257
|
+
if (!userSession) return [3, 5];
|
|
2348
2258
|
spaceId = userSession.spaceId;
|
|
2349
2259
|
userId = userSession.userId;
|
|
2350
|
-
return [4
|
|
2260
|
+
return [4, this.getUserObjectPermission(userSession, false)];
|
|
2351
2261
|
case 1:
|
|
2352
2262
|
objPm = _a.sent();
|
|
2353
|
-
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];
|
|
2354
2264
|
query = args[args.length - 2];
|
|
2355
2265
|
if (method === 'aggregate' || method === 'aggregatePrefixalPipeline') {
|
|
2356
2266
|
query = args[args.length - 3];
|
|
@@ -2359,17 +2269,15 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
2359
2269
|
query.filters = (0, filters_1.formatFiltersToODataQuery)(query.filters);
|
|
2360
2270
|
}
|
|
2361
2271
|
if (this.table_name == 'cfs.files.filerecord' || this.table_name == 'cfs.instances.filerecord') {
|
|
2362
|
-
return [2
|
|
2272
|
+
return [2];
|
|
2363
2273
|
}
|
|
2364
2274
|
if ((0, util_1.isCloudAdminSpace)(spaceId)) {
|
|
2365
|
-
return [2
|
|
2275
|
+
return [2];
|
|
2366
2276
|
}
|
|
2367
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 = [];
|
|
2368
|
-
//space 权限
|
|
2369
2278
|
if (spaceId) {
|
|
2370
2279
|
spaceFilter = "(space eq '".concat(spaceId, "')");
|
|
2371
2280
|
}
|
|
2372
|
-
// 本公司权限
|
|
2373
2281
|
if (spaceId && !objPm.viewAllRecords && objPm.viewCompanyRecords) {
|
|
2374
2282
|
if (_.isEmpty(userSession.companies)) {
|
|
2375
2283
|
console.log('objPm', objPm);
|
|
@@ -2379,7 +2287,7 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
2379
2287
|
return "(company_id eq '".concat(comp._id, "') or (company_ids eq '").concat(comp._id, "')");
|
|
2380
2288
|
});
|
|
2381
2289
|
}
|
|
2382
|
-
if (!objPm.viewAllRecords && !objPm.viewCompanyRecords && objPm.allowRead) {
|
|
2290
|
+
if (!objPm.viewAllRecords && !objPm.viewCompanyRecords && objPm.allowRead) {
|
|
2383
2291
|
ownerFilter = "(owner eq '".concat(userId, "')");
|
|
2384
2292
|
}
|
|
2385
2293
|
viewAssignCompanysRecordsFilter_1 = [];
|
|
@@ -2391,25 +2299,18 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
2391
2299
|
if (!_.isEmpty(viewAssignCompanysRecordsFilter_1)) {
|
|
2392
2300
|
permissionFilters.push("(".concat(viewAssignCompanysRecordsFilter_1.join(' or '), ")"));
|
|
2393
2301
|
}
|
|
2394
|
-
return [4
|
|
2302
|
+
return [4, shareRule_1.ShareRules.getUserObjectFilters(this.name, userSession)];
|
|
2395
2303
|
case 2:
|
|
2396
|
-
//共享规则
|
|
2397
2304
|
shareRuleFilters = _a.sent();
|
|
2398
2305
|
if (!_.isEmpty(shareRuleFilters)) {
|
|
2399
2306
|
permissionFilters.push("(".concat(shareRuleFilters.join(' or '), ")"));
|
|
2400
2307
|
}
|
|
2401
|
-
return [4
|
|
2308
|
+
return [4, restrictionRule_1.RestrictionRule.getUserObjectFilters(this.name, userSession)];
|
|
2402
2309
|
case 3:
|
|
2403
|
-
// 限制规则
|
|
2404
2310
|
restrictionRuleFilters = _a.sent();
|
|
2405
2311
|
if (!_.isEmpty(restrictionRuleFilters)) {
|
|
2406
2312
|
userFilters.push("(".concat(restrictionRuleFilters.join(' or '), ")"));
|
|
2407
2313
|
}
|
|
2408
|
-
// objectPermissionFilters = this.getObjectPermissionFilters(objPm, userSession, false);
|
|
2409
|
-
// if (!_.isEmpty(objectPermissionFilters)) {
|
|
2410
|
-
// permissionFilters.push(`(${objectPermissionFilters.join(' or ')})`);
|
|
2411
|
-
// }
|
|
2412
|
-
//共享规则(旧)
|
|
2413
2314
|
sharesFilter = (0, util_1.getUserObjectSharesFilters)(this.name, userSession);
|
|
2414
2315
|
if (!_.isEmpty(companyFilter)) {
|
|
2415
2316
|
permissionFilters.push("(".concat(companyFilter.join(' or '), ")"));
|
|
@@ -2433,7 +2334,7 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
2433
2334
|
filters = filters ? "(".concat(filters, ") and (").concat(userFilters.join(' and '), ")") : userFilters.join(' and ');
|
|
2434
2335
|
}
|
|
2435
2336
|
query.filters = filters;
|
|
2436
|
-
return [3
|
|
2337
|
+
return [3, 5];
|
|
2437
2338
|
case 4:
|
|
2438
2339
|
if (method === 'insert') {
|
|
2439
2340
|
if (!objPm.allowCreate) {
|
|
@@ -2543,13 +2444,12 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
2543
2444
|
args[args.length - 2] = id;
|
|
2544
2445
|
}
|
|
2545
2446
|
_a.label = 5;
|
|
2546
|
-
case 5: return [2
|
|
2447
|
+
case 5: return [2];
|
|
2547
2448
|
}
|
|
2548
2449
|
});
|
|
2549
2450
|
});
|
|
2550
2451
|
};
|
|
2551
2452
|
Object.defineProperty(SteedosObjectType.prototype, "schema", {
|
|
2552
|
-
/***** get/set *****/
|
|
2553
2453
|
get: function () {
|
|
2554
2454
|
return this._schema;
|
|
2555
2455
|
},
|