@webda/core 1.6.0-beta.1 → 2.0.0-beta.0
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/application.d.ts +317 -195
- package/lib/application.js +171 -674
- package/lib/application.js.map +1 -1
- package/lib/application.spec.js +97 -289
- package/lib/application.spec.js.map +1 -1
- package/lib/core.d.ts +102 -214
- package/lib/core.js +146 -70
- package/lib/core.js.map +1 -1
- package/lib/core.spec.js +80 -17
- package/lib/core.spec.js.map +1 -1
- package/lib/index.d.ts +14 -9
- package/lib/index.js +19 -10
- package/lib/index.js.map +1 -1
- package/lib/models/aclmodel.d.ts +29 -8
- package/lib/models/aclmodel.js +68 -18
- package/lib/models/aclmodel.js.map +1 -1
- package/lib/models/aclmodel.spec.js +56 -19
- package/lib/models/aclmodel.spec.js.map +1 -1
- package/lib/models/coremodel.d.ts +9 -17
- package/lib/models/coremodel.js +36 -36
- package/lib/models/coremodel.js.map +1 -1
- package/lib/models/ident.d.ts +8 -3
- package/lib/models/ident.js +8 -1
- package/lib/models/ident.js.map +1 -1
- package/lib/models/ident.spec.js +3 -0
- package/lib/models/ident.spec.js.map +1 -1
- package/lib/models/ownermodel.d.ts +8 -4
- package/lib/models/ownermodel.js +10 -6
- package/lib/models/ownermodel.js.map +1 -1
- package/lib/models/rolemodel.js.map +1 -1
- package/lib/models/rolemodel.spec.js +4 -1
- package/lib/models/rolemodel.spec.js.map +1 -1
- package/lib/models/user.d.ts +32 -3
- package/lib/models/user.js +31 -0
- package/lib/models/user.js.map +1 -1
- package/lib/models/user.spec.js +11 -0
- package/lib/models/user.spec.js.map +1 -1
- package/lib/queues/filequeue.d.ts +2 -7
- package/lib/queues/filequeue.js +2 -11
- package/lib/queues/filequeue.js.map +1 -1
- package/lib/queues/filequeue.spec.js +0 -1
- package/lib/queues/filequeue.spec.js.map +1 -1
- package/lib/queues/memoryqueue.d.ts +2 -7
- package/lib/queues/memoryqueue.js +1 -11
- package/lib/queues/memoryqueue.js.map +1 -1
- package/lib/queues/memoryqueue.spec.js +0 -1
- package/lib/queues/memoryqueue.spec.js.map +1 -1
- package/lib/queues/queue.spec.d.ts +1 -1
- package/lib/queues/queue.spec.js +11 -9
- package/lib/queues/queue.spec.js.map +1 -1
- package/lib/queues/queueservice.js +1 -1
- package/lib/queues/queueservice.js.map +1 -1
- package/lib/router.d.ts +46 -1
- package/lib/router.js +89 -51
- package/lib/router.js.map +1 -1
- package/lib/router.spec.js +19 -2
- package/lib/router.spec.js.map +1 -1
- package/lib/services/asyncevents.d.ts +1 -0
- package/lib/services/asyncevents.js +4 -3
- package/lib/services/asyncevents.js.map +1 -1
- package/lib/services/authentication.d.ts +47 -5
- package/lib/services/authentication.js +99 -40
- package/lib/services/authentication.js.map +1 -1
- package/lib/services/authentication.spec.js +10 -0
- package/lib/services/authentication.spec.js.map +1 -1
- package/lib/services/binary.d.ts +126 -64
- package/lib/services/binary.js +247 -96
- package/lib/services/binary.js.map +1 -1
- package/lib/services/binary.spec.d.ts +1 -0
- package/lib/services/binary.spec.js +96 -25
- package/lib/services/binary.spec.js.map +1 -1
- package/lib/services/cloudbinary.d.ts +67 -0
- package/lib/services/cloudbinary.js +178 -0
- package/lib/services/cloudbinary.js.map +1 -0
- package/lib/services/cloudbinary.spec.d.ts +13 -0
- package/lib/services/cloudbinary.spec.js +205 -0
- package/lib/services/cloudbinary.spec.js.map +1 -0
- package/lib/services/configuration.d.ts +7 -2
- package/lib/services/configuration.js +4 -3
- package/lib/services/configuration.js.map +1 -1
- package/lib/services/configuration.spec.js +1 -0
- package/lib/services/configuration.spec.js.map +1 -1
- package/lib/services/cron.d.ts +5 -6
- package/lib/services/cron.js +4 -11
- package/lib/services/cron.js.map +1 -1
- package/lib/services/cron.spec.js +2 -3
- package/lib/services/cron.spec.js.map +1 -1
- package/lib/services/debugmailer.d.ts +11 -6
- package/lib/services/debugmailer.js +20 -14
- package/lib/services/debugmailer.js.map +1 -1
- package/lib/services/debugmailer.spec.js +1 -0
- package/lib/services/debugmailer.spec.js.map +1 -1
- package/lib/services/echo.d.ts +2 -6
- package/lib/services/echo.js +1 -11
- package/lib/services/echo.js.map +1 -1
- package/lib/services/echo.spec.js +1 -0
- package/lib/services/echo.spec.js.map +1 -1
- package/lib/services/filebinary.d.ts +36 -12
- package/lib/services/filebinary.js +123 -38
- package/lib/services/filebinary.js.map +1 -1
- package/lib/services/filebinary.spec.d.ts +4 -2
- package/lib/services/filebinary.spec.js +48 -8
- package/lib/services/filebinary.spec.js.map +1 -1
- package/lib/services/fileconfiguration.d.ts +1 -5
- package/lib/services/fileconfiguration.js +1 -10
- package/lib/services/fileconfiguration.js.map +1 -1
- package/lib/services/invitationservice.d.ts +198 -0
- package/lib/services/invitationservice.js +443 -0
- package/lib/services/invitationservice.js.map +1 -0
- package/lib/services/invitationservice.spec.d.ts +1 -0
- package/lib/services/invitationservice.spec.js +517 -0
- package/lib/services/invitationservice.spec.js.map +1 -0
- package/lib/services/kubernetesconfiguration.d.ts +3 -5
- package/lib/services/kubernetesconfiguration.js +5 -12
- package/lib/services/kubernetesconfiguration.js.map +1 -1
- package/lib/services/kubernetesconfiguration.spec.js +1 -1
- package/lib/services/kubernetesconfiguration.spec.js.map +1 -1
- package/lib/services/mailer.d.ts +44 -7
- package/lib/services/mailer.js +34 -14
- package/lib/services/mailer.js.map +1 -1
- package/lib/services/mailer.spec.js +29 -0
- package/lib/services/mailer.spec.js.map +1 -1
- package/lib/services/notificationservice.d.ts +76 -0
- package/lib/services/notificationservice.js +91 -0
- package/lib/services/notificationservice.js.map +1 -0
- package/lib/services/notificationservice.spec.d.ts +1 -0
- package/lib/services/notificationservice.spec.js +104 -0
- package/lib/services/notificationservice.spec.js.map +1 -0
- package/lib/services/oauth.d.ts +6 -4
- package/lib/services/oauth.js +28 -11
- package/lib/services/oauth.js.map +1 -1
- package/lib/services/oauth.spec.js +7 -10
- package/lib/services/oauth.spec.js.map +1 -1
- package/lib/services/resource.d.ts +1 -5
- package/lib/services/resource.js +22 -17
- package/lib/services/resource.js.map +1 -1
- package/lib/services/resource.spec.js +0 -1
- package/lib/services/resource.spec.js.map +1 -1
- package/lib/services/service.d.ts +29 -26
- package/lib/services/service.js +16 -22
- package/lib/services/service.js.map +1 -1
- package/lib/services/service.spec.js +3 -0
- package/lib/services/service.spec.js.map +1 -1
- package/lib/services/version.d.ts +2 -5
- package/lib/services/version.js +1 -10
- package/lib/services/version.js.map +1 -1
- package/lib/stores/aggregator.d.ts +3 -5
- package/lib/stores/aggregator.js +3 -10
- package/lib/stores/aggregator.js.map +1 -1
- package/lib/stores/file.d.ts +7 -8
- package/lib/stores/file.js +18 -18
- package/lib/stores/file.js.map +1 -1
- package/lib/stores/file.spec.js +8 -6
- package/lib/stores/file.spec.js.map +1 -1
- package/lib/stores/mapper.d.ts +1 -5
- package/lib/stores/mapper.js +56 -39
- package/lib/stores/mapper.js.map +1 -1
- package/lib/stores/mapper.spec.js +120 -1
- package/lib/stores/mapper.spec.js.map +1 -1
- package/lib/stores/memory.d.ts +5 -9
- package/lib/stores/memory.js +5 -17
- package/lib/stores/memory.js.map +1 -1
- package/lib/stores/memory.spec.d.ts +1 -0
- package/lib/stores/memory.spec.js +32 -0
- package/lib/stores/memory.spec.js.map +1 -1
- package/lib/stores/store.d.ts +131 -26
- package/lib/stores/store.js +399 -80
- package/lib/stores/store.js.map +1 -1
- package/lib/stores/store.spec.d.ts +29 -2
- package/lib/stores/store.spec.js +204 -31
- package/lib/stores/store.spec.js.map +1 -1
- package/lib/stores/webdaql/WebdaQLLexer.d.ts +53 -0
- package/lib/stores/webdaql/WebdaQLLexer.js +290 -0
- package/lib/stores/webdaql/WebdaQLLexer.js.map +1 -0
- package/lib/stores/webdaql/WebdaQLParserLexer.d.ts +53 -0
- package/lib/stores/webdaql/WebdaQLParserLexer.js +290 -0
- package/lib/stores/webdaql/WebdaQLParserLexer.js.map +1 -0
- package/lib/stores/webdaql/WebdaQLParserListener.d.ts +308 -0
- package/lib/stores/webdaql/WebdaQLParserListener.js +4 -0
- package/lib/stores/webdaql/WebdaQLParserListener.js.map +1 -0
- package/lib/stores/webdaql/WebdaQLParserParser.d.ts +301 -0
- package/lib/stores/webdaql/WebdaQLParserParser.js +1781 -0
- package/lib/stores/webdaql/WebdaQLParserParser.js.map +1 -0
- package/lib/stores/webdaql/WebdaQLParserVisitor.d.ts +198 -0
- package/lib/stores/webdaql/WebdaQLParserVisitor.js +4 -0
- package/lib/stores/webdaql/WebdaQLParserVisitor.js.map +1 -0
- package/lib/stores/webdaql/query.d.ts +300 -0
- package/lib/stores/webdaql/query.js +471 -0
- package/lib/stores/webdaql/query.js.map +1 -0
- package/lib/stores/webdaql/query.spec.d.ts +1 -0
- package/lib/stores/webdaql/query.spec.js +136 -0
- package/lib/stores/webdaql/query.spec.js.map +1 -0
- package/lib/test.d.ts +50 -2
- package/lib/test.js +161 -16
- package/lib/test.js.map +1 -1
- package/lib/unpackedapplication.d.ts +66 -0
- package/lib/unpackedapplication.js +202 -0
- package/lib/unpackedapplication.js.map +1 -0
- package/lib/utils/context.d.ts +14 -12
- package/lib/utils/context.js +14 -9
- package/lib/utils/context.js.map +1 -1
- package/lib/utils/context.spec.js +1 -1
- package/lib/utils/context.spec.js.map +1 -1
- package/lib/utils/cookie.d.ts +6 -3
- package/lib/utils/cookie.js +22 -20
- package/lib/utils/cookie.js.map +1 -1
- package/lib/utils/cookie.spec.js +0 -1
- package/lib/utils/cookie.spec.js.map +1 -1
- package/lib/utils/logger.d.ts +16 -3
- package/lib/utils/logger.js +16 -3
- package/lib/utils/logger.js.map +1 -1
- package/lib/utils/logger.spec.js.map +1 -1
- package/lib/utils/serializers.js +5 -1
- package/lib/utils/serializers.js.map +1 -1
- package/lib/utils/waiter.d.ts +1 -1
- package/lib/utils/waiter.js.map +1 -1
- package/package.json +25 -18
- package/test/config-file-no-reload.json +2 -1
- package/test/config-file-reload.json +2 -1
- package/test/config-invitation.json +63 -0
- package/test/config-kube-reload.json +2 -1
- package/test/config-reload.json +1 -1
- package/test/config.json +6 -10
- package/test/config.old.json +1 -1
- package/test/moddas/annotatedservice.js +1 -3
- package/test/moddas/debugmailer.js +2 -7
- package/test/moddas/fakeservice.js +1 -1
- package/test/moddas/voidstore.js +2 -4
- package/test/models/ident.js +1 -1
- package/test/models/task.js +1 -5
- package/webda.module.json +1124 -0
- package/test/config.old-default.json +0 -151
package/lib/models/aclmodel.js
CHANGED
|
@@ -10,24 +10,26 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.AclModel = void 0;
|
|
13
|
-
const
|
|
13
|
+
const coremodel_1 = require("./coremodel");
|
|
14
14
|
/**
|
|
15
15
|
* Object that contains ACL to define its own permissions
|
|
16
|
+
*
|
|
17
|
+
* @WebdaModel
|
|
16
18
|
*/
|
|
17
|
-
class AclModel extends
|
|
19
|
+
class AclModel extends coremodel_1.CoreModel {
|
|
18
20
|
constructor() {
|
|
19
21
|
super(...arguments);
|
|
20
22
|
/**
|
|
21
23
|
* Permissions on the object
|
|
22
24
|
*/
|
|
23
|
-
this.
|
|
25
|
+
this.__acl = {};
|
|
24
26
|
}
|
|
25
27
|
/**
|
|
26
28
|
* Add acls actions
|
|
27
29
|
* @returns
|
|
28
30
|
*/
|
|
29
31
|
static getActions() {
|
|
30
|
-
return Object.assign(Object.assign({}, super.getActions()), {
|
|
32
|
+
return Object.assign(Object.assign({}, super.getActions()), { acl: {
|
|
31
33
|
methods: ["PUT", "GET"]
|
|
32
34
|
} });
|
|
33
35
|
}
|
|
@@ -41,8 +43,18 @@ class AclModel extends index_1.CoreModel {
|
|
|
41
43
|
return __awaiter(this, void 0, void 0, function* () {
|
|
42
44
|
yield _super._onSave.call(this);
|
|
43
45
|
this._creator = this.getContext().getCurrentUserId();
|
|
44
|
-
if (this.
|
|
45
|
-
this.
|
|
46
|
+
if (Object.keys(this.__acl).length === 0) {
|
|
47
|
+
this.__acl[this._creator] = "all";
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Add the permissions for current user
|
|
53
|
+
*/
|
|
54
|
+
_onGet() {
|
|
55
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
56
|
+
if (this.getContext()) {
|
|
57
|
+
this._permissions = yield this.getPermissions(this.getContext());
|
|
46
58
|
}
|
|
47
59
|
});
|
|
48
60
|
}
|
|
@@ -50,22 +62,22 @@ class AclModel extends index_1.CoreModel {
|
|
|
50
62
|
* Return object ACLs
|
|
51
63
|
* @returns
|
|
52
64
|
*/
|
|
53
|
-
|
|
54
|
-
return this.
|
|
65
|
+
getAcl() {
|
|
66
|
+
return this.__acl;
|
|
55
67
|
}
|
|
56
68
|
/**
|
|
57
69
|
* Set object ACLs
|
|
58
|
-
* @param
|
|
70
|
+
* @param acl
|
|
59
71
|
*/
|
|
60
|
-
|
|
61
|
-
this.
|
|
72
|
+
setAcl(acl) {
|
|
73
|
+
this.__acl = acl;
|
|
62
74
|
}
|
|
63
75
|
/**
|
|
64
76
|
* Manage the ACL REST api actions
|
|
65
77
|
* @param ctx
|
|
66
78
|
* @returns
|
|
67
79
|
*/
|
|
68
|
-
|
|
80
|
+
_acl(ctx) {
|
|
69
81
|
if (ctx.getHttpContext().getMethod() === "PUT") {
|
|
70
82
|
return this._httpPutAcls(ctx);
|
|
71
83
|
}
|
|
@@ -79,7 +91,16 @@ class AclModel extends index_1.CoreModel {
|
|
|
79
91
|
*/
|
|
80
92
|
_httpGetAcls(ctx) {
|
|
81
93
|
return __awaiter(this, void 0, void 0, function* () {
|
|
82
|
-
ctx.write(
|
|
94
|
+
ctx.write({
|
|
95
|
+
raw: this.__acl,
|
|
96
|
+
resolved: yield Promise.all(Object.keys(this.__acl).map((ace) => __awaiter(this, void 0, void 0, function* () {
|
|
97
|
+
let user = yield this.getService("Users").get(ace);
|
|
98
|
+
return {
|
|
99
|
+
permission: this.__acl[ace],
|
|
100
|
+
actor: user === null || user === void 0 ? void 0 : user.toPublicEntry()
|
|
101
|
+
};
|
|
102
|
+
})))
|
|
103
|
+
});
|
|
83
104
|
});
|
|
84
105
|
}
|
|
85
106
|
/**
|
|
@@ -87,12 +108,19 @@ class AclModel extends index_1.CoreModel {
|
|
|
87
108
|
*/
|
|
88
109
|
_httpPutAcls(ctx) {
|
|
89
110
|
return __awaiter(this, void 0, void 0, function* () {
|
|
90
|
-
|
|
111
|
+
// This looks like a bad request
|
|
112
|
+
if (ctx.getRequestBody().raw) {
|
|
113
|
+
throw 400;
|
|
114
|
+
}
|
|
115
|
+
this.__acl = ctx.getRequestBody();
|
|
91
116
|
yield this.save();
|
|
92
117
|
});
|
|
93
118
|
}
|
|
94
119
|
// Should cache the user role in the session
|
|
95
|
-
getGroups(
|
|
120
|
+
getGroups(_ctx, user) {
|
|
121
|
+
if (!user) {
|
|
122
|
+
return [];
|
|
123
|
+
}
|
|
96
124
|
let groups = user.getGroups();
|
|
97
125
|
if (!groups) {
|
|
98
126
|
groups = [];
|
|
@@ -101,12 +129,33 @@ class AclModel extends index_1.CoreModel {
|
|
|
101
129
|
groups.push(user.uuid);
|
|
102
130
|
return groups;
|
|
103
131
|
}
|
|
132
|
+
/**
|
|
133
|
+
* Get Permissions for one object
|
|
134
|
+
* @param ctx
|
|
135
|
+
* @param user
|
|
136
|
+
* @returns
|
|
137
|
+
*/
|
|
138
|
+
getPermissions(ctx, user) {
|
|
139
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
140
|
+
if (!user) {
|
|
141
|
+
user = yield ctx.getCurrentUser();
|
|
142
|
+
}
|
|
143
|
+
let permissions = new Set();
|
|
144
|
+
let groups = this.getGroups(ctx, user);
|
|
145
|
+
for (let i in this.__acl) {
|
|
146
|
+
if (groups.indexOf(i) >= 0) {
|
|
147
|
+
this.__acl[i].split(",").forEach(p => permissions.add(p));
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
return [...permissions.values()];
|
|
151
|
+
});
|
|
152
|
+
}
|
|
104
153
|
hasPermission(ctx, user, action) {
|
|
105
154
|
return __awaiter(this, void 0, void 0, function* () {
|
|
106
155
|
let groups = this.getGroups(ctx, user);
|
|
107
|
-
for (let i in this.
|
|
156
|
+
for (let i in this.__acl) {
|
|
108
157
|
if (groups.indexOf(i) >= 0) {
|
|
109
|
-
if (this.
|
|
158
|
+
if (this.__acl[i] === "all" || this.__acl[i].split(",").indexOf(action) >= 0) {
|
|
110
159
|
return true;
|
|
111
160
|
}
|
|
112
161
|
}
|
|
@@ -116,7 +165,7 @@ class AclModel extends index_1.CoreModel {
|
|
|
116
165
|
}
|
|
117
166
|
canAct(ctx, action) {
|
|
118
167
|
return __awaiter(this, void 0, void 0, function* () {
|
|
119
|
-
if (!this.
|
|
168
|
+
if (!this.getAcl() || !ctx.getCurrentUserId()) {
|
|
120
169
|
throw 403;
|
|
121
170
|
}
|
|
122
171
|
let user = yield ctx.getCurrentUser();
|
|
@@ -127,5 +176,6 @@ class AclModel extends index_1.CoreModel {
|
|
|
127
176
|
});
|
|
128
177
|
}
|
|
129
178
|
}
|
|
179
|
+
exports.default = AclModel;
|
|
130
180
|
exports.AclModel = AclModel;
|
|
131
181
|
//# sourceMappingURL=aclmodel.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aclmodel.js","sourceRoot":"","sources":["../../src/models/aclmodel.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"aclmodel.js","sourceRoot":"","sources":["../../src/models/aclmodel.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,10 +18,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
18
18
|
const assert = require("assert");
|
|
19
19
|
const mocha_1 = require("@testdeck/mocha");
|
|
20
20
|
const index_1 = require("../index");
|
|
21
|
+
const test_1 = require("../test");
|
|
21
22
|
let AclPolicyTest = class AclPolicyTest {
|
|
22
23
|
before() {
|
|
23
24
|
return __awaiter(this, void 0, void 0, function* () {
|
|
24
|
-
|
|
25
|
+
let app = new test_1.TestApplication(__dirname + "/../../test/config.json");
|
|
26
|
+
yield app.load();
|
|
27
|
+
this._webda = new index_1.Core(app);
|
|
25
28
|
this._ctx = yield this._webda.newContext(new index_1.HttpContext("test.webda.io", "GET", "/"));
|
|
26
29
|
this._session = this._ctx.getSession();
|
|
27
30
|
this._session.login("user-uid", "none");
|
|
@@ -38,24 +41,32 @@ let AclPolicyTest = class AclPolicyTest {
|
|
|
38
41
|
get() {
|
|
39
42
|
return __awaiter(this, void 0, void 0, function* () {
|
|
40
43
|
yield assert.rejects(this.model.canAct.bind(this.model, this._ctx, "get"));
|
|
41
|
-
this.model.
|
|
44
|
+
this.model.__acl["gip-123"] = "get";
|
|
42
45
|
assert.strictEqual(yield this.model.canAct(this._ctx, "get"), this.model);
|
|
43
46
|
});
|
|
44
47
|
}
|
|
45
48
|
multipermissions() {
|
|
46
49
|
return __awaiter(this, void 0, void 0, function* () {
|
|
47
50
|
yield assert.rejects(this.model.canAct.bind(this.model, this._ctx, "action"));
|
|
48
|
-
this.model.
|
|
51
|
+
this.model.__acl["gip-123"] = "get,action";
|
|
49
52
|
assert.strictEqual(yield this.model.canAct(this._ctx, "get"), this.model);
|
|
50
53
|
assert.strictEqual(yield this.model.canAct(this._ctx, "action"), this.model);
|
|
54
|
+
assert.deepStrictEqual(yield this.model.getPermissions(this._ctx), ["get", "action"]);
|
|
55
|
+
yield this.model._onGet();
|
|
56
|
+
// @ts-ignore
|
|
57
|
+
assert.deepStrictEqual(this.model._permissions, []);
|
|
58
|
+
this.model.setContext(this._ctx);
|
|
59
|
+
yield this.model._onGet();
|
|
60
|
+
// @ts-ignore
|
|
61
|
+
assert.deepStrictEqual(this.model._permissions, ["get", "action"]);
|
|
51
62
|
});
|
|
52
63
|
}
|
|
53
64
|
multigroups() {
|
|
54
65
|
return __awaiter(this, void 0, void 0, function* () {
|
|
55
66
|
yield assert.rejects(this.model.canAct.bind(this.model, this._ctx, "action"));
|
|
56
|
-
this.model.
|
|
57
|
-
this.model.
|
|
58
|
-
this.model.
|
|
67
|
+
this.model.__acl["gip-124"] = "get,action";
|
|
68
|
+
this.model.__acl["gip-123"] = "get";
|
|
69
|
+
this.model.__acl["gip-122"] = "get,action";
|
|
59
70
|
assert.strictEqual(yield this.model.canAct(this._ctx, "get"), this.model);
|
|
60
71
|
yield assert.rejects(this.model.canAct.bind(this.model, this._ctx, "action"));
|
|
61
72
|
// @ts-ignore
|
|
@@ -66,8 +77,8 @@ let AclPolicyTest = class AclPolicyTest {
|
|
|
66
77
|
userid() {
|
|
67
78
|
return __awaiter(this, void 0, void 0, function* () {
|
|
68
79
|
yield assert.rejects(this.model.canAct.bind(this.model, this._ctx, "action"));
|
|
69
|
-
this.model.
|
|
70
|
-
this.model.
|
|
80
|
+
this.model.__acl["user-uid"] = "get";
|
|
81
|
+
this.model.__acl["gip-122"] = "get,action";
|
|
71
82
|
assert.strictEqual(yield this.model.canAct(this._ctx, "get"), this.model);
|
|
72
83
|
yield assert.rejects(this.model.canAct.bind(this.model, this._ctx, "action"));
|
|
73
84
|
this._ctx.getCurrentUserId = () => {
|
|
@@ -77,16 +88,16 @@ let AclPolicyTest = class AclPolicyTest {
|
|
|
77
88
|
this._ctx.getCurrentUserId = () => {
|
|
78
89
|
return "123";
|
|
79
90
|
};
|
|
80
|
-
this.model.
|
|
91
|
+
this.model.setAcl(undefined);
|
|
81
92
|
yield assert.rejects(this.model.canAct.bind(this.model, this._ctx, "get"), /403/);
|
|
82
93
|
});
|
|
83
94
|
}
|
|
84
95
|
all() {
|
|
85
96
|
return __awaiter(this, void 0, void 0, function* () {
|
|
86
97
|
yield assert.rejects(this.model.canAct.bind(this.model, this._ctx, "action"));
|
|
87
|
-
this.model.
|
|
88
|
-
this.model.
|
|
89
|
-
this.model.
|
|
98
|
+
this.model.__acl["gip-124"] = "get,action";
|
|
99
|
+
this.model.__acl["user-uid"] = "all";
|
|
100
|
+
this.model.__acl["gip-122"] = "get,action";
|
|
90
101
|
assert.strictEqual(yield this.model.canAct(this._ctx, "get"), this.model);
|
|
91
102
|
assert.strictEqual(yield this.model.canAct(this._ctx, "action"), this.model);
|
|
92
103
|
assert.strictEqual(yield this.model.canAct(this._ctx, "delete"), this.model);
|
|
@@ -97,18 +108,44 @@ let AclPolicyTest = class AclPolicyTest {
|
|
|
97
108
|
return __awaiter(this, void 0, void 0, function* () {
|
|
98
109
|
// @ts-ignore
|
|
99
110
|
this.model.__store = {
|
|
100
|
-
save: () => __awaiter(this, void 0, void 0, function* () { return this.model; })
|
|
111
|
+
save: () => __awaiter(this, void 0, void 0, function* () { return this.model; }),
|
|
112
|
+
// @ts-ignore
|
|
113
|
+
getService: () => {
|
|
114
|
+
return {
|
|
115
|
+
get: () => __awaiter(this, void 0, void 0, function* () {
|
|
116
|
+
return {
|
|
117
|
+
toPublicEntry: () => {
|
|
118
|
+
return {
|
|
119
|
+
displayName: "Plopi"
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
};
|
|
123
|
+
})
|
|
124
|
+
};
|
|
125
|
+
}
|
|
101
126
|
};
|
|
102
127
|
let actions = index_1.AclModel.getActions();
|
|
103
|
-
assert.notStrictEqual(actions.
|
|
128
|
+
assert.notStrictEqual(actions.acl, undefined);
|
|
104
129
|
this._ctx.setHttpContext(new index_1.HttpContext("test.webda.io", "PUT", "/", undefined, undefined, { acl: "mine" }));
|
|
105
|
-
yield this.model.
|
|
130
|
+
yield this.model._acl(this._ctx);
|
|
106
131
|
// @ts-ignore
|
|
107
|
-
assert.strictEqual(this.model.
|
|
132
|
+
assert.strictEqual(this.model.getAcl().acl, "mine");
|
|
133
|
+
this._ctx.setHttpContext(new index_1.HttpContext("test.webda.io", "PUT", "/", undefined, undefined, { raw: { acl: "mine" } }));
|
|
134
|
+
yield assert.rejects(() => this.model._acl(this._ctx));
|
|
108
135
|
this._ctx.setHttpContext(new index_1.HttpContext("test.webda.io", "GET", "/", undefined, undefined, { acl: "mine" }));
|
|
109
|
-
yield this.model.
|
|
136
|
+
yield this.model._acl(this._ctx);
|
|
110
137
|
assert.deepStrictEqual(JSON.parse(this._ctx.getResponseBody()), {
|
|
111
|
-
|
|
138
|
+
raw: {
|
|
139
|
+
acl: "mine"
|
|
140
|
+
},
|
|
141
|
+
resolved: [
|
|
142
|
+
{
|
|
143
|
+
actor: {
|
|
144
|
+
displayName: "Plopi"
|
|
145
|
+
},
|
|
146
|
+
permission: "mine"
|
|
147
|
+
}
|
|
148
|
+
]
|
|
112
149
|
});
|
|
113
150
|
});
|
|
114
151
|
}
|
|
@@ -116,7 +153,7 @@ let AclPolicyTest = class AclPolicyTest {
|
|
|
116
153
|
return __awaiter(this, void 0, void 0, function* () {
|
|
117
154
|
this.model.setContext(this._ctx);
|
|
118
155
|
yield this.model._onSave();
|
|
119
|
-
assert.deepStrictEqual(this.model.
|
|
156
|
+
assert.deepStrictEqual(this.model.__acl, { "user-uid": "all" });
|
|
120
157
|
assert.strictEqual(this.model._creator, "user-uid");
|
|
121
158
|
});
|
|
122
159
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aclmodel.spec.js","sourceRoot":"","sources":["../../src/models/aclmodel.spec.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,iCAAiC;AACjC,2CAA8C;AAC9C,
|
|
1
|
+
{"version":3,"file":"aclmodel.spec.js","sourceRoot":"","sources":["../../src/models/aclmodel.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { Store } from "../stores/store";
|
|
2
2
|
import { Context, HttpMethodType } from "../utils/context";
|
|
3
|
-
import { Service } from "
|
|
4
|
-
import { JSONSchema6 } from "json-schema";
|
|
3
|
+
import { Service } from "../services/service";
|
|
5
4
|
/**
|
|
6
5
|
* Define an export of actions from Model
|
|
7
6
|
*/
|
|
@@ -42,6 +41,7 @@ export interface CoreModelDefinition {
|
|
|
42
41
|
export declare class CoreModelUnattachedError extends Error {
|
|
43
42
|
constructor();
|
|
44
43
|
}
|
|
44
|
+
export declare function NotEnumerable(target: any, propertyKey: string): void;
|
|
45
45
|
/**
|
|
46
46
|
* Basic Object in Webda
|
|
47
47
|
*
|
|
@@ -50,9 +50,9 @@ export declare class CoreModelUnattachedError extends Error {
|
|
|
50
50
|
* Any variable starting with __ won't be exported outside of the server
|
|
51
51
|
*
|
|
52
52
|
* @class
|
|
53
|
+
* @WebdaModel
|
|
53
54
|
*/
|
|
54
55
|
declare class CoreModel {
|
|
55
|
-
static jsonExcludes: string[];
|
|
56
56
|
/**
|
|
57
57
|
* Class reference to the object
|
|
58
58
|
*/
|
|
@@ -109,7 +109,7 @@ declare class CoreModel {
|
|
|
109
109
|
* By default nothing is permitted on a CoreModel
|
|
110
110
|
* @returns
|
|
111
111
|
*/
|
|
112
|
-
canAct(
|
|
112
|
+
canAct(_ctx: Context, _action: "create" | "update" | "get" | "delete" | "get_binary" | "detach_binary" | "attach_binary" | "update_binary_metadata" | string): Promise<this>;
|
|
113
113
|
/**
|
|
114
114
|
* Get the UUID property
|
|
115
115
|
*/
|
|
@@ -136,7 +136,7 @@ declare class CoreModel {
|
|
|
136
136
|
* @param raw data
|
|
137
137
|
* @param secure if false will ignore any _ variable
|
|
138
138
|
*/
|
|
139
|
-
load(raw: any, secure?: boolean):
|
|
139
|
+
load(raw: any, secure?: boolean): this;
|
|
140
140
|
/**
|
|
141
141
|
* Context of the request
|
|
142
142
|
*/
|
|
@@ -146,11 +146,11 @@ declare class CoreModel {
|
|
|
146
146
|
*
|
|
147
147
|
* Global object does not belong to a request
|
|
148
148
|
*/
|
|
149
|
-
getContext(): Context
|
|
149
|
+
getContext(): Context<any, any>;
|
|
150
150
|
/**
|
|
151
151
|
* Return the object registered store
|
|
152
152
|
*/
|
|
153
|
-
getStore(): Store<CoreModel, import("
|
|
153
|
+
getStore(): Store<CoreModel, import("../stores/store").StoreParameters, import("../stores/store").StoreEvents>;
|
|
154
154
|
/**
|
|
155
155
|
* Get the object again
|
|
156
156
|
*
|
|
@@ -175,14 +175,6 @@ declare class CoreModel {
|
|
|
175
175
|
* @throws Error if the object is not coming from a store
|
|
176
176
|
*/
|
|
177
177
|
update(changes: any): Promise<void>;
|
|
178
|
-
/**
|
|
179
|
-
* Allow to specify the JSONSchema to configure this service
|
|
180
|
-
*
|
|
181
|
-
* Return undefined by default to fallback on typescript-json-schema guess
|
|
182
|
-
*
|
|
183
|
-
* Using this method should only be exception
|
|
184
|
-
*/
|
|
185
|
-
static getSchema(): JSONSchema6;
|
|
186
178
|
/**
|
|
187
179
|
* Validate objet modification
|
|
188
180
|
*
|
|
@@ -196,7 +188,7 @@ declare class CoreModel {
|
|
|
196
188
|
* @param object
|
|
197
189
|
* @returns
|
|
198
190
|
*/
|
|
199
|
-
generateUid(
|
|
191
|
+
generateUid(_object?: any): string;
|
|
200
192
|
/**
|
|
201
193
|
* Remove all the attribute starting with __
|
|
202
194
|
* @param key
|
|
@@ -258,7 +250,7 @@ declare class CoreModel {
|
|
|
258
250
|
*
|
|
259
251
|
* @param updates to be send
|
|
260
252
|
*/
|
|
261
|
-
_onUpdate(
|
|
253
|
+
_onUpdate(_updates: any): Promise<void>;
|
|
262
254
|
/**
|
|
263
255
|
* Called when object is updated
|
|
264
256
|
*/
|
package/lib/models/coremodel.js
CHANGED
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
2
8
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
9
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
10
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -9,7 +15,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
15
|
});
|
|
10
16
|
};
|
|
11
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.CoreModel = exports.CoreModelUnattachedError = void 0;
|
|
18
|
+
exports.CoreModel = exports.NotEnumerable = exports.CoreModelUnattachedError = void 0;
|
|
13
19
|
const uuid_1 = require("uuid");
|
|
14
20
|
const context_1 = require("../utils/context");
|
|
15
21
|
/**
|
|
@@ -21,6 +27,19 @@ class CoreModelUnattachedError extends Error {
|
|
|
21
27
|
}
|
|
22
28
|
}
|
|
23
29
|
exports.CoreModelUnattachedError = CoreModelUnattachedError;
|
|
30
|
+
function NotEnumerable(target, propertyKey) {
|
|
31
|
+
Object.defineProperty(target, propertyKey, {
|
|
32
|
+
set(value) {
|
|
33
|
+
Object.defineProperty(this, propertyKey, {
|
|
34
|
+
value,
|
|
35
|
+
writable: true,
|
|
36
|
+
configurable: true
|
|
37
|
+
});
|
|
38
|
+
},
|
|
39
|
+
configurable: true
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
exports.NotEnumerable = NotEnumerable;
|
|
24
43
|
/**
|
|
25
44
|
* Basic Object in Webda
|
|
26
45
|
*
|
|
@@ -29,6 +48,7 @@ exports.CoreModelUnattachedError = CoreModelUnattachedError;
|
|
|
29
48
|
* Any variable starting with __ won't be exported outside of the server
|
|
30
49
|
*
|
|
31
50
|
* @class
|
|
51
|
+
* @WebdaModel
|
|
32
52
|
*/
|
|
33
53
|
class CoreModel {
|
|
34
54
|
constructor() {
|
|
@@ -62,7 +82,7 @@ class CoreModel {
|
|
|
62
82
|
* By default nothing is permitted on a CoreModel
|
|
63
83
|
* @returns
|
|
64
84
|
*/
|
|
65
|
-
canAct(
|
|
85
|
+
canAct(_ctx, _action) {
|
|
66
86
|
return __awaiter(this, void 0, void 0, function* () {
|
|
67
87
|
throw 403;
|
|
68
88
|
});
|
|
@@ -115,6 +135,7 @@ class CoreModel {
|
|
|
115
135
|
if (!this.getUuid()) {
|
|
116
136
|
this.setUuid(this.generateUid(raw));
|
|
117
137
|
}
|
|
138
|
+
return this;
|
|
118
139
|
}
|
|
119
140
|
/**
|
|
120
141
|
* Context of the request
|
|
@@ -208,16 +229,6 @@ class CoreModel {
|
|
|
208
229
|
}
|
|
209
230
|
});
|
|
210
231
|
}
|
|
211
|
-
/**
|
|
212
|
-
* Allow to specify the JSONSchema to configure this service
|
|
213
|
-
*
|
|
214
|
-
* Return undefined by default to fallback on typescript-json-schema guess
|
|
215
|
-
*
|
|
216
|
-
* Using this method should only be exception
|
|
217
|
-
*/
|
|
218
|
-
static getSchema() {
|
|
219
|
-
return undefined;
|
|
220
|
-
}
|
|
221
232
|
/**
|
|
222
233
|
* Validate objet modification
|
|
223
234
|
*
|
|
@@ -226,17 +237,7 @@ class CoreModel {
|
|
|
226
237
|
*/
|
|
227
238
|
validate(ctx, updates = undefined) {
|
|
228
239
|
return __awaiter(this, void 0, void 0, function* () {
|
|
229
|
-
|
|
230
|
-
if (updates) {
|
|
231
|
-
this.load(updates);
|
|
232
|
-
}
|
|
233
|
-
if (!ctx.getWebda().validateSchema(this, this)) {
|
|
234
|
-
throw new Error(ctx
|
|
235
|
-
.getWebda()
|
|
236
|
-
.validationLastErrors()
|
|
237
|
-
.map(e => e.message)
|
|
238
|
-
.join(","));
|
|
239
|
-
}
|
|
240
|
+
ctx.getWebda().validateSchema(this, updates);
|
|
240
241
|
return true;
|
|
241
242
|
});
|
|
242
243
|
}
|
|
@@ -246,7 +247,7 @@ class CoreModel {
|
|
|
246
247
|
* @param object
|
|
247
248
|
* @returns
|
|
248
249
|
*/
|
|
249
|
-
generateUid(
|
|
250
|
+
generateUid(_object = undefined) {
|
|
250
251
|
return (0, uuid_1.v4)().toString();
|
|
251
252
|
}
|
|
252
253
|
/**
|
|
@@ -269,15 +270,9 @@ class CoreModel {
|
|
|
269
270
|
*/
|
|
270
271
|
toStoredJSON(stringify = false) {
|
|
271
272
|
let obj = this._toJSON(true);
|
|
272
|
-
obj.__store = undefined;
|
|
273
273
|
obj.__type = this.__class.name;
|
|
274
274
|
if (stringify) {
|
|
275
|
-
return JSON.stringify(obj
|
|
276
|
-
if (CoreModel.jsonExcludes.indexOf(key) >= 0) {
|
|
277
|
-
return undefined;
|
|
278
|
-
}
|
|
279
|
-
return value;
|
|
280
|
-
});
|
|
275
|
+
return JSON.stringify(obj);
|
|
281
276
|
}
|
|
282
277
|
return obj;
|
|
283
278
|
}
|
|
@@ -305,9 +300,6 @@ class CoreModel {
|
|
|
305
300
|
let obj = {};
|
|
306
301
|
for (let i in this) {
|
|
307
302
|
let value = this[i];
|
|
308
|
-
if (CoreModel.jsonExcludes.indexOf(i) >= 0) {
|
|
309
|
-
continue;
|
|
310
|
-
}
|
|
311
303
|
if (!secure) {
|
|
312
304
|
value = this._jsonFilter(i, this[i]);
|
|
313
305
|
}
|
|
@@ -370,7 +362,7 @@ class CoreModel {
|
|
|
370
362
|
*
|
|
371
363
|
* @param updates to be send
|
|
372
364
|
*/
|
|
373
|
-
_onUpdate(
|
|
365
|
+
_onUpdate(_updates) {
|
|
374
366
|
return __awaiter(this, void 0, void 0, function* () {
|
|
375
367
|
// Empty to be overriden
|
|
376
368
|
});
|
|
@@ -384,6 +376,14 @@ class CoreModel {
|
|
|
384
376
|
});
|
|
385
377
|
}
|
|
386
378
|
}
|
|
379
|
+
__decorate([
|
|
380
|
+
NotEnumerable
|
|
381
|
+
], CoreModel.prototype, "__class", void 0);
|
|
382
|
+
__decorate([
|
|
383
|
+
NotEnumerable
|
|
384
|
+
], CoreModel.prototype, "__ctx", void 0);
|
|
385
|
+
__decorate([
|
|
386
|
+
NotEnumerable
|
|
387
|
+
], CoreModel.prototype, "__store", void 0);
|
|
387
388
|
exports.CoreModel = CoreModel;
|
|
388
|
-
CoreModel.jsonExcludes = ["__store", "__ctx"];
|
|
389
389
|
//# sourceMappingURL=coremodel.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coremodel.js","sourceRoot":"","sources":["../../src/models/coremodel.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"coremodel.js","sourceRoot":"","sources":["../../src/models/coremodel.ts"],"names":[],"mappings":"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"}
|