@steedos/objectql 2.2.40 → 2.2.43
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/services/datasourceServiceFactory.js +1 -1
- package/lib/services/datasourceServiceFactory.js.map +1 -1
- package/lib/services/objectService.d.ts +14 -2
- package/lib/services/objectService.js +154 -52
- package/lib/services/objectService.js.map +1 -1
- package/lib/services/objectServiceDispatcher.js +4 -4
- package/lib/services/objectServiceDispatcher.js.map +1 -1
- package/lib/types/datasource.d.ts +1 -1
- package/lib/types/datasource.js +11 -6
- package/lib/types/datasource.js.map +1 -1
- package/lib/types/object.d.ts +13 -7
- package/lib/types/object.js +194 -220
- package/lib/types/object.js.map +1 -1
- package/lib/types/schema.d.ts +2 -0
- package/lib/types/schema.js +15 -1
- package/lib/types/schema.js.map +1 -1
- package/package.json +9 -10
- package/src/services/datasourceServiceFactory.ts +1 -1
- package/src/services/objectService.ts +91 -53
- package/src/services/objectServiceDispatcher.ts +4 -4
- package/src/types/datasource.ts +4 -1
- package/src/types/object.ts +119 -179
- package/src/types/schema.ts +8 -0
package/lib/types/object.js
CHANGED
|
@@ -20,6 +20,7 @@ var shareRule_1 = require("./shareRule");
|
|
|
20
20
|
var restrictionRule_1 = require("./restrictionRule");
|
|
21
21
|
var field_permission_1 = require("./field_permission");
|
|
22
22
|
var dynamic_load_1 = require("../dynamic-load");
|
|
23
|
+
var cachers_1 = require("@steedos/cachers");
|
|
23
24
|
var clone = require('clone');
|
|
24
25
|
// 主子表有层级限制,超过3层就报错,该函数判断当前对象作为主表对象往下的层级最多不越过3层,
|
|
25
26
|
// 其3层指的是A-B-C-D,它们都有父子关系,A作为最顶层,该对象上不可以再创建主表子表关系字段,但是B、C、D上可以;
|
|
@@ -397,25 +398,68 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
397
398
|
});
|
|
398
399
|
});
|
|
399
400
|
};
|
|
401
|
+
SteedosObjectType.prototype.getTriggerActions = function (when) {
|
|
402
|
+
var _this = this;
|
|
403
|
+
var triggers = [];
|
|
404
|
+
var cache = (0, cachers_1.getCacher)('action-triggers');
|
|
405
|
+
var triggerActions = cache.get('triggerActions');
|
|
406
|
+
if (!_.isEmpty(triggerActions)) {
|
|
407
|
+
_.map(triggerActions, function (item) {
|
|
408
|
+
if (item && item.metadata) {
|
|
409
|
+
var metadata = item.metadata;
|
|
410
|
+
if (metadata.isPattern) {
|
|
411
|
+
try {
|
|
412
|
+
if (metadata.listenTo === '*') {
|
|
413
|
+
triggers.push(item);
|
|
414
|
+
}
|
|
415
|
+
else if (_.isArray(metadata.listenTo) && _.include(metadata.listenTo, _this.name)) {
|
|
416
|
+
triggers.push(item);
|
|
417
|
+
}
|
|
418
|
+
else if (_.isRegExp(metadata.listenTo) && metadata.listenTo.test(_this.name)) {
|
|
419
|
+
triggers.push(item);
|
|
420
|
+
}
|
|
421
|
+
else if (_.isString(metadata.listenTo) && metadata.listenTo.startsWith("/")) {
|
|
422
|
+
try {
|
|
423
|
+
if (_.isRegExp(eval(metadata.listenTo)) && eval(metadata.listenTo).test(_this.name)) {
|
|
424
|
+
triggers.push(item);
|
|
425
|
+
}
|
|
426
|
+
}
|
|
427
|
+
catch (error) {
|
|
428
|
+
}
|
|
429
|
+
}
|
|
430
|
+
}
|
|
431
|
+
catch (error) {
|
|
432
|
+
console.log("error", error);
|
|
433
|
+
}
|
|
434
|
+
}
|
|
435
|
+
else {
|
|
436
|
+
if (metadata.when === when && metadata.listenTo === _this.name) {
|
|
437
|
+
triggers.push(item);
|
|
438
|
+
}
|
|
439
|
+
}
|
|
440
|
+
}
|
|
441
|
+
});
|
|
442
|
+
}
|
|
443
|
+
return triggers;
|
|
444
|
+
};
|
|
400
445
|
SteedosObjectType.prototype.runTriggerActions = function (when, context) {
|
|
401
446
|
return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
|
|
402
447
|
var triggers, triggers_1, triggers_1_1, trigger, params, e_2_1;
|
|
403
448
|
var e_2, _a;
|
|
404
449
|
return (0, tslib_1.__generator)(this, function (_b) {
|
|
405
450
|
switch (_b.label) {
|
|
406
|
-
case 0:
|
|
407
|
-
|
|
408
|
-
triggers = _b.sent();
|
|
451
|
+
case 0:
|
|
452
|
+
triggers = this.getTriggerActions(when);
|
|
409
453
|
if (_.isEmpty(triggers)) {
|
|
410
454
|
return [2 /*return*/];
|
|
411
455
|
}
|
|
456
|
+
_b.label = 1;
|
|
457
|
+
case 1:
|
|
458
|
+
_b.trys.push([1, 6, 7, 8]);
|
|
459
|
+
triggers_1 = (0, tslib_1.__values)(triggers), triggers_1_1 = triggers_1.next();
|
|
412
460
|
_b.label = 2;
|
|
413
461
|
case 2:
|
|
414
|
-
|
|
415
|
-
triggers_1 = (0, tslib_1.__values)(triggers), triggers_1_1 = triggers_1.next();
|
|
416
|
-
_b.label = 3;
|
|
417
|
-
case 3:
|
|
418
|
-
if (!!triggers_1_1.done) return [3 /*break*/, 6];
|
|
462
|
+
if (!!triggers_1_1.done) return [3 /*break*/, 5];
|
|
419
463
|
trigger = triggers_1_1.value;
|
|
420
464
|
params = (0, util_1.generateActionParams)(when, context);
|
|
421
465
|
return [4 /*yield*/, this._schema.metadataBroker.call("".concat(trigger.service.name, ".").concat(trigger.metadata.action), params).catch(function (error) {
|
|
@@ -427,24 +471,24 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
427
471
|
throw error;
|
|
428
472
|
}
|
|
429
473
|
})];
|
|
430
|
-
case
|
|
474
|
+
case 3:
|
|
431
475
|
_b.sent();
|
|
432
|
-
_b.label =
|
|
433
|
-
case
|
|
476
|
+
_b.label = 4;
|
|
477
|
+
case 4:
|
|
434
478
|
triggers_1_1 = triggers_1.next();
|
|
435
|
-
return [3 /*break*/,
|
|
436
|
-
case
|
|
437
|
-
case
|
|
479
|
+
return [3 /*break*/, 2];
|
|
480
|
+
case 5: return [3 /*break*/, 8];
|
|
481
|
+
case 6:
|
|
438
482
|
e_2_1 = _b.sent();
|
|
439
483
|
e_2 = { error: e_2_1 };
|
|
440
|
-
return [3 /*break*/,
|
|
441
|
-
case
|
|
484
|
+
return [3 /*break*/, 8];
|
|
485
|
+
case 7:
|
|
442
486
|
try {
|
|
443
487
|
if (triggers_1_1 && !triggers_1_1.done && (_a = triggers_1.return)) _a.call(triggers_1);
|
|
444
488
|
}
|
|
445
489
|
finally { if (e_2) throw e_2.error; }
|
|
446
490
|
return [7 /*endfinally*/];
|
|
447
|
-
case
|
|
491
|
+
case 8: return [2 /*return*/];
|
|
448
492
|
}
|
|
449
493
|
});
|
|
450
494
|
});
|
|
@@ -714,6 +758,12 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
714
758
|
}
|
|
715
759
|
return globalPermission;
|
|
716
760
|
};
|
|
761
|
+
/**
|
|
762
|
+
* @description:
|
|
763
|
+
* @param {SteedosUserSession} userSession
|
|
764
|
+
* @param {any} rolesFieldsPermission: 如果为false, 则不计算字段集权限,提交计算效率.
|
|
765
|
+
* @return {*}
|
|
766
|
+
*/
|
|
717
767
|
SteedosObjectType.prototype.getUserObjectPermission = function (userSession, rolesFieldsPermission) {
|
|
718
768
|
return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
|
|
719
769
|
var roles, objectRolesPermission, userObjectPermission, field_permissions, spaceId;
|
|
@@ -754,12 +804,16 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
754
804
|
if (_.isEmpty(roles)) {
|
|
755
805
|
throw new Error('not find user permission');
|
|
756
806
|
}
|
|
757
|
-
if (
|
|
758
|
-
|
|
807
|
+
if (!(rolesFieldsPermission === false)) return [3 /*break*/, 1];
|
|
808
|
+
rolesFieldsPermission = {};
|
|
809
|
+
return [3 /*break*/, 3];
|
|
759
810
|
case 1:
|
|
760
|
-
rolesFieldsPermission
|
|
761
|
-
|
|
811
|
+
if (!!rolesFieldsPermission) return [3 /*break*/, 3];
|
|
812
|
+
return [4 /*yield*/, field_permission_1.FieldPermission.getObjectFieldsPermissionGroupRole(this.name)];
|
|
762
813
|
case 2:
|
|
814
|
+
rolesFieldsPermission = _a.sent();
|
|
815
|
+
_a.label = 3;
|
|
816
|
+
case 3:
|
|
763
817
|
roles.forEach(function (role) {
|
|
764
818
|
var rolePermission = objectRolesPermission[role];
|
|
765
819
|
if (rolePermission) {
|
|
@@ -856,7 +910,7 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
856
910
|
});
|
|
857
911
|
});
|
|
858
912
|
};
|
|
859
|
-
SteedosObjectType.prototype.
|
|
913
|
+
SteedosObjectType.prototype.allowRead = function (userSession) {
|
|
860
914
|
return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
|
|
861
915
|
var userObjectPermission;
|
|
862
916
|
return (0, tslib_1.__generator)(this, function (_a) {
|
|
@@ -864,7 +918,7 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
864
918
|
case 0:
|
|
865
919
|
if (!userSession)
|
|
866
920
|
return [2 /*return*/, true];
|
|
867
|
-
return [4 /*yield*/, this.getUserObjectPermission(userSession)];
|
|
921
|
+
return [4 /*yield*/, this.getUserObjectPermission(userSession, false)];
|
|
868
922
|
case 1:
|
|
869
923
|
userObjectPermission = _a.sent();
|
|
870
924
|
if (userObjectPermission.allowRead) {
|
|
@@ -886,7 +940,7 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
886
940
|
case 0:
|
|
887
941
|
if (!userSession)
|
|
888
942
|
return [2 /*return*/, true];
|
|
889
|
-
return [4 /*yield*/, this.getUserObjectPermission(userSession)];
|
|
943
|
+
return [4 /*yield*/, this.getUserObjectPermission(userSession, false)];
|
|
890
944
|
case 1:
|
|
891
945
|
userObjectPermission = _a.sent();
|
|
892
946
|
if (userObjectPermission.allowCreate) {
|
|
@@ -908,7 +962,7 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
908
962
|
case 0:
|
|
909
963
|
if (!userSession)
|
|
910
964
|
return [2 /*return*/, true];
|
|
911
|
-
return [4 /*yield*/, this.getUserObjectPermission(userSession)];
|
|
965
|
+
return [4 /*yield*/, this.getUserObjectPermission(userSession, false)];
|
|
912
966
|
case 1:
|
|
913
967
|
userObjectPermission = _a.sent();
|
|
914
968
|
if (userObjectPermission.allowEdit) {
|
|
@@ -930,7 +984,7 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
930
984
|
case 0:
|
|
931
985
|
if (!userSession)
|
|
932
986
|
return [2 /*return*/, true];
|
|
933
|
-
return [4 /*yield*/, this.getUserObjectPermission(userSession)];
|
|
987
|
+
return [4 /*yield*/, this.getUserObjectPermission(userSession, false)];
|
|
934
988
|
case 1:
|
|
935
989
|
userObjectPermission = _a.sent();
|
|
936
990
|
if (userObjectPermission.allowDelete) {
|
|
@@ -951,11 +1005,13 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
951
1005
|
switch (_a.label) {
|
|
952
1006
|
case 0:
|
|
953
1007
|
clonedQuery = Object.assign({}, query);
|
|
1008
|
+
if (!userSession) return [3 /*break*/, 2];
|
|
954
1009
|
return [4 /*yield*/, this.processUnreadableField(userSession, clonedQuery)];
|
|
955
1010
|
case 1:
|
|
956
1011
|
_a.sent();
|
|
957
|
-
|
|
958
|
-
case 2: return [
|
|
1012
|
+
_a.label = 2;
|
|
1013
|
+
case 2: return [4 /*yield*/, this.callAdapter('find', this.table_name, clonedQuery, userSession)];
|
|
1014
|
+
case 3: return [2 /*return*/, _a.sent()];
|
|
959
1015
|
}
|
|
960
1016
|
});
|
|
961
1017
|
});
|
|
@@ -968,11 +1024,13 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
968
1024
|
switch (_a.label) {
|
|
969
1025
|
case 0:
|
|
970
1026
|
clonedQuery = Object.assign({}, query);
|
|
1027
|
+
if (!userSession) return [3 /*break*/, 2];
|
|
971
1028
|
return [4 /*yield*/, this.processUnreadableField(userSession, clonedQuery)];
|
|
972
1029
|
case 1:
|
|
973
1030
|
_a.sent();
|
|
974
|
-
|
|
975
|
-
case 2: return [
|
|
1031
|
+
_a.label = 2;
|
|
1032
|
+
case 2: return [4 /*yield*/, this.callAdapter('aggregate', this.table_name, clonedQuery, externalPipeline, userSession)];
|
|
1033
|
+
case 3: return [2 /*return*/, _a.sent()];
|
|
976
1034
|
}
|
|
977
1035
|
});
|
|
978
1036
|
});
|
|
@@ -985,11 +1043,13 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
985
1043
|
switch (_a.label) {
|
|
986
1044
|
case 0:
|
|
987
1045
|
clonedQuery = Object.assign({}, query);
|
|
1046
|
+
if (!userSession) return [3 /*break*/, 2];
|
|
988
1047
|
return [4 /*yield*/, this.processUnreadableField(userSession, clonedQuery)];
|
|
989
1048
|
case 1:
|
|
990
1049
|
_a.sent();
|
|
991
|
-
|
|
992
|
-
case 2: return [
|
|
1050
|
+
_a.label = 2;
|
|
1051
|
+
case 2: return [4 /*yield*/, this.callAdapter('directAggregate', this.table_name, clonedQuery, externalPipeline, userSession)];
|
|
1052
|
+
case 3: return [2 /*return*/, _a.sent()];
|
|
993
1053
|
}
|
|
994
1054
|
});
|
|
995
1055
|
});
|
|
@@ -1002,27 +1062,33 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1002
1062
|
switch (_a.label) {
|
|
1003
1063
|
case 0:
|
|
1004
1064
|
clonedQuery = Object.assign({}, query);
|
|
1065
|
+
if (!userSession) return [3 /*break*/, 2];
|
|
1005
1066
|
return [4 /*yield*/, this.processUnreadableField(userSession, clonedQuery)];
|
|
1006
1067
|
case 1:
|
|
1007
1068
|
_a.sent();
|
|
1008
|
-
|
|
1009
|
-
case 2: return [
|
|
1069
|
+
_a.label = 2;
|
|
1070
|
+
case 2: return [4 /*yield*/, this.callAdapter('directAggregatePrefixalPipeline', this.table_name, clonedQuery, prefixalPipeline, userSession)];
|
|
1071
|
+
case 3: return [2 /*return*/, _a.sent()];
|
|
1010
1072
|
}
|
|
1011
1073
|
});
|
|
1012
1074
|
});
|
|
1013
1075
|
};
|
|
1014
1076
|
SteedosObjectType.prototype.findOne = function (id, query, userSession) {
|
|
1015
1077
|
return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
|
|
1016
|
-
var clonedQuery;
|
|
1078
|
+
var clonedQuery, result;
|
|
1017
1079
|
return (0, tslib_1.__generator)(this, function (_a) {
|
|
1018
1080
|
switch (_a.label) {
|
|
1019
1081
|
case 0:
|
|
1020
1082
|
clonedQuery = Object.assign({}, query);
|
|
1083
|
+
if (!userSession) return [3 /*break*/, 2];
|
|
1021
1084
|
return [4 /*yield*/, this.processUnreadableField(userSession, clonedQuery)];
|
|
1022
1085
|
case 1:
|
|
1023
1086
|
_a.sent();
|
|
1024
|
-
|
|
1025
|
-
case 2: return [
|
|
1087
|
+
_a.label = 2;
|
|
1088
|
+
case 2: return [4 /*yield*/, this.callAdapter('findOne', this.table_name, id, clonedQuery, userSession)];
|
|
1089
|
+
case 3:
|
|
1090
|
+
result = _a.sent();
|
|
1091
|
+
return [2 /*return*/, result];
|
|
1026
1092
|
}
|
|
1027
1093
|
});
|
|
1028
1094
|
});
|
|
@@ -1046,12 +1112,9 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1046
1112
|
switch (_a.label) {
|
|
1047
1113
|
case 0:
|
|
1048
1114
|
doc = this.formatRecord(doc);
|
|
1049
|
-
return [4 /*yield*/, this.processUneditableFields(userSession, doc)];
|
|
1050
|
-
case 1:
|
|
1051
|
-
_a.sent();
|
|
1052
1115
|
clonedId = id;
|
|
1053
1116
|
return [4 /*yield*/, this.callAdapter('update', this.table_name, clonedId, doc, userSession)];
|
|
1054
|
-
case
|
|
1117
|
+
case 1: return [2 /*return*/, _a.sent()];
|
|
1055
1118
|
}
|
|
1056
1119
|
});
|
|
1057
1120
|
});
|
|
@@ -1063,12 +1126,9 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1063
1126
|
switch (_a.label) {
|
|
1064
1127
|
case 0:
|
|
1065
1128
|
doc = this.formatRecord(doc);
|
|
1066
|
-
return [4 /*yield*/, this.processUneditableFields(userSession, doc)];
|
|
1067
|
-
case 1:
|
|
1068
|
-
_a.sent();
|
|
1069
1129
|
clonedId = id;
|
|
1070
1130
|
return [4 /*yield*/, this.callAdapter('updateOne', this.table_name, clonedId, doc, userSession)];
|
|
1071
|
-
case
|
|
1131
|
+
case 1: return [2 /*return*/, _a.sent()];
|
|
1072
1132
|
}
|
|
1073
1133
|
});
|
|
1074
1134
|
});
|
|
@@ -1081,12 +1141,9 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1081
1141
|
switch (_a.label) {
|
|
1082
1142
|
case 0:
|
|
1083
1143
|
doc = this.formatRecord(doc);
|
|
1084
|
-
return [4 /*yield*/, this.processUneditableFields(userSession, doc)];
|
|
1085
|
-
case 1:
|
|
1086
|
-
_a.sent();
|
|
1087
1144
|
clonedQueryFilters = queryFilters;
|
|
1088
1145
|
return [4 /*yield*/, this.callAdapter('updateMany', this.table_name, clonedQueryFilters, doc, userSession)];
|
|
1089
|
-
case
|
|
1146
|
+
case 1: return [2 /*return*/, _a.sent()];
|
|
1090
1147
|
}
|
|
1091
1148
|
});
|
|
1092
1149
|
});
|
|
@@ -1139,12 +1196,9 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1139
1196
|
switch (_a.label) {
|
|
1140
1197
|
case 0:
|
|
1141
1198
|
doc = this.formatRecord(doc);
|
|
1142
|
-
return [4 /*yield*/, this.processUneditableFields(userSession, doc)];
|
|
1143
|
-
case 1:
|
|
1144
|
-
_a.sent();
|
|
1145
1199
|
clonedId = id;
|
|
1146
1200
|
return [4 /*yield*/, this.callAdapter('directUpdate', this.table_name, clonedId, doc, userSession)];
|
|
1147
|
-
case
|
|
1201
|
+
case 1: return [2 /*return*/, _a.sent()];
|
|
1148
1202
|
}
|
|
1149
1203
|
});
|
|
1150
1204
|
});
|
|
@@ -1472,18 +1526,13 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1472
1526
|
return accessFields;
|
|
1473
1527
|
};
|
|
1474
1528
|
SteedosObjectType.prototype.getRecordView = function (userSession, context) {
|
|
1529
|
+
if (context === void 0) { context = {}; }
|
|
1475
1530
|
return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
|
|
1476
|
-
var objectConfig, layouts, spaceProcessDefinition, dbListViews, rolesFieldsPermission, lng, objectMetadataConfig, _a,
|
|
1531
|
+
var objectConfig, layouts, spaceProcessDefinition, dbListViews, rolesFieldsPermission, relationsInfo, lng, objectMetadataConfig, _a, objectLayout, layoutButtonsName_1;
|
|
1477
1532
|
return (0, tslib_1.__generator)(this, function (_b) {
|
|
1478
1533
|
switch (_b.label) {
|
|
1479
1534
|
case 0:
|
|
1480
|
-
|
|
1481
|
-
objectConfig = context.objectConfig;
|
|
1482
|
-
layouts = context.layouts;
|
|
1483
|
-
spaceProcessDefinition = context.spaceProcessDefinition;
|
|
1484
|
-
dbListViews = context.dbListViews;
|
|
1485
|
-
rolesFieldsPermission = context.rolesFieldsPermission;
|
|
1486
|
-
}
|
|
1535
|
+
objectConfig = context.objectConfig, layouts = context.layouts, spaceProcessDefinition = context.spaceProcessDefinition, dbListViews = context.dbListViews, rolesFieldsPermission = context.rolesFieldsPermission, relationsInfo = context.relationsInfo;
|
|
1487
1536
|
lng = userSession.language;
|
|
1488
1537
|
if (!!objectConfig) return [3 /*break*/, 2];
|
|
1489
1538
|
return [4 /*yield*/, this.callMetadataObjectServiceAction('get', { objectApiName: this.name })];
|
|
@@ -1498,62 +1547,26 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1498
1547
|
return [4 /*yield*/, this.getUserObjectPermission(userSession, rolesFieldsPermission)];
|
|
1499
1548
|
case 3:
|
|
1500
1549
|
_a.permissions = _b.sent();
|
|
1550
|
+
if (!!relationsInfo) return [3 /*break*/, 5];
|
|
1501
1551
|
return [4 /*yield*/, this.getRelationsInfo()];
|
|
1502
1552
|
case 4:
|
|
1503
1553
|
relationsInfo = _b.sent();
|
|
1554
|
+
_b.label = 5;
|
|
1555
|
+
case 5:
|
|
1504
1556
|
objectConfig.details = relationsInfo.details;
|
|
1505
1557
|
objectConfig.masters = relationsInfo.masters;
|
|
1506
1558
|
objectConfig.lookup_details = relationsInfo.lookup_details;
|
|
1507
1559
|
delete objectConfig.db;
|
|
1508
1560
|
(0, i18n_1.translationObject)(lng, objectConfig.name, objectConfig, true);
|
|
1509
|
-
if (!!layouts) return [3 /*break*/,
|
|
1561
|
+
if (!!layouts) return [3 /*break*/, 7];
|
|
1510
1562
|
return [4 /*yield*/, (0, object_layouts_1.getObjectLayouts)(userSession.profile, userSession.spaceId, this.name)];
|
|
1511
|
-
case 5:
|
|
1512
|
-
layouts = _b.sent();
|
|
1513
|
-
_b.label = 6;
|
|
1514
1563
|
case 6:
|
|
1564
|
+
layouts = _b.sent();
|
|
1565
|
+
_b.label = 7;
|
|
1566
|
+
case 7:
|
|
1515
1567
|
objectLayout = null;
|
|
1516
1568
|
if (layouts && layouts.length > 0) {
|
|
1517
1569
|
objectLayout = layouts[0];
|
|
1518
|
-
// let _fields = {};
|
|
1519
|
-
// let sort_no = 1;
|
|
1520
|
-
// _.each(layout.fields, function(_item){
|
|
1521
|
-
// _fields[_item.field_name] = objectConfig.fields[_item.field_name]
|
|
1522
|
-
// if(_fields[_item.field_name]){
|
|
1523
|
-
// if(_.has(_item, 'group')){
|
|
1524
|
-
// _fields[_item.field_name].group = _item.group
|
|
1525
|
-
// }
|
|
1526
|
-
// if(_item.is_required){
|
|
1527
|
-
// _fields[_item.field_name].readonly = false
|
|
1528
|
-
// _fields[_item.field_name].disabled = false
|
|
1529
|
-
// _fields[_item.field_name].required = true
|
|
1530
|
-
// }else if(_item.is_readonly){
|
|
1531
|
-
// _fields[_item.field_name].readonly = true
|
|
1532
|
-
// _fields[_item.field_name].disabled = true
|
|
1533
|
-
// _fields[_item.field_name].required = false
|
|
1534
|
-
// }
|
|
1535
|
-
// if(_item.visible_on){
|
|
1536
|
-
// _fields[_item.field_name].visible_on = _item.visible_on
|
|
1537
|
-
// }
|
|
1538
|
-
// // TODO 按新字段权限规则, 调整此部分代码
|
|
1539
|
-
// if(['created','created_by','modified','modified_by'].indexOf(_item.field_name) < 0){
|
|
1540
|
-
// _fields[_item.field_name].omit = false;
|
|
1541
|
-
// _fields[_item.field_name].hidden = false;
|
|
1542
|
-
// }
|
|
1543
|
-
// _fields[_item.field_name].sort_no = sort_no;
|
|
1544
|
-
// sort_no++;
|
|
1545
|
-
// }
|
|
1546
|
-
// })
|
|
1547
|
-
// const layoutFieldKeys = _.keys(_fields);
|
|
1548
|
-
// const objectFieldKeys = _.keys(objectConfig.fields);
|
|
1549
|
-
// layoutHiddenFields = _.difference(objectFieldKeys, layoutFieldKeys);
|
|
1550
|
-
// _.each(layoutFieldKeys, function(fieldApiName){
|
|
1551
|
-
// objectConfig.fields[fieldApiName] = _fields[fieldApiName];
|
|
1552
|
-
// })
|
|
1553
|
-
// _.each(layoutHiddenFields, function(fieldApiName){
|
|
1554
|
-
// objectConfig.fields[fieldApiName].hidden = true;
|
|
1555
|
-
// objectConfig.fields[fieldApiName].sort_no = 99999;
|
|
1556
|
-
// })
|
|
1557
1570
|
_.each(objectLayout.buttons, function (button) {
|
|
1558
1571
|
var action = objectConfig.actions[button.button_name];
|
|
1559
1572
|
if (action) {
|
|
@@ -1569,8 +1582,6 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1569
1582
|
action._visible = function () { return false; }.toString();
|
|
1570
1583
|
}
|
|
1571
1584
|
});
|
|
1572
|
-
// _object.allow_customActions = userObjectLayout.custom_actions || []
|
|
1573
|
-
// _object.exclude_actions = userObjectLayout.exclude_actions || []
|
|
1574
1585
|
objectConfig.related_lists = objectLayout.related_lists || [];
|
|
1575
1586
|
_.each(objectConfig.related_lists, function (related_list) {
|
|
1576
1587
|
if (related_list.sort_field_name && _.isArray(related_list.sort_field_name) && related_list.sort_field_name.length > 0) {
|
|
@@ -1581,60 +1592,13 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1581
1592
|
}
|
|
1582
1593
|
});
|
|
1583
1594
|
}
|
|
1584
|
-
// _.each(objectConfig.fields, (field)=>{
|
|
1585
|
-
// if(field){
|
|
1586
|
-
// const fieldPermission = objectConfig.permissions.field_permissions[field.name];
|
|
1587
|
-
// const {read, edit} = fieldPermission || {read: !field.hidden, edit: !field.hidden && !field.readonly}
|
|
1588
|
-
// //不可查看: 配置了字段权限且不可查看; 没有配置字段权限,字段的hidden为true
|
|
1589
|
-
// if(read === false){
|
|
1590
|
-
// delete objectConfig.fields[field.name];
|
|
1591
|
-
// return;
|
|
1592
|
-
// }
|
|
1593
|
-
// //可查看不可编辑: 配置了字段权限可查看不可编辑; 没有配置字段权限 字段的hidden 为false 且字段的readonly为true
|
|
1594
|
-
// if(read === true && edit === false){
|
|
1595
|
-
// objectConfig.fields[field.name].hidden = false;
|
|
1596
|
-
// objectConfig.fields[field.name].readonly = true;
|
|
1597
|
-
// objectConfig.fields[field.name].disabled = true;
|
|
1598
|
-
// return;
|
|
1599
|
-
// }
|
|
1600
|
-
// //可查看可编辑: 配置了字段权限可查看可编辑; 没有配置字段权限 字段的hidden 为false 且字段的readonly为false
|
|
1601
|
-
// if(read === true && edit === true){
|
|
1602
|
-
// objectConfig.fields[field.name].hidden = false;
|
|
1603
|
-
// objectConfig.fields[field.name].readonly = false;
|
|
1604
|
-
// objectConfig.fields[field.name].disabled = false;
|
|
1605
|
-
// return;
|
|
1606
|
-
// }
|
|
1607
|
-
// console.error('字段权限处理异常', field, read, edit);
|
|
1608
|
-
// }
|
|
1609
|
-
// })
|
|
1610
|
-
// _.each(objectConfig.permissions.field_permissions, (field_permission, field) => {
|
|
1611
|
-
// const { read, edit } = field_permission;
|
|
1612
|
-
// if (userObjectFields[field] && !_.include(layoutHiddenFields, field)) {
|
|
1613
|
-
// if (read) {
|
|
1614
|
-
// userObjectFields[field].hidden = false;
|
|
1615
|
-
// userObjectFields[field].omit = true;
|
|
1616
|
-
// userObjectFields[field].readonly = true;
|
|
1617
|
-
// userObjectFields[field].disabled = true;
|
|
1618
|
-
// }
|
|
1619
|
-
// if (edit) {
|
|
1620
|
-
// userObjectFields[field].omit = false;
|
|
1621
|
-
// userObjectFields[field].hidden = false;
|
|
1622
|
-
// userObjectFields[field].readonly = false;
|
|
1623
|
-
// userObjectFields[field].disabled = false;
|
|
1624
|
-
// }
|
|
1625
|
-
// if (!read && !edit) {
|
|
1626
|
-
// delete userObjectFields[field]
|
|
1627
|
-
// }
|
|
1628
|
-
// }
|
|
1629
|
-
// })
|
|
1630
|
-
// objectConfig.fields = userObjectFields
|
|
1631
1595
|
objectConfig.fields = this.getAccessFields(objectConfig.fields, objectLayout, objectConfig.permissions);
|
|
1632
|
-
if (!!spaceProcessDefinition) return [3 /*break*/,
|
|
1596
|
+
if (!!spaceProcessDefinition) return [3 /*break*/, 9];
|
|
1633
1597
|
return [4 /*yield*/, getObject("process_definition").directFind({ filters: [['space', '=', userSession.spaceId], ['object_name', '=', this.name], ['active', '=', true]] })];
|
|
1634
|
-
case 7:
|
|
1635
|
-
spaceProcessDefinition = _b.sent();
|
|
1636
|
-
_b.label = 8;
|
|
1637
1598
|
case 8:
|
|
1599
|
+
spaceProcessDefinition = _b.sent();
|
|
1600
|
+
_b.label = 9;
|
|
1601
|
+
case 9:
|
|
1638
1602
|
if (spaceProcessDefinition.length > 0) {
|
|
1639
1603
|
objectConfig.enable_process = true;
|
|
1640
1604
|
}
|
|
@@ -1644,12 +1608,12 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1644
1608
|
delete objectConfig.triggers[key];
|
|
1645
1609
|
}
|
|
1646
1610
|
});
|
|
1647
|
-
if (!!dbListViews) return [3 /*break*/,
|
|
1611
|
+
if (!!dbListViews) return [3 /*break*/, 11];
|
|
1648
1612
|
return [4 /*yield*/, getObject("object_listviews").directFind({ filters: [['space', '=', userSession.spaceId], ['object_name', '=', this.name], [['owner', '=', userSession.userId], 'or', ['shared', '=', true]]] })];
|
|
1649
|
-
case 9:
|
|
1650
|
-
dbListViews = _b.sent();
|
|
1651
|
-
_b.label = 10;
|
|
1652
1613
|
case 10:
|
|
1614
|
+
dbListViews = _b.sent();
|
|
1615
|
+
_b.label = 11;
|
|
1616
|
+
case 11:
|
|
1653
1617
|
objectConfig.list_views = Object.assign({}, objectConfig.list_views);
|
|
1654
1618
|
_.each(dbListViews, function (dbListView) {
|
|
1655
1619
|
delete dbListView.created;
|
|
@@ -1666,7 +1630,7 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1666
1630
|
});
|
|
1667
1631
|
});
|
|
1668
1632
|
};
|
|
1669
|
-
SteedosObjectType.prototype.
|
|
1633
|
+
SteedosObjectType.prototype.getDefaultRecordView = function (userSession) {
|
|
1670
1634
|
var e_4, _a;
|
|
1671
1635
|
return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
|
|
1672
1636
|
var object_name, type, buttons, fields, related_lists, objectConfig, sortedFields, relatedLists, details, lookup_details, relatedLists_1, relatedLists_1_1, related, relatedItem, foo, rObjectName, relatedObject, relatedObjectAllListView, fieldNames_1, e_4_1;
|
|
@@ -1805,7 +1769,7 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1805
1769
|
});
|
|
1806
1770
|
});
|
|
1807
1771
|
};
|
|
1808
|
-
SteedosObjectType.prototype.
|
|
1772
|
+
SteedosObjectType.prototype.createDefaultRecordView = function (userSession) {
|
|
1809
1773
|
return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
|
|
1810
1774
|
var name, label, profiles, defaultRecordView, error_3;
|
|
1811
1775
|
return (0, tslib_1.__generator)(this, function (_a) {
|
|
@@ -1817,7 +1781,7 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1817
1781
|
_a.label = 1;
|
|
1818
1782
|
case 1:
|
|
1819
1783
|
_a.trys.push([1, 4, , 5]);
|
|
1820
|
-
return [4 /*yield*/, this.
|
|
1784
|
+
return [4 /*yield*/, this.getDefaultRecordView(userSession)];
|
|
1821
1785
|
case 2:
|
|
1822
1786
|
defaultRecordView = _a.sent();
|
|
1823
1787
|
return [4 /*yield*/, getObject('object_layouts').insert(Object.assign({}, defaultRecordView, { name: name, label: label, profiles: profiles }), userSession)];
|
|
@@ -1937,7 +1901,7 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
1937
1901
|
return [2 /*return*/, true];
|
|
1938
1902
|
}
|
|
1939
1903
|
if (!(method === 'find' || method === 'findOne' || method === 'count' || method === 'aggregate' || method === 'aggregatePrefixalPipeline')) return [3 /*break*/, 2];
|
|
1940
|
-
return [4 /*yield*/, this.
|
|
1904
|
+
return [4 /*yield*/, this.allowRead(userSession)];
|
|
1941
1905
|
case 1: return [2 /*return*/, _a.sent()];
|
|
1942
1906
|
case 2:
|
|
1943
1907
|
if (!(method === 'insert')) return [3 /*break*/, 4];
|
|
@@ -2000,7 +1964,7 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
2000
1964
|
switch (_a.label) {
|
|
2001
1965
|
case 0:
|
|
2002
1966
|
_ids = _.pluck(records, '_id');
|
|
2003
|
-
return [4 /*yield*/, this.getUserObjectPermission(userSession)];
|
|
1967
|
+
return [4 /*yield*/, this.getUserObjectPermission(userSession, false)];
|
|
2004
1968
|
case 1:
|
|
2005
1969
|
objPm = _a.sent();
|
|
2006
1970
|
permissionFilters = this.getObjectEditPermissionFilters(objPm, userSession);
|
|
@@ -2069,7 +2033,7 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
2069
2033
|
if (!userSession) {
|
|
2070
2034
|
return [2 /*return*/];
|
|
2071
2035
|
}
|
|
2072
|
-
return [4 /*yield*/, this.getUserObjectPermission(userSession)];
|
|
2036
|
+
return [4 /*yield*/, this.getUserObjectPermission(userSession, false)];
|
|
2073
2037
|
case 1:
|
|
2074
2038
|
userObjectPermission = _a.sent();
|
|
2075
2039
|
userObjectUnreadableFields = userObjectPermission.unreadable_fields;
|
|
@@ -2105,13 +2069,22 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
2105
2069
|
});
|
|
2106
2070
|
});
|
|
2107
2071
|
};
|
|
2108
|
-
|
|
2109
|
-
|
|
2110
|
-
|
|
2111
|
-
|
|
2112
|
-
|
|
2113
|
-
|
|
2114
|
-
|
|
2072
|
+
// private async processUneditableFields(userSession: SteedosUserSession, doc: JsonMap) {
|
|
2073
|
+
// 后台直接去掉uneditable_fields相关判断逻辑
|
|
2074
|
+
// [签约对象同时配置了company_ids必填及uneditable_fields造成部分用户新建签约对象时报错 #192](https://github.com/steedos/steedos-project-dzug/issues/192)
|
|
2075
|
+
// if (!userSession) {
|
|
2076
|
+
// return
|
|
2077
|
+
// }
|
|
2078
|
+
// let userObjectPermission = await this.getUserObjectPermission(userSession)
|
|
2079
|
+
// let userObjectUneditableFields = userObjectPermission.uneditable_fields
|
|
2080
|
+
// let intersection = _.intersection(userObjectUneditableFields, _.keys(doc))
|
|
2081
|
+
// if (intersection.length > 0) {
|
|
2082
|
+
// throw new Error(`no permissions to edit fields ${intersection.join(', ')}`)
|
|
2083
|
+
// }
|
|
2084
|
+
// // _.each(userObjectUneditableFields, (name: string)=>{
|
|
2085
|
+
// // delete doc[name]
|
|
2086
|
+
// // })
|
|
2087
|
+
// }
|
|
2115
2088
|
SteedosObjectType.prototype.formatRecord = function (doc) {
|
|
2116
2089
|
var adapterFormat = this._datasource["formatRecord"];
|
|
2117
2090
|
if (typeof adapterFormat == 'function') {
|
|
@@ -2125,7 +2098,7 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
2125
2098
|
args[_i - 1] = arguments[_i];
|
|
2126
2099
|
}
|
|
2127
2100
|
return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
|
|
2128
|
-
var adapterMethod, allow, objectName, recordId, doc, paramRecordId, returnValue,
|
|
2101
|
+
var adapterMethod, userSession, allow, objectName, recordId, doc, paramRecordId, returnValue, beforeTriggerContext, afterTriggerContext, previousDoc, values, _records;
|
|
2129
2102
|
return (0, tslib_1.__generator)(this, function (_a) {
|
|
2130
2103
|
switch (_a.label) {
|
|
2131
2104
|
case 0:
|
|
@@ -2133,12 +2106,16 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
2133
2106
|
if (typeof adapterMethod !== 'function') {
|
|
2134
2107
|
throw new Error('Adapted does not support "' + method + '" method');
|
|
2135
2108
|
}
|
|
2136
|
-
|
|
2109
|
+
userSession = args[args.length - 1];
|
|
2110
|
+
if (!!_.isEmpty(userSession)) return [3 /*break*/, 2];
|
|
2111
|
+
return [4 /*yield*/, this.allow(method, userSession)];
|
|
2137
2112
|
case 1:
|
|
2138
2113
|
allow = _a.sent();
|
|
2139
2114
|
if (!allow) {
|
|
2140
2115
|
throw new Error('not find permission');
|
|
2141
2116
|
}
|
|
2117
|
+
_a.label = 2;
|
|
2118
|
+
case 2:
|
|
2142
2119
|
objectName = args[0];
|
|
2143
2120
|
if (["insert", "update", "updateMany", "delete"].indexOf(method) > -1) {
|
|
2144
2121
|
// 因下面的代码,比如函数dealWithMethodPermission可能改写args变量,所以需要提前从args取出对应变量值。
|
|
@@ -2155,36 +2132,33 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
2155
2132
|
if (method === 'findOne' || method === 'update' || method === 'delete') {
|
|
2156
2133
|
paramRecordId = args[1];
|
|
2157
2134
|
}
|
|
2158
|
-
if (!this._datasource.enable_space) return [3 /*break*/,
|
|
2135
|
+
if (!(!_.isEmpty(userSession) && this._datasource.enable_space)) return [3 /*break*/, 4];
|
|
2159
2136
|
this.dealWithFilters(method, args);
|
|
2160
2137
|
return [4 /*yield*/, this.dealWithMethodPermission(method, args)];
|
|
2161
|
-
case 2:
|
|
2162
|
-
_a.sent();
|
|
2163
|
-
_a.label = 3;
|
|
2164
2138
|
case 3:
|
|
2165
|
-
|
|
2166
|
-
|
|
2139
|
+
_a.sent();
|
|
2140
|
+
_a.label = 4;
|
|
2141
|
+
case 4:
|
|
2142
|
+
if (!this.isDirectCRUD(method)) return [3 /*break*/, 6];
|
|
2167
2143
|
args.splice(args.length - 1, 1, userSession ? userSession.userId : undefined);
|
|
2168
2144
|
return [4 /*yield*/, adapterMethod.apply(this._datasource, args)];
|
|
2169
|
-
case 4:
|
|
2170
|
-
returnValue = _a.sent();
|
|
2171
|
-
return [3 /*break*/, 25];
|
|
2172
2145
|
case 5:
|
|
2173
|
-
|
|
2174
|
-
return [
|
|
2175
|
-
case 6:
|
|
2146
|
+
returnValue = _a.sent();
|
|
2147
|
+
return [3 /*break*/, 26];
|
|
2148
|
+
case 6: return [4 /*yield*/, this.getTriggerContext('before', method, args)];
|
|
2149
|
+
case 7:
|
|
2176
2150
|
beforeTriggerContext = _a.sent();
|
|
2177
2151
|
if (paramRecordId) {
|
|
2178
2152
|
beforeTriggerContext = Object.assign({}, beforeTriggerContext, { id: paramRecordId });
|
|
2179
2153
|
}
|
|
2180
2154
|
return [4 /*yield*/, this.runBeforeTriggers(method, beforeTriggerContext)];
|
|
2181
|
-
case
|
|
2155
|
+
case 8:
|
|
2182
2156
|
_a.sent();
|
|
2183
2157
|
return [4 /*yield*/, (0, validation_rules_1.runValidationRules)(method, beforeTriggerContext, args[0], userSession)];
|
|
2184
|
-
case
|
|
2158
|
+
case 9:
|
|
2185
2159
|
_a.sent();
|
|
2186
2160
|
return [4 /*yield*/, this.getTriggerContext('after', method, args, paramRecordId)];
|
|
2187
|
-
case
|
|
2161
|
+
case 10:
|
|
2188
2162
|
afterTriggerContext = _a.sent();
|
|
2189
2163
|
if (paramRecordId) {
|
|
2190
2164
|
afterTriggerContext = Object.assign({}, afterTriggerContext, { id: paramRecordId });
|
|
@@ -2192,45 +2166,45 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
2192
2166
|
previousDoc = clone(afterTriggerContext.previousDoc);
|
|
2193
2167
|
args.splice(args.length - 1, 1, userSession ? userSession.userId : undefined);
|
|
2194
2168
|
return [4 /*yield*/, adapterMethod.apply(this._datasource, args)];
|
|
2195
|
-
case
|
|
2169
|
+
case 11:
|
|
2196
2170
|
returnValue = _a.sent();
|
|
2197
|
-
if (!(method === 'find' || method == 'findOne' || method == 'count' || method == 'aggregate' || method == 'aggregatePrefixalPipeline')) return [3 /*break*/,
|
|
2171
|
+
if (!(method === 'find' || method == 'findOne' || method == 'count' || method == 'aggregate' || method == 'aggregatePrefixalPipeline')) return [3 /*break*/, 15];
|
|
2198
2172
|
values = returnValue || {};
|
|
2199
|
-
if (!(method === 'count')) return [3 /*break*/,
|
|
2173
|
+
if (!(method === 'count')) return [3 /*break*/, 12];
|
|
2200
2174
|
values = returnValue || 0;
|
|
2201
|
-
return [3 /*break*/,
|
|
2202
|
-
case
|
|
2203
|
-
if (!userSession) return [3 /*break*/,
|
|
2175
|
+
return [3 /*break*/, 14];
|
|
2176
|
+
case 12:
|
|
2177
|
+
if (!userSession) return [3 /*break*/, 14];
|
|
2204
2178
|
_records = returnValue;
|
|
2205
2179
|
if (method == 'findOne' && returnValue) {
|
|
2206
2180
|
_records = [_records];
|
|
2207
2181
|
}
|
|
2208
2182
|
return [4 /*yield*/, this.appendRecordPermission(_records, userSession)];
|
|
2209
|
-
case 12:
|
|
2210
|
-
_a.sent();
|
|
2211
|
-
_a.label = 13;
|
|
2212
2183
|
case 13:
|
|
2213
|
-
|
|
2184
|
+
_a.sent();
|
|
2214
2185
|
_a.label = 14;
|
|
2215
2186
|
case 14:
|
|
2187
|
+
Object.assign(afterTriggerContext, { data: { values: values } });
|
|
2188
|
+
_a.label = 15;
|
|
2189
|
+
case 15:
|
|
2216
2190
|
// console.log("==returnValue==", returnValue);
|
|
2217
2191
|
if (method == 'insert' && _.has(returnValue, '_id')) {
|
|
2218
2192
|
afterTriggerContext.doc = returnValue;
|
|
2219
2193
|
afterTriggerContext = Object.assign({}, afterTriggerContext, { id: returnValue._id });
|
|
2220
2194
|
}
|
|
2221
|
-
if (!(method == "update")) return [3 /*break*/,
|
|
2222
|
-
if (!returnValue) return [3 /*break*/,
|
|
2195
|
+
if (!(method == "update")) return [3 /*break*/, 18];
|
|
2196
|
+
if (!returnValue) return [3 /*break*/, 17];
|
|
2223
2197
|
afterTriggerContext.doc = returnValue;
|
|
2224
2198
|
return [4 /*yield*/, this.runAfterTriggers(method, afterTriggerContext)];
|
|
2225
|
-
case
|
|
2226
|
-
_a.sent();
|
|
2227
|
-
_a.label = 16;
|
|
2228
|
-
case 16: return [3 /*break*/, 19];
|
|
2229
|
-
case 17: return [4 /*yield*/, this.runAfterTriggers(method, afterTriggerContext)];
|
|
2230
|
-
case 18:
|
|
2199
|
+
case 16:
|
|
2231
2200
|
_a.sent();
|
|
2232
|
-
_a.label =
|
|
2201
|
+
_a.label = 17;
|
|
2202
|
+
case 17: return [3 /*break*/, 20];
|
|
2203
|
+
case 18: return [4 /*yield*/, this.runAfterTriggers(method, afterTriggerContext)];
|
|
2233
2204
|
case 19:
|
|
2205
|
+
_a.sent();
|
|
2206
|
+
_a.label = 20;
|
|
2207
|
+
case 20:
|
|
2234
2208
|
if (method === 'find' || method == 'findOne' || method == 'count' || method == 'aggregate' || method == 'aggregatePrefixalPipeline') {
|
|
2235
2209
|
if (_.isEmpty(afterTriggerContext.data) || (_.isEmpty(afterTriggerContext.data.values) && !_.isNumber(afterTriggerContext.data.values))) {
|
|
2236
2210
|
return [2 /*return*/, returnValue];
|
|
@@ -2246,9 +2220,9 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
2246
2220
|
user_session: userSession,
|
|
2247
2221
|
previous_record: afterTriggerContext.previousDoc
|
|
2248
2222
|
}).run()];
|
|
2249
|
-
case
|
|
2223
|
+
case 21:
|
|
2250
2224
|
_a.sent();
|
|
2251
|
-
if (!returnValue) return [3 /*break*/,
|
|
2225
|
+
if (!returnValue) return [3 /*break*/, 24];
|
|
2252
2226
|
if (method === "insert") {
|
|
2253
2227
|
// 当为insert时,上面代码执行后的doc不带_id,只能从returnValue中取
|
|
2254
2228
|
doc = returnValue;
|
|
@@ -2256,18 +2230,18 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
2256
2230
|
}
|
|
2257
2231
|
// 一定要先运行公式再运行汇总,以下两个函数顺序不能反
|
|
2258
2232
|
return [4 /*yield*/, this.runRecordFormula(method, objectName, recordId, doc, userSession)];
|
|
2259
|
-
case
|
|
2233
|
+
case 22:
|
|
2260
2234
|
// 一定要先运行公式再运行汇总,以下两个函数顺序不能反
|
|
2261
2235
|
_a.sent();
|
|
2262
2236
|
return [4 /*yield*/, this.runRecordSummaries(method, objectName, recordId, doc, previousDoc, userSession)];
|
|
2263
|
-
case
|
|
2237
|
+
case 23:
|
|
2264
2238
|
_a.sent();
|
|
2265
|
-
_a.label =
|
|
2266
|
-
case
|
|
2267
|
-
case
|
|
2239
|
+
_a.label = 24;
|
|
2240
|
+
case 24: return [4 /*yield*/, (0, object_events_1.brokeEmitEvents)(objectName, method, afterTriggerContext)];
|
|
2241
|
+
case 25:
|
|
2268
2242
|
_a.sent();
|
|
2269
|
-
_a.label =
|
|
2270
|
-
case
|
|
2243
|
+
_a.label = 26;
|
|
2244
|
+
case 26: return [2 /*return*/, returnValue];
|
|
2271
2245
|
}
|
|
2272
2246
|
});
|
|
2273
2247
|
});
|
|
@@ -2358,7 +2332,7 @@ var SteedosObjectType = /** @class */ (function (_super) {
|
|
|
2358
2332
|
if (!userSession) return [3 /*break*/, 5];
|
|
2359
2333
|
spaceId = userSession.spaceId;
|
|
2360
2334
|
userId = userSession.userId;
|
|
2361
|
-
return [4 /*yield*/, this.getUserObjectPermission(userSession)];
|
|
2335
|
+
return [4 /*yield*/, this.getUserObjectPermission(userSession, false)];
|
|
2362
2336
|
case 1:
|
|
2363
2337
|
objPm = _a.sent();
|
|
2364
2338
|
if (!(method === 'find' || method === 'count' || method === 'findOne' || method === 'aggregate' || method === 'aggregatePrefixalPipeline')) return [3 /*break*/, 4];
|