diff options
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'], }); |