@contember/schema-utils 1.1.1 → 1.2.0-alpha.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/acl/PredicateDefinitionProcessor.d.ts.map +1 -1
- package/dist/src/acl/PredicateDefinitionProcessor.js +1 -0
- package/dist/src/acl/PredicateDefinitionProcessor.js.map +1 -1
- package/dist/src/model/NamingHelper.d.ts +2 -0
- package/dist/src/model/NamingHelper.d.ts.map +1 -1
- package/dist/src/model/NamingHelper.js +20 -7
- package/dist/src/model/NamingHelper.js.map +1 -1
- package/dist/src/schemaNormalizer.d.ts.map +1 -1
- package/dist/src/schemaNormalizer.js +15 -4
- package/dist/src/schemaNormalizer.js.map +1 -1
- package/dist/src/tsconfig.tsbuildinfo +1 -1
- package/dist/src/type-schema/acl.d.ts.map +1 -1
- package/dist/src/type-schema/acl.js +15 -3
- package/dist/src/type-schema/acl.js.map +1 -1
- package/dist/src/type-schema/condition.d.ts +5 -0
- package/dist/src/type-schema/condition.d.ts.map +1 -0
- package/dist/src/type-schema/condition.js +95 -0
- package/dist/src/type-schema/condition.js.map +1 -0
- package/dist/src/type-schema/index.d.ts +1 -0
- package/dist/src/type-schema/index.d.ts.map +1 -1
- package/dist/src/type-schema/index.js +1 -0
- package/dist/src/type-schema/index.js.map +1 -1
- package/dist/src/type-schema/model.d.ts +1 -0
- package/dist/src/type-schema/model.d.ts.map +1 -1
- package/dist/src/type-schema/model.js +5 -0
- package/dist/src/type-schema/model.js.map +1 -1
- package/dist/src/validation/AclValidator.d.ts.map +1 -1
- package/dist/src/validation/AclValidator.js +13 -2
- package/dist/src/validation/AclValidator.js.map +1 -1
- package/dist/src/validation/MembershipResolver.d.ts +37 -0
- package/dist/src/validation/MembershipResolver.d.ts.map +1 -0
- package/dist/src/validation/MembershipResolver.js +104 -0
- package/dist/src/validation/MembershipResolver.js.map +1 -0
- package/dist/src/validation/ModelValidator.d.ts.map +1 -1
- package/dist/src/validation/ModelValidator.js +11 -4
- package/dist/src/validation/ModelValidator.js.map +1 -1
- package/dist/src/validation/index.d.ts +1 -0
- package/dist/src/validation/index.d.ts.map +1 -1
- package/dist/src/validation/index.js +1 -0
- package/dist/src/validation/index.js.map +1 -1
- package/dist/tests/cases/unit/conditionSchema.test.d.ts +2 -0
- package/dist/tests/cases/unit/conditionSchema.test.d.ts.map +1 -0
- package/dist/tests/cases/unit/conditionSchema.test.js +50 -0
- package/dist/tests/cases/unit/conditionSchema.test.js.map +1 -0
- package/dist/tests/cases/unit/membershipResolver.test.d.ts +2 -0
- package/dist/tests/cases/unit/membershipResolver.test.d.ts.map +1 -0
- package/dist/tests/cases/unit/membershipResolver.test.js +149 -0
- package/dist/tests/cases/unit/membershipResolver.test.js.map +1 -0
- package/dist/tests/tsconfig.tsbuildinfo +1 -0
- package/package.json +5 -5
- package/src/acl/PredicateDefinitionProcessor.ts +1 -0
- package/src/model/NamingHelper.ts +19 -8
- package/src/schemaNormalizer.ts +15 -4
- package/src/type-schema/acl.ts +30 -9
- package/src/type-schema/condition.ts +81 -0
- package/src/type-schema/index.ts +1 -0
- package/src/type-schema/model.ts +7 -0
- package/src/validation/AclValidator.ts +12 -2
- package/src/validation/MembershipResolver.ts +133 -0
- package/src/validation/ModelValidator.ts +13 -4
- package/src/validation/index.ts +1 -0
- package/tests/cases/unit/conditionSchema.test.ts +55 -0
- package/tests/cases/unit/membershipResolver.test.ts +161 -0
- package/tests/tsconfig.json +12 -0
- package/tsconfig.json +8 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../../src/type-schema/model.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAA;AAC/C,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../../src/type-schema/model.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAA;AAC/C,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AA+KzC,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;kCA7GoC,OAAO;;;;;;;;;EAgHjE,CAAA"}
|
|
@@ -125,6 +125,10 @@ const viewSchemaInner = Typesafe.intersection(Typesafe.object({
|
|
|
125
125
|
}));
|
|
126
126
|
const viewSchemaCheck = true;
|
|
127
127
|
const viewSchema = viewSchemaInner;
|
|
128
|
+
const indexesSchema = Typesafe.coalesce(Typesafe.record(Typesafe.string, Typesafe.object({
|
|
129
|
+
fields: Typesafe.array(Typesafe.string),
|
|
130
|
+
name: Typesafe.string,
|
|
131
|
+
})), {});
|
|
128
132
|
const entitySchema = Typesafe.intersection(Typesafe.object({
|
|
129
133
|
name: Typesafe.string,
|
|
130
134
|
primary: Typesafe.string,
|
|
@@ -135,6 +139,7 @@ const entitySchema = Typesafe.intersection(Typesafe.object({
|
|
|
135
139
|
fields: Typesafe.array(Typesafe.string),
|
|
136
140
|
name: Typesafe.string,
|
|
137
141
|
})),
|
|
142
|
+
indexes: indexesSchema,
|
|
138
143
|
eventLog: eventLogSchema,
|
|
139
144
|
}), Typesafe.partial({
|
|
140
145
|
view: viewSchema,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model.js","sourceRoot":"","sources":["../../../src/type-schema/model.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"model.js","sourceRoot":"","sources":["../../../src/type-schema/model.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AclValidator.d.ts","sourceRoot":"","sources":["../../../src/validation/AclValidator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAG9C,OAAO,EAAgB,eAAe,EAAE,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"AclValidator.d.ts","sourceRoot":"","sources":["../../../src/validation/AclValidator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAG9C,OAAO,EAAgB,eAAe,EAAE,MAAM,UAAU,CAAA;AAKxD,qBAAa,YAAY;IACZ,OAAO,CAAC,QAAQ,CAAC,KAAK;gBAAL,KAAK,EAAE,KAAK,CAAC,MAAM;IAEzC,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,GAAG,eAAe,EAAE;IAMtD,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,uBAAuB;IAY/B,OAAO,CAAC,gBAAgB;IAWxB,OAAO,CAAC,iBAAiB;IASzB,OAAO,CAAC,gBAAgB;IAWxB,OAAO,CAAC,mBAAmB;IAoB3B,OAAO,CAAC,yBAAyB;IAoBjC,OAAO,CAAC,kBAAkB;IAc1B,OAAO,CAAC,2BAA2B;IAmCnC,OAAO,CAAC,kBAAkB;IAiB1B,OAAO,CAAC,wBAAwB;IAiBhC,OAAO,CAAC,iBAAiB;CAYzB"}
|
|
@@ -4,6 +4,7 @@ exports.AclValidator = void 0;
|
|
|
4
4
|
const acl_1 = require("../acl");
|
|
5
5
|
const model_1 = require("../model");
|
|
6
6
|
const errors_1 = require("./errors");
|
|
7
|
+
const condition_1 = require("../type-schema/condition");
|
|
7
8
|
class AclValidator {
|
|
8
9
|
constructor(model) {
|
|
9
10
|
this.model = model;
|
|
@@ -84,8 +85,18 @@ class AclValidator {
|
|
|
84
85
|
const processor = new acl_1.PredicateDefinitionProcessor(this.model);
|
|
85
86
|
processor.process(entity, predicate, {
|
|
86
87
|
handleColumn: ctx => {
|
|
87
|
-
if (typeof ctx.value === 'string'
|
|
88
|
-
|
|
88
|
+
if (typeof ctx.value === 'string') {
|
|
89
|
+
if (!variables[ctx.value]) {
|
|
90
|
+
errorBuilder.for(...ctx.path).add(`Undefined variable ${ctx.value}`);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
else {
|
|
94
|
+
try {
|
|
95
|
+
(0, condition_1.conditionSchema)(ctx.column.type)(ctx.value);
|
|
96
|
+
}
|
|
97
|
+
catch (e) {
|
|
98
|
+
errorBuilder.for(...ctx.path).add(`Invalid condition (${e.message}): ${JSON.stringify(ctx.value)}`);
|
|
99
|
+
}
|
|
89
100
|
}
|
|
90
101
|
return ctx.value;
|
|
91
102
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AclValidator.js","sourceRoot":"","sources":["../../../src/validation/AclValidator.ts"],"names":[],"mappings":";;;AACA,gCAAqD;AACrD,oCAAoC;AACpC,qCAAwD;
|
|
1
|
+
{"version":3,"file":"AclValidator.js","sourceRoot":"","sources":["../../../src/validation/AclValidator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { Acl, Input } from '@contember/schema';
|
|
2
|
+
export declare class MembershipResolver {
|
|
3
|
+
static UnknownIdentity: {
|
|
4
|
+
identityId: string;
|
|
5
|
+
};
|
|
6
|
+
resolve(acl: Acl.Schema, memberships: readonly Acl.Membership[], identity: {
|
|
7
|
+
identityId: string;
|
|
8
|
+
personId?: string;
|
|
9
|
+
}): MembershipReadResult;
|
|
10
|
+
private readMembershipVariables;
|
|
11
|
+
}
|
|
12
|
+
export declare class MembershipReadResult {
|
|
13
|
+
readonly errors: MembershipValidationError[];
|
|
14
|
+
readonly memberships: ParsedMembership[];
|
|
15
|
+
constructor(errors: MembershipValidationError[], memberships: ParsedMembership[]);
|
|
16
|
+
}
|
|
17
|
+
export declare class MembershipValidationError {
|
|
18
|
+
readonly role: string;
|
|
19
|
+
readonly error: MembershipValidationErrorType;
|
|
20
|
+
readonly variable?: string | undefined;
|
|
21
|
+
constructor(role: string, error: MembershipValidationErrorType, variable?: string | undefined);
|
|
22
|
+
}
|
|
23
|
+
export declare enum MembershipValidationErrorType {
|
|
24
|
+
ROLE_NOT_FOUND = "roleNotFound",
|
|
25
|
+
VARIABLE_NOT_FOUND = "variableNotFound",
|
|
26
|
+
VARIABLE_EMPTY = "variableEmpty",
|
|
27
|
+
VARIABLE_INVALID = "variableInvalid"
|
|
28
|
+
}
|
|
29
|
+
export interface ParsedMembershipVariable {
|
|
30
|
+
readonly name: string;
|
|
31
|
+
readonly condition: Input.Condition;
|
|
32
|
+
}
|
|
33
|
+
export interface ParsedMembership {
|
|
34
|
+
readonly role: string;
|
|
35
|
+
readonly variables: readonly ParsedMembershipVariable[];
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=MembershipResolver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MembershipResolver.d.ts","sourceRoot":"","sources":["../../../src/validation/MembershipResolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAK9C,qBAAa,kBAAkB;IAC9B,OAAc,eAAe;;MAAyD;IAEtF,OAAO,CACN,GAAG,EAAE,GAAG,CAAC,MAAM,EACf,WAAW,EAAE,SAAS,GAAG,CAAC,UAAU,EAAE,EACtC,QAAQ,EAAE;QACT,UAAU,EAAE,MAAM,CAAA;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;KACjB,GACC,oBAAoB;IA+BvB,OAAO,CAAC,uBAAuB;CAmD/B;AAED,qBAAa,oBAAoB;aAEf,MAAM,EAAE,yBAAyB,EAAE;aACnC,WAAW,EAAE,gBAAgB,EAAE;gBAD/B,MAAM,EAAE,yBAAyB,EAAE,EACnC,WAAW,EAAE,gBAAgB,EAAE;CAGhD;AAED,qBAAa,yBAAyB;aAEpB,IAAI,EAAE,MAAM;aACZ,KAAK,EAAE,6BAA6B;aACpC,QAAQ,CAAC;gBAFT,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,6BAA6B,EACpC,QAAQ,CAAC,oBAAQ;CAGlC;AAED,oBAAY,6BAA6B;IACxC,cAAc,iBAAiB;IAC/B,kBAAkB,qBAAqB;IACvC,cAAc,kBAAkB;IAChC,gBAAgB,oBAAoB;CACpC;AAGD,MAAM,WAAW,wBAAwB;IACxC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAA;CACnC;AAED,MAAM,WAAW,gBAAgB;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,SAAS,EAAE,SAAS,wBAAwB,EAAE,CAAA;CACvD"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MembershipValidationErrorType = exports.MembershipValidationError = exports.MembershipReadResult = exports.MembershipResolver = void 0;
|
|
4
|
+
const schema_1 = require("@contember/schema");
|
|
5
|
+
const acl_1 = require("../acl");
|
|
6
|
+
const type_schema_1 = require("../type-schema");
|
|
7
|
+
class MembershipResolver {
|
|
8
|
+
resolve(acl, memberships, identity) {
|
|
9
|
+
const errors = [];
|
|
10
|
+
const parsed = [];
|
|
11
|
+
const roles = acl.roles;
|
|
12
|
+
for (const membership of memberships) {
|
|
13
|
+
if (!roles[membership.role]) {
|
|
14
|
+
errors.push(new MembershipValidationError(membership.role, MembershipValidationErrorType.ROLE_NOT_FOUND));
|
|
15
|
+
continue;
|
|
16
|
+
}
|
|
17
|
+
const roleVariables = (0, acl_1.getRoleVariables)(membership.role, acl);
|
|
18
|
+
for (const variable of membership.variables) {
|
|
19
|
+
if (!roleVariables[variable.name] || roleVariables[variable.name].type === schema_1.Acl.VariableType.predefined) {
|
|
20
|
+
errors.push(new MembershipValidationError(membership.role, MembershipValidationErrorType.VARIABLE_NOT_FOUND, variable.name));
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
const [membershipErrors, parsedVariables] = this.readMembershipVariables(roleVariables, membership, identity);
|
|
24
|
+
errors.push(...membershipErrors);
|
|
25
|
+
parsed.push({
|
|
26
|
+
role: membership.role,
|
|
27
|
+
variables: parsedVariables,
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
return new MembershipReadResult(errors, parsed);
|
|
31
|
+
}
|
|
32
|
+
readMembershipVariables(roleVariables, membership, identity) {
|
|
33
|
+
const errors = [];
|
|
34
|
+
const parsedVariables = [];
|
|
35
|
+
for (const [name, variable] of Object.entries(roleVariables)) {
|
|
36
|
+
const inputVariable = membership.variables.find(it => it.name === name);
|
|
37
|
+
if (variable.type === schema_1.Acl.VariableType.predefined) {
|
|
38
|
+
switch (variable.value) {
|
|
39
|
+
case 'identityID':
|
|
40
|
+
parsedVariables.push({ name, condition: { in: [identity.identityId] } });
|
|
41
|
+
break;
|
|
42
|
+
case 'personID':
|
|
43
|
+
parsedVariables.push({
|
|
44
|
+
name,
|
|
45
|
+
condition: { in: identity.personId ? [identity.personId] : [] },
|
|
46
|
+
});
|
|
47
|
+
break;
|
|
48
|
+
default:
|
|
49
|
+
parsedVariables.push({ name, condition: { never: true } });
|
|
50
|
+
errors.push(new MembershipValidationError(membership.role, MembershipValidationErrorType.VARIABLE_INVALID, name));
|
|
51
|
+
break;
|
|
52
|
+
}
|
|
53
|
+
continue;
|
|
54
|
+
}
|
|
55
|
+
if (!inputVariable) {
|
|
56
|
+
errors.push(new MembershipValidationError(membership.role, MembershipValidationErrorType.VARIABLE_EMPTY, name));
|
|
57
|
+
parsedVariables.push({ name, condition: { never: true } });
|
|
58
|
+
continue;
|
|
59
|
+
}
|
|
60
|
+
if (variable.type === schema_1.Acl.VariableType.entity) {
|
|
61
|
+
parsedVariables.push({ name, condition: { in: inputVariable.values } }); // todo: cast to int where primary is int
|
|
62
|
+
}
|
|
63
|
+
else if (variable.type === schema_1.Acl.VariableType.condition) {
|
|
64
|
+
try {
|
|
65
|
+
const conditions = inputVariable.values.map(it => (0, type_schema_1.conditionSchema)()(JSON.parse(it)));
|
|
66
|
+
parsedVariables.push({
|
|
67
|
+
name,
|
|
68
|
+
condition: conditions.length === 1 ? conditions[0] : { or: conditions },
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
catch (_a) {
|
|
72
|
+
errors.push(new MembershipValidationError(membership.role, MembershipValidationErrorType.VARIABLE_INVALID, name));
|
|
73
|
+
parsedVariables.push({ name, condition: { never: true } });
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
return [errors, parsedVariables];
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
exports.MembershipResolver = MembershipResolver;
|
|
81
|
+
MembershipResolver.UnknownIdentity = { identityId: '00000000-0000-0000-0000-000000000000' };
|
|
82
|
+
class MembershipReadResult {
|
|
83
|
+
constructor(errors, memberships) {
|
|
84
|
+
this.errors = errors;
|
|
85
|
+
this.memberships = memberships;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
exports.MembershipReadResult = MembershipReadResult;
|
|
89
|
+
class MembershipValidationError {
|
|
90
|
+
constructor(role, error, variable) {
|
|
91
|
+
this.role = role;
|
|
92
|
+
this.error = error;
|
|
93
|
+
this.variable = variable;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
exports.MembershipValidationError = MembershipValidationError;
|
|
97
|
+
var MembershipValidationErrorType;
|
|
98
|
+
(function (MembershipValidationErrorType) {
|
|
99
|
+
MembershipValidationErrorType["ROLE_NOT_FOUND"] = "roleNotFound";
|
|
100
|
+
MembershipValidationErrorType["VARIABLE_NOT_FOUND"] = "variableNotFound";
|
|
101
|
+
MembershipValidationErrorType["VARIABLE_EMPTY"] = "variableEmpty";
|
|
102
|
+
MembershipValidationErrorType["VARIABLE_INVALID"] = "variableInvalid";
|
|
103
|
+
})(MembershipValidationErrorType = exports.MembershipValidationErrorType || (exports.MembershipValidationErrorType = {}));
|
|
104
|
+
//# sourceMappingURL=MembershipResolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MembershipResolver.js","sourceRoot":"","sources":["../../../src/validation/MembershipResolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModelValidator.d.ts","sourceRoot":"","sources":["../../../src/validation/ModelValidator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AACzC,OAAO,EAAgB,eAAe,EAAE,MAAM,UAAU,CAAA;AAOxD,qBAAa,cAAc;IACd,OAAO,CAAC,QAAQ,CAAC,KAAK;gBAAL,KAAK,EAAE,KAAK,CAAC,MAAM;IAEzC,QAAQ,IAAI,eAAe,EAAE;IAQpC,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,cAAc;IAiBtB,OAAO,CAAC,yBAAyB;IAejC,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,gBAAgB;
|
|
1
|
+
{"version":3,"file":"ModelValidator.d.ts","sourceRoot":"","sources":["../../../src/validation/ModelValidator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AACzC,OAAO,EAAgB,eAAe,EAAE,MAAM,UAAU,CAAA;AAOxD,qBAAa,cAAc;IACd,OAAO,CAAC,QAAQ,CAAC,KAAK;gBAAL,KAAK,EAAE,KAAK,CAAC,MAAM;IAEzC,QAAQ,IAAI,eAAe,EAAE;IAQpC,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,cAAc;IAiBtB,OAAO,CAAC,yBAAyB;IAejC,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,gBAAgB;IAyHxB,OAAO,CAAC,kBAAkB;IAS1B,OAAO,CAAC,kBAAkB;CAiD1B"}
|
|
@@ -95,10 +95,17 @@ class ModelValidator {
|
|
|
95
95
|
});
|
|
96
96
|
}
|
|
97
97
|
if (partialEntity.view) {
|
|
98
|
-
if (field.type === schema_1.Model.RelationType.ManyHasMany
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
98
|
+
if (field.type === schema_1.Model.RelationType.ManyHasMany) {
|
|
99
|
+
return errors.add('Many-has-many relation is not allowed on a view entity.');
|
|
100
|
+
}
|
|
101
|
+
if (!targetEntity.view &&
|
|
102
|
+
field.type === schema_1.Model.RelationType.OneHasMany) {
|
|
103
|
+
return errors.add('One-has-many relation fields on views must point to a view entity.');
|
|
104
|
+
}
|
|
105
|
+
if (!targetEntity.view &&
|
|
106
|
+
field.type === schema_1.Model.RelationType.OneHasOne &&
|
|
107
|
+
!('joiningColumn' in field)) {
|
|
108
|
+
return errors.add('One-has-one relation fields on views must be owning or point to a view entity.');
|
|
102
109
|
}
|
|
103
110
|
}
|
|
104
111
|
if ((0, model_1.isInverseRelation)(field)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModelValidator.js","sourceRoot":"","sources":["../../../src/validation/ModelValidator.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ModelValidator.js","sourceRoot":"","sources":["../../../src/validation/ModelValidator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/validation/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,kBAAkB,CAAA;AAChC,cAAc,uBAAuB,CAAA;AACrC,cAAc,UAAU,CAAA;AACxB,cAAc,mBAAmB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/validation/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,kBAAkB,CAAA;AAChC,cAAc,uBAAuB,CAAA;AACrC,cAAc,UAAU,CAAA;AACxB,cAAc,mBAAmB,CAAA;AACjC,cAAc,sBAAsB,CAAA"}
|
|
@@ -19,4 +19,5 @@ __exportStar(require("./ModelValidator"), exports);
|
|
|
19
19
|
__exportStar(require("./ValidationValidator"), exports);
|
|
20
20
|
__exportStar(require("./errors"), exports);
|
|
21
21
|
__exportStar(require("./SchemaValidator"), exports);
|
|
22
|
+
__exportStar(require("./MembershipResolver"), exports);
|
|
22
23
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/validation/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAA8B;AAC9B,mDAAgC;AAChC,wDAAqC;AACrC,2CAAwB;AACxB,oDAAiC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/validation/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAA8B;AAC9B,mDAAgC;AAChC,wDAAqC;AACrC,2CAAwB;AACxB,oDAAiC;AACjC,uDAAoC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conditionSchema.test.d.ts","sourceRoot":"","sources":["../../../../tests/cases/unit/conditionSchema.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const vitest_1 = require("vitest");
|
|
4
|
+
const type_schema_1 = require("../../../src/type-schema");
|
|
5
|
+
const schema_1 = require("@contember/schema");
|
|
6
|
+
(0, vitest_1.describe)('condition schema', () => {
|
|
7
|
+
(0, vitest_1.test)('accept composite type', () => {
|
|
8
|
+
const condition = {
|
|
9
|
+
and: [{ isNull: true }, { not: { isNull: false } }],
|
|
10
|
+
};
|
|
11
|
+
vitest_1.assert.deepStrictEqual((0, type_schema_1.conditionSchema)()(condition), condition);
|
|
12
|
+
});
|
|
13
|
+
(0, vitest_1.test)('accept string-only condition for unknown type', () => {
|
|
14
|
+
const condition = {
|
|
15
|
+
containsCI: 'foo',
|
|
16
|
+
};
|
|
17
|
+
vitest_1.assert.deepStrictEqual((0, type_schema_1.conditionSchema)()(condition), condition);
|
|
18
|
+
});
|
|
19
|
+
(0, vitest_1.test)('accept string-only condition for string type', () => {
|
|
20
|
+
const condition = {
|
|
21
|
+
containsCI: 'foo',
|
|
22
|
+
};
|
|
23
|
+
vitest_1.assert.deepStrictEqual((0, type_schema_1.conditionSchema)(schema_1.Model.ColumnType.String)(condition), condition);
|
|
24
|
+
});
|
|
25
|
+
(0, vitest_1.test)('reject string-only condition for int type', () => {
|
|
26
|
+
const condition = {
|
|
27
|
+
containsCI: 'foo',
|
|
28
|
+
};
|
|
29
|
+
vitest_1.assert.throw(() => (0, type_schema_1.conditionSchema)(schema_1.Model.ColumnType.Int)(condition), 'value at root: extra property containsCI found');
|
|
30
|
+
});
|
|
31
|
+
(0, vitest_1.test)('accept non-json condition for unknown type', () => {
|
|
32
|
+
const condition = {
|
|
33
|
+
eq: 'foo',
|
|
34
|
+
};
|
|
35
|
+
vitest_1.assert.deepStrictEqual((0, type_schema_1.conditionSchema)()(condition), condition);
|
|
36
|
+
});
|
|
37
|
+
(0, vitest_1.test)('accept non-json condition for string type', () => {
|
|
38
|
+
const condition = {
|
|
39
|
+
eq: 'foo',
|
|
40
|
+
};
|
|
41
|
+
vitest_1.assert.deepStrictEqual((0, type_schema_1.conditionSchema)(schema_1.Model.ColumnType.String)(condition), condition);
|
|
42
|
+
});
|
|
43
|
+
(0, vitest_1.test)('reject non-json condition for json type', () => {
|
|
44
|
+
const condition = {
|
|
45
|
+
eq: 'foo',
|
|
46
|
+
};
|
|
47
|
+
vitest_1.assert.throw(() => (0, type_schema_1.conditionSchema)(schema_1.Model.ColumnType.Json)(condition), 'value at root: extra property eq found');
|
|
48
|
+
});
|
|
49
|
+
});
|
|
50
|
+
//# sourceMappingURL=conditionSchema.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conditionSchema.test.js","sourceRoot":"","sources":["../../../../tests/cases/unit/conditionSchema.test.ts"],"names":[],"mappings":";;AAAA,mCAA+C;AAC/C,0DAA0D;AAC1D,8CAAyC;AAEzC,IAAA,iBAAQ,EAAC,kBAAkB,EAAE,GAAG,EAAE;IACjC,IAAA,aAAI,EAAC,uBAAuB,EAAE,GAAG,EAAE;QAClC,MAAM,SAAS,GAAG;YACjB,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;SACnD,CAAA;QACD,eAAM,CAAC,eAAe,CAAC,IAAA,6BAAe,GAAE,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,CAAA;IAChE,CAAC,CAAC,CAAA;IAEF,IAAA,aAAI,EAAC,+CAA+C,EAAE,GAAG,EAAE;QAC1D,MAAM,SAAS,GAAG;YACjB,UAAU,EAAE,KAAK;SACjB,CAAA;QACD,eAAM,CAAC,eAAe,CAAC,IAAA,6BAAe,GAAE,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,CAAA;IAChE,CAAC,CAAC,CAAA;IAEF,IAAA,aAAI,EAAC,8CAA8C,EAAE,GAAG,EAAE;QACzD,MAAM,SAAS,GAAG;YACjB,UAAU,EAAE,KAAK;SACjB,CAAA;QACD,eAAM,CAAC,eAAe,CAAC,IAAA,6BAAe,EAAC,cAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,CAAA;IACvF,CAAC,CAAC,CAAA;IAEF,IAAA,aAAI,EAAC,2CAA2C,EAAE,GAAG,EAAE;QACtD,MAAM,SAAS,GAAG;YACjB,UAAU,EAAE,KAAK;SACjB,CAAA;QACD,eAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAA,6BAAe,EAAC,cAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,EAAE,gDAAgD,CAAC,CAAA;IACvH,CAAC,CAAC,CAAA;IAGF,IAAA,aAAI,EAAC,4CAA4C,EAAE,GAAG,EAAE;QACvD,MAAM,SAAS,GAAG;YACjB,EAAE,EAAE,KAAK;SACT,CAAA;QACD,eAAM,CAAC,eAAe,CAAC,IAAA,6BAAe,GAAE,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,CAAA;IAChE,CAAC,CAAC,CAAA;IAEF,IAAA,aAAI,EAAC,2CAA2C,EAAE,GAAG,EAAE;QACtD,MAAM,SAAS,GAAG;YACjB,EAAE,EAAE,KAAK;SACT,CAAA;QACD,eAAM,CAAC,eAAe,CAAC,IAAA,6BAAe,EAAC,cAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,CAAA;IACvF,CAAC,CAAC,CAAA;IAEF,IAAA,aAAI,EAAC,yCAAyC,EAAE,GAAG,EAAE;QACpD,MAAM,SAAS,GAAG;YACjB,EAAE,EAAE,KAAK;SACT,CAAA;QACD,eAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAA,6BAAe,EAAC,cAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,EAAE,wCAAwC,CAAC,CAAA;IAChH,CAAC,CAAC,CAAA;AACH,CAAC,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"membershipResolver.test.d.ts","sourceRoot":"","sources":["../../../../tests/cases/unit/membershipResolver.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const vitest_1 = require("vitest");
|
|
4
|
+
const src_1 = require("../../../src");
|
|
5
|
+
const schema_1 = require("@contember/schema");
|
|
6
|
+
const id1 = 'bff057b3-11f7-4bc7-abe3-1f2ef266824d';
|
|
7
|
+
(0, vitest_1.test)('read membership with entity variable', () => {
|
|
8
|
+
const reader = new src_1.MembershipResolver();
|
|
9
|
+
const result = reader.resolve({
|
|
10
|
+
roles: {
|
|
11
|
+
editor: {
|
|
12
|
+
variables: {
|
|
13
|
+
localeID: { type: schema_1.Acl.VariableType.entity, entityName: 'Locale' },
|
|
14
|
+
},
|
|
15
|
+
entities: {},
|
|
16
|
+
},
|
|
17
|
+
},
|
|
18
|
+
}, [
|
|
19
|
+
{ role: 'editor', variables: [{ name: 'localeID', values: [id1] }] },
|
|
20
|
+
], src_1.MembershipResolver.UnknownIdentity);
|
|
21
|
+
vitest_1.assert.lengthOf(result.errors, 0);
|
|
22
|
+
vitest_1.assert.deepStrictEqual(result.memberships, [
|
|
23
|
+
{ role: 'editor', variables: [{ name: 'localeID', condition: { in: [id1] } }] },
|
|
24
|
+
]);
|
|
25
|
+
});
|
|
26
|
+
(0, vitest_1.test)('read fails when variable is not provided', () => {
|
|
27
|
+
const reader = new src_1.MembershipResolver();
|
|
28
|
+
const result = reader.resolve({
|
|
29
|
+
roles: {
|
|
30
|
+
editor: {
|
|
31
|
+
variables: {
|
|
32
|
+
localeID: { type: schema_1.Acl.VariableType.entity, entityName: 'Locale' },
|
|
33
|
+
},
|
|
34
|
+
entities: {},
|
|
35
|
+
},
|
|
36
|
+
},
|
|
37
|
+
}, [
|
|
38
|
+
{ role: 'editor', variables: [] },
|
|
39
|
+
], src_1.MembershipResolver.UnknownIdentity);
|
|
40
|
+
vitest_1.assert.deepStrictEqual(result.errors, [{
|
|
41
|
+
error: src_1.MembershipValidationErrorType.VARIABLE_EMPTY,
|
|
42
|
+
role: 'editor',
|
|
43
|
+
variable: 'localeID',
|
|
44
|
+
}]);
|
|
45
|
+
vitest_1.assert.deepStrictEqual(result.memberships, [
|
|
46
|
+
{ role: 'editor', variables: [{ name: 'localeID', condition: { never: true } }] },
|
|
47
|
+
]);
|
|
48
|
+
});
|
|
49
|
+
(0, vitest_1.test)('read membership with predefined variable', () => {
|
|
50
|
+
const reader = new src_1.MembershipResolver();
|
|
51
|
+
const result = reader.resolve({
|
|
52
|
+
roles: {
|
|
53
|
+
editor: {
|
|
54
|
+
variables: {
|
|
55
|
+
self: { type: schema_1.Acl.VariableType.predefined, value: 'identityID' },
|
|
56
|
+
},
|
|
57
|
+
entities: {},
|
|
58
|
+
},
|
|
59
|
+
},
|
|
60
|
+
}, [
|
|
61
|
+
{ role: 'editor', variables: [] },
|
|
62
|
+
], {
|
|
63
|
+
identityId: id1,
|
|
64
|
+
});
|
|
65
|
+
vitest_1.assert.lengthOf(result.errors, 0);
|
|
66
|
+
vitest_1.assert.deepStrictEqual(result.memberships, [
|
|
67
|
+
{ role: 'editor', variables: [{ name: 'self', condition: { in: [id1] } }] },
|
|
68
|
+
]);
|
|
69
|
+
});
|
|
70
|
+
(0, vitest_1.test)('read membership with condition variable', () => {
|
|
71
|
+
const reader = new src_1.MembershipResolver();
|
|
72
|
+
const result = reader.resolve({
|
|
73
|
+
roles: {
|
|
74
|
+
editor: {
|
|
75
|
+
variables: {
|
|
76
|
+
cond: { type: schema_1.Acl.VariableType.condition },
|
|
77
|
+
},
|
|
78
|
+
entities: {},
|
|
79
|
+
},
|
|
80
|
+
},
|
|
81
|
+
}, [
|
|
82
|
+
{ role: 'editor', variables: [{ name: 'cond', values: [JSON.stringify({ eq: 'foo' })] }] },
|
|
83
|
+
], src_1.MembershipResolver.UnknownIdentity);
|
|
84
|
+
vitest_1.assert.lengthOf(result.errors, 0);
|
|
85
|
+
vitest_1.assert.deepStrictEqual(result.memberships, [
|
|
86
|
+
{ role: 'editor', variables: [{ name: 'cond', condition: { eq: 'foo' } }] },
|
|
87
|
+
]);
|
|
88
|
+
});
|
|
89
|
+
(0, vitest_1.test)('fails on invalid condition', () => {
|
|
90
|
+
const reader = new src_1.MembershipResolver();
|
|
91
|
+
const result = reader.resolve({
|
|
92
|
+
roles: {
|
|
93
|
+
editor: {
|
|
94
|
+
variables: {
|
|
95
|
+
cond: { type: schema_1.Acl.VariableType.condition },
|
|
96
|
+
},
|
|
97
|
+
entities: {},
|
|
98
|
+
},
|
|
99
|
+
},
|
|
100
|
+
}, [
|
|
101
|
+
{ role: 'editor', variables: [{ name: 'cond', values: [JSON.stringify('abcd')] }] },
|
|
102
|
+
], src_1.MembershipResolver.UnknownIdentity);
|
|
103
|
+
vitest_1.assert.deepStrictEqual(result.errors, [{
|
|
104
|
+
error: src_1.MembershipValidationErrorType.VARIABLE_INVALID,
|
|
105
|
+
role: 'editor',
|
|
106
|
+
variable: 'cond',
|
|
107
|
+
}]);
|
|
108
|
+
vitest_1.assert.deepStrictEqual(result.memberships, [
|
|
109
|
+
{ role: 'editor', variables: [{ name: 'cond', condition: { never: true } }] },
|
|
110
|
+
]);
|
|
111
|
+
});
|
|
112
|
+
(0, vitest_1.test)('fails on undefined role', () => {
|
|
113
|
+
const reader = new src_1.MembershipResolver();
|
|
114
|
+
const result = reader.resolve({
|
|
115
|
+
roles: {},
|
|
116
|
+
}, [
|
|
117
|
+
{ role: 'editor', variables: [{ name: 'cond', values: [JSON.stringify('abcd')] }] },
|
|
118
|
+
], {
|
|
119
|
+
identityId: id1,
|
|
120
|
+
});
|
|
121
|
+
vitest_1.assert.deepStrictEqual(result.errors, [{
|
|
122
|
+
error: src_1.MembershipValidationErrorType.ROLE_NOT_FOUND,
|
|
123
|
+
role: 'editor',
|
|
124
|
+
variable: undefined,
|
|
125
|
+
}]);
|
|
126
|
+
vitest_1.assert.deepStrictEqual(result.memberships, []);
|
|
127
|
+
});
|
|
128
|
+
(0, vitest_1.test)('fails on undefined variable', () => {
|
|
129
|
+
const reader = new src_1.MembershipResolver();
|
|
130
|
+
const result = reader.resolve({
|
|
131
|
+
roles: {
|
|
132
|
+
editor: {
|
|
133
|
+
variables: {},
|
|
134
|
+
entities: {},
|
|
135
|
+
},
|
|
136
|
+
},
|
|
137
|
+
}, [
|
|
138
|
+
{ role: 'editor', variables: [{ name: 'cond', values: [JSON.stringify('abcd')] }] },
|
|
139
|
+
], src_1.MembershipResolver.UnknownIdentity);
|
|
140
|
+
vitest_1.assert.deepStrictEqual(result.errors, [{
|
|
141
|
+
error: src_1.MembershipValidationErrorType.VARIABLE_NOT_FOUND,
|
|
142
|
+
role: 'editor',
|
|
143
|
+
variable: 'cond',
|
|
144
|
+
}]);
|
|
145
|
+
vitest_1.assert.deepStrictEqual(result.memberships, [
|
|
146
|
+
{ role: 'editor', variables: [] },
|
|
147
|
+
]);
|
|
148
|
+
});
|
|
149
|
+
//# sourceMappingURL=membershipResolver.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"membershipResolver.test.js","sourceRoot":"","sources":["../../../../tests/cases/unit/membershipResolver.test.ts"],"names":[],"mappings":"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"}
|