@contember/engine-content-api 1.2.0-alpha.8 → 1.2.0-alpha.9
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/dist/src/acl/PermissionFactory.d.ts.map +1 -1
- package/dist/src/acl/PermissionFactory.js +15 -11
- package/dist/src/acl/PermissionFactory.js.map +1 -1
- package/dist/src/mapper/select/optimizer/helpers.d.ts.map +1 -1
- package/dist/src/mapper/select/optimizer/helpers.js +8 -1
- package/dist/src/mapper/select/optimizer/helpers.js.map +1 -1
- package/dist/src/tsconfig.tsbuildinfo +1 -1
- package/dist/src/utils/object.d.ts.map +1 -1
- package/dist/src/utils/object.js +3 -4
- package/dist/src/utils/object.js.map +1 -1
- package/dist/tests/cases/integration/graphQlSchema/model.js.map +1 -1
- package/dist/tests/cases/unit/conditionOptimizer.test.js +5 -0
- package/dist/tests/cases/unit/conditionOptimizer.test.js.map +1 -1
- package/dist/tests/cases/unit/permissionMerger.test.js +2 -0
- package/dist/tests/cases/unit/permissionMerger.test.js.map +1 -1
- package/dist/tests/cases/unit/whereOptimizer.test.js +14 -0
- package/dist/tests/cases/unit/whereOptimizer.test.js.map +1 -1
- package/dist/tests/tsconfig.tsbuildinfo +1 -1
- package/package.json +11 -11
- package/src/acl/PermissionFactory.ts +18 -13
- package/src/mapper/select/optimizer/helpers.ts +6 -2
- package/src/utils/object.ts +6 -6
- package/tests/cases/unit/conditionOptimizer.test.ts +6 -0
- package/tests/cases/unit/permissionMerger.test.ts +2 -0
- package/tests/cases/unit/whereOptimizer.test.ts +16 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PermissionFactory.d.ts","sourceRoot":"","sources":["../../../src/acl/PermissionFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,KAAK,EAAY,MAAM,mBAAmB,CAAA;AAKxD,qBAAa,iBAAiB;IACjB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,KAAK,CAAC,MAAM;IAE1C,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,SAAS,MAAM,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC,WAAW;IAgB1F,OAAO,CAAC,wBAAwB;IAuBhC,OAAO,CAAC,qCAAqC;
|
|
1
|
+
{"version":3,"file":"PermissionFactory.d.ts","sourceRoot":"","sources":["../../../src/acl/PermissionFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,KAAK,EAAY,MAAM,mBAAmB,CAAA;AAKxD,qBAAa,iBAAiB;IACjB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,KAAK,CAAC,MAAM;IAE1C,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,SAAS,MAAM,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC,WAAW;IAgB1F,OAAO,CAAC,wBAAwB;IAuBhC,OAAO,CAAC,qCAAqC;IAmD7C,OAAO,CAAC,gBAAgB;IAYxB,OAAO,CAAC,sBAAsB;IA+C9B,OAAO,CAAC,qBAAqB;IA2B7B,OAAO,CAAC,eAAe;CAyCvB"}
|
|
@@ -19,7 +19,7 @@ class PermissionFactory {
|
|
|
19
19
|
}
|
|
20
20
|
result = this.mergePermissions(result, rolePermissions);
|
|
21
21
|
}
|
|
22
|
-
this.makePrimaryPredicatesUnionOfAllFields(result);
|
|
22
|
+
result = this.makePrimaryPredicatesUnionOfAllFields(result);
|
|
23
23
|
return result;
|
|
24
24
|
}
|
|
25
25
|
prefixPredicatesWithRole(permissions, role) {
|
|
@@ -45,16 +45,17 @@ class PermissionFactory {
|
|
|
45
45
|
}));
|
|
46
46
|
}
|
|
47
47
|
makePrimaryPredicatesUnionOfAllFields(permissions) {
|
|
48
|
-
|
|
48
|
+
return (0, utils_1.mapObject)(permissions, (permission, entityName) => {
|
|
49
49
|
const entity = (0, schema_utils_1.getEntity)(this.schema, entityName);
|
|
50
|
-
const
|
|
51
|
-
const
|
|
50
|
+
const entityPredicates = { ...permission.predicates };
|
|
51
|
+
const entityOperations = { ...permission.operations };
|
|
52
52
|
const operationNames = ['read', 'create', 'update'];
|
|
53
53
|
for (let operation of operationNames) {
|
|
54
|
-
|
|
55
|
-
if (fieldPermissions === undefined) {
|
|
54
|
+
if (!entityOperations[operation]) {
|
|
56
55
|
continue;
|
|
57
56
|
}
|
|
57
|
+
const fieldPermissions = { ...entityOperations[operation] };
|
|
58
|
+
entityOperations[operation] = fieldPermissions;
|
|
58
59
|
if (Object.values(fieldPermissions).some(it => it === true)) {
|
|
59
60
|
fieldPermissions[entity.primary] = true;
|
|
60
61
|
}
|
|
@@ -67,19 +68,22 @@ class PermissionFactory {
|
|
|
67
68
|
.filter(value => value !== false)
|
|
68
69
|
.filter((value, index, array) => array.indexOf(value) === index);
|
|
69
70
|
let idPermissions = fieldPermissions[entity.primary] || false;
|
|
70
|
-
const predicates = { ...entityPermissions.predicates };
|
|
71
71
|
for (let predicateReference of predicateReferences) {
|
|
72
|
-
const [predicateDefinition, predicate] = this.mergePredicates(
|
|
72
|
+
const [predicateDefinition, predicate] = this.mergePredicates(entityPredicates, idPermissions, entityPredicates, predicateReference);
|
|
73
73
|
if (typeof predicate !== 'string' || predicateDefinition === undefined) {
|
|
74
74
|
throw new Error('should not happen');
|
|
75
75
|
}
|
|
76
76
|
idPermissions = predicate;
|
|
77
|
-
|
|
77
|
+
entityPredicates[predicate] = predicateDefinition;
|
|
78
78
|
}
|
|
79
79
|
fieldPermissions[entity.primary] = idPermissions;
|
|
80
|
-
entityPredicates[idPermissions] =
|
|
80
|
+
entityPredicates[idPermissions] = entityPredicates[idPermissions];
|
|
81
81
|
}
|
|
82
|
-
|
|
82
|
+
return {
|
|
83
|
+
operations: entityOperations,
|
|
84
|
+
predicates: entityPredicates,
|
|
85
|
+
};
|
|
86
|
+
});
|
|
83
87
|
}
|
|
84
88
|
mergePermissions(left, right) {
|
|
85
89
|
const result = { ...left };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PermissionFactory.js","sourceRoot":"","sources":["../../../src/acl/PermissionFactory.ts"],"names":[],"mappings":";;;AACA,0DAAiF;AACjF,oCAAoC;AACpC,mDAAgD;AAEhD,MAAa,iBAAiB;IAC7B,YAA6B,MAAoB;QAApB,WAAM,GAAN,MAAM,CAAc;IAAG,CAAC;IAE9C,MAAM,CAAC,GAAe,EAAE,KAAwB,EAAE,MAAe;QACvE,IAAI,MAAM,GAAoB,EAAE,CAAA;QAChC,KAAK,IAAI,IAAI,IAAI,KAAK,EAAE;YACvB,MAAM,cAAc,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAA;YAC1D,IAAI,eAAe,GAAoB,IAAI,CAAC,wBAAwB,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,IAAI,IAAI,CAAC,CAAA;YAC7G,IAAI,cAAc,CAAC,QAAQ,EAAE;gBAC5B,MAAM,oBAAoB,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,cAAc,CAAC,QAAQ,EAAE,MAAM,IAAI,IAAI,CAAC,CAAA;gBACtF,eAAe,GAAG,IAAI,CAAC,gBAAgB,CAAC,oBAAoB,EAAE,eAAe,CAAC,CAAA;aAC9E;YACD,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;SACvD;QACD,IAAI,CAAC,qCAAqC,CAAC,MAAM,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"PermissionFactory.js","sourceRoot":"","sources":["../../../src/acl/PermissionFactory.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../../../src/mapper/select/optimizer/helpers.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU;;
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../../../src/mapper/select/optimizer/helpers.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU;;CAsBtB,CAAA;AAED,eAAO,MAAM,WAAW;;CAuBvB,CAAA;AAED,eAAO,MAAM,WAAW;;CAQvB,CAAA"}
|
|
@@ -3,11 +3,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.optimizeNot = exports.optimizeAnd = exports.optimizeOr = void 0;
|
|
4
4
|
const optimizeOr = (operands) => {
|
|
5
5
|
const normalized = [];
|
|
6
|
+
let hasNever = false;
|
|
6
7
|
for (const operand of operands) {
|
|
7
8
|
if (operand === true) {
|
|
8
9
|
return true;
|
|
9
10
|
}
|
|
10
|
-
else if (operand
|
|
11
|
+
else if (operand === false) {
|
|
12
|
+
hasNever = true;
|
|
13
|
+
}
|
|
14
|
+
else {
|
|
11
15
|
normalized.push(...Array.isArray(operand.or) ? operand.or : [operand]);
|
|
12
16
|
}
|
|
13
17
|
}
|
|
@@ -17,6 +21,9 @@ const optimizeOr = (operands) => {
|
|
|
17
21
|
else if (normalized.length === 1) {
|
|
18
22
|
return normalized[0];
|
|
19
23
|
}
|
|
24
|
+
else if (hasNever) {
|
|
25
|
+
return false;
|
|
26
|
+
}
|
|
20
27
|
else {
|
|
21
28
|
return {};
|
|
22
29
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../../../src/mapper/select/optimizer/helpers.ts"],"names":[],"mappings":";;;AAAO,MAAM,UAAU,GAAG,CAAoC,QAAkC,EAA8B,EAAE;IAC/H,MAAM,UAAU,GAAQ,EAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../../../src/mapper/select/optimizer/helpers.ts"],"names":[],"mappings":";;;AAAO,MAAM,UAAU,GAAG,CAAoC,QAAkC,EAA8B,EAAE;IAC/H,MAAM,UAAU,GAAQ,EAAE,CAAA;IAC1B,IAAI,QAAQ,GAAG,KAAK,CAAA;IACpB,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;QAC/B,IAAI,OAAO,KAAK,IAAI,EAAE;YACrB,OAAO,IAAI,CAAA;SACX;aAAM,IAAI,OAAO,KAAK,KAAK,EAAE;YAC7B,QAAQ,GAAG,IAAI,CAAA;SACf;aAAO;YACP,UAAU,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAA;SACtE;KACD;IAED,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;QAC1B,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,CAAA;KACzB;SAAM,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;QACnC,OAAO,UAAU,CAAC,CAAC,CAAC,CAAA;KACpB;SAAM,IAAI,QAAQ,EAAE;QACpB,OAAO,KAAK,CAAA;KACZ;SAAM;QACN,OAAO,EAAE,CAAA;KACT;AACF,CAAC,CAAA;AAtBY,QAAA,UAAU,cAsBtB;AAEM,MAAM,WAAW,GAAG,CAAoC,QAA8C,EAA+B,EAAE;IAC7I,MAAM,UAAU,GAAQ,EAAE,CAAA;IAC1B,IAAI,SAAS,GAAG,KAAK,CAAA;IAErB,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;QAC/B,IAAI,OAAO,KAAK,IAAI,EAAE;YACrB,SAAS,GAAG,IAAI,CAAA;SAChB;aAAM,IAAI,OAAO,KAAK,KAAK,EAAE;YAC7B,OAAO,KAAK,CAAA;SACZ;aAAM,IAAI,OAAO,KAAK,SAAS,EAAE;YACjC,UAAU,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAA;SACxE;KACD;IAED,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;QAC1B,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,CAAA;KAC1B;SAAM,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;QACnC,OAAO,UAAU,CAAC,CAAC,CAAC,CAAA;KACpB;SAAM,IAAI,SAAS,EAAE;QACrB,OAAO,IAAI,CAAA;KACX;SAAM;QACN,OAAO,EAAE,CAAA;KACT;AACF,CAAC,CAAA;AAvBY,QAAA,WAAW,eAuBvB;AAEM,MAAM,WAAW,GAAG,CAAoC,OAAoB,EAAmC,EAAE;IACvH,IAAI,OAAO,OAAO,KAAK,SAAS,EAAE;QACjC,OAAO,CAAC,OAAO,CAAA;KACf;SAAM,IAAI,OAAO,CAAC,GAAG,EAAE;QACvB,OAAO,OAAO,CAAC,GAAe,CAAA;KAC9B;SAAM;QACN,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,CAAA;KACvB;AACF,CAAC,CAAA;AARY,QAAA,WAAW,eAQvB"}
|