Skip to content

Commit 3d6b2f6

Browse files
committed
Run Event API Validation fixes...
- Ensure that `params` is a plain object (not an array). - Populate default event field values if params is sparse (do this in api_magic as well).
1 parent 0cfe00f commit 3d6b2f6

1 file changed

Lines changed: 11 additions & 3 deletions

File tree

lib/api/events.js

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -389,7 +389,7 @@ class Events {
389389
delete params.json;
390390
}
391391

392-
if (!params.params) params.params = {};
392+
if (!params.params || (typeof(params.params) != 'object') || Array.isArray(params.params)) params.params = {};
393393

394394
// allow user to specify event by id or title
395395
var criteria = {};
@@ -438,12 +438,16 @@ class Events {
438438
}
439439
}
440440

441-
// allow sparsely populated event params in request
441+
// allow sparsely populated event params and fields in request
442442
if (event.params) {
443443
for (var key in event.params) {
444444
if (!(key in params.params)) params.params[key] = event.params[key];
445445
}
446446
}
447+
if (event.fields) event.fields.forEach( function(field) {
448+
var key = field.id;
449+
if (!(key in params.params)) params.params[key] = field.value;
450+
});
447451

448452
// apply defaults for locked plugin params, if user is not an admin
449453
var privs = self.getComputedPrivileges(user);
@@ -580,12 +584,16 @@ class Events {
580584
return this.doError('api', "Malformed event parameter: input (must be object)", callback);
581585
}
582586

583-
// allow sparsely populated event params in request
587+
// allow sparsely populated event params and fields in request
584588
if (event.params) {
585589
for (var key in event.params) {
586590
if (!(key in params)) params[key] = event.params[key];
587591
}
588592
}
593+
if (event.fields) event.fields.forEach( function(field) {
594+
var key = field.id;
595+
if (!(key in params)) params[key] = field.value;
596+
});
589597

590598
if (!is_workflow) {
591599
var old_params = event.params || {};

0 commit comments

Comments
 (0)