diff options
author | Sam X. Chen <sam.xi.chen@gmail.com> | 2019-08-17 19:17:57 -0400 |
---|---|---|
committer | Sam X. Chen <sam.xi.chen@gmail.com> | 2019-08-17 19:17:57 -0400 |
commit | 3f0600fed70512f87dc20fe039695d1681a73d39 (patch) | |
tree | caf01293d663d18797d6834e22e503e2c6d9019a /models/integrations.js | |
parent | f3147af2f75701b08c5464f8a7a2ab10a3d7d7a5 (diff) | |
download | wekan-3f0600fed70512f87dc20fe039695d1681a73d39.tar.gz wekan-3f0600fed70512f87dc20fe039695d1681a73d39.tar.bz2 wekan-3f0600fed70512f87dc20fe039695d1681a73d39.zip |
Add Feature: enable two-way webhooks - stage one
Diffstat (limited to 'models/integrations.js')
-rw-r--r-- | models/integrations.js | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/models/integrations.js b/models/integrations.js index 0b2e08c6..0313c959 100644 --- a/models/integrations.js +++ b/models/integrations.js @@ -88,16 +88,26 @@ Integrations.attachSchema( }, }), ); - +Integrations.Const = { + GLOBAL_WEBHOOK_ID: '_global', + WEBHOOK_TYPES: ['outgoing-webhooks', 'bidirectional-webhooks'], +}; +const permissionHelper = { + allow(userId, doc) { + const user = Users.findOne(userId); + const isAdmin = user && Meteor.user().isAdmin; + return isAdmin || allowIsBoardAdmin(userId, Boards.findOne(doc.boardId)); + }, +}; Integrations.allow({ insert(userId, doc) { - return allowIsBoardAdmin(userId, Boards.findOne(doc.boardId)); + return permissionHelper.allow(userId, doc); }, update(userId, doc) { - return allowIsBoardAdmin(userId, Boards.findOne(doc.boardId)); + return permissionHelper.allow(userId, doc); }, remove(userId, doc) { - return allowIsBoardAdmin(userId, Boards.findOne(doc.boardId)); + return permissionHelper.allow(userId, doc); }, fetch: ['boardId'], }); |