diff --git a/graph/subscriptions/setupFunctions.js b/graph/subscriptions/setupFunctions.js index ee29d6971..f99b978f4 100644 --- a/graph/subscriptions/setupFunctions.js +++ b/graph/subscriptions/setupFunctions.js @@ -8,7 +8,7 @@ const { SUBSCRIBE_ALL_USERNAME_CHANGED, SUBSCRIBE_ALL_USERNAME_FLAGGED, SUBSCRIBE_ALL_USERNAME_REJECTED, - SUBSCRIBE_COMMENT_ACCEPTED, + SUBSCRIBE_ALL_COMMENT_ACCEPTED, SUBSCRIBE_COMMENT_FLAGGED, SUBSCRIBE_COMMENT_REJECTED, SUBSCRIBE_COMMENT_RESET, @@ -64,10 +64,14 @@ const setupFunctions = { return !args.asset_id || comment.asset_id === args.asset_id; }, commentAccepted: (options, args, comment, context) => { - if (!context.user || !context.user.can(SUBSCRIBE_COMMENT_ACCEPTED)) { - return false; + if (args.asset_id) { + // Allow sending back the comment for the user that has filtered based + // on a specific asset. + return comment.asset_id === args.asset_id; + } else { + // Only privileged users can subscribe to all assets. + return context.user && context.user.can(SUBSCRIBE_ALL_COMMENT_ACCEPTED); } - return !args.asset_id || comment.asset_id === args.asset_id; }, commentRejected: (options, args, comment, context) => { if (!context.user || !context.user.can(SUBSCRIBE_COMMENT_REJECTED)) { diff --git a/perms/constants/subscription.js b/perms/constants/subscription.js index 30ef4656d..ec1d945cb 100644 --- a/perms/constants/subscription.js +++ b/perms/constants/subscription.js @@ -1,5 +1,5 @@ module.exports = { - SUBSCRIBE_COMMENT_ACCEPTED: 'SUBSCRIBE_COMMENT_ACCEPTED', + SUBSCRIBE_ALL_COMMENT_ACCEPTED: 'SUBSCRIBE_ALL_COMMENT_ACCEPTED', SUBSCRIBE_COMMENT_REJECTED: 'SUBSCRIBE_COMMENT_REJECTED', SUBSCRIBE_COMMENT_FLAGGED: 'SUBSCRIBE_COMMENT_FLAGGED', SUBSCRIBE_COMMENT_RESET: 'SUBSCRIBE_COMMENT_RESET', diff --git a/perms/reducers/subscription.js b/perms/reducers/subscription.js index 345a79b73..fb5fc281a 100644 --- a/perms/reducers/subscription.js +++ b/perms/reducers/subscription.js @@ -4,7 +4,7 @@ const types = require('../constants'); module.exports = (user, perm) => { switch (perm) { case types.SUBSCRIBE_COMMENT_FLAGGED: - case types.SUBSCRIBE_COMMENT_ACCEPTED: + case types.SUBSCRIBE_ALL_COMMENT_ACCEPTED: case types.SUBSCRIBE_COMMENT_REJECTED: case types.SUBSCRIBE_COMMENT_RESET: case types.SUBSCRIBE_ALL_COMMENT_EDITED: