From a2f85648c5c1e9f764309728793f714e93c5886f Mon Sep 17 00:00:00 2001 From: psychobunny Date: Thu, 26 Jun 2014 13:48:17 -0400 Subject: [PATCH 1/3] allow voting system to be disabled --- src/controllers/topics.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/controllers/topics.js b/src/controllers/topics.js index e82e2ddad7..07f5263116 100644 --- a/src/controllers/topics.js +++ b/src/controllers/topics.js @@ -172,6 +172,7 @@ topicsController.get = function(req, res, next) { } data.privileges = userPrivileges; + data.votingEnabled = meta.config['votingEnabled'] ? meta.config['votingEnabled'] : true; var topic_url = tid + (req.params.slug ? '/' + req.params.slug : ''); var queryString = qs.stringify(req.query); From b040201764a0b7815df7ab3973296d201ad7f3e9 Mon Sep 17 00:00:00 2001 From: psychobunny Date: Thu, 26 Jun 2014 13:52:47 -0400 Subject: [PATCH 2/3] prevent hax voting via websockets if system disabled --- src/favourites.js | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/favourites.js b/src/favourites.js index a1a7b63fea..8a032cdcdc 100644 --- a/src/favourites.js +++ b/src/favourites.js @@ -98,10 +98,18 @@ var async = require('async'), } Favourites.upvote = function(pid, uid, callback) { + if (meta.config['votingEnabled'] === false) { + return callback(false); + } + toggleVote('upvote', pid, uid, callback); }; Favourites.downvote = function(pid, uid, callback) { + if (meta.config['votingEnabled'] === false) { + return callback(false); + } + user.getUserField(uid, 'reputation', function(err, reputation) { if (reputation < meta.config['privileges:downvote']) { return callback(new Error('[[error:not-enough-reputation-to-downvote]]')); From 92c0bd07c983fc8e32c3f1289ce6cf8da92f56a5 Mon Sep 17 00:00:00 2001 From: psychobunny Date: Fri, 27 Jun 2014 13:00:47 -0400 Subject: [PATCH 3/3] Ability to enable/disable the upvote/downvote system, closes #1672 --- src/controllers/topics.js | 2 +- src/favourites.js | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/controllers/topics.js b/src/controllers/topics.js index 07f5263116..75cd9c2565 100644 --- a/src/controllers/topics.js +++ b/src/controllers/topics.js @@ -172,7 +172,7 @@ topicsController.get = function(req, res, next) { } data.privileges = userPrivileges; - data.votingEnabled = meta.config['votingEnabled'] ? meta.config['votingEnabled'] : true; + data['reputation:disabled'] = meta.config['reputation:disabled'] === '1' ? true : false; var topic_url = tid + (req.params.slug ? '/' + req.params.slug : ''); var queryString = qs.stringify(req.query); diff --git a/src/favourites.js b/src/favourites.js index 8a032cdcdc..622606e2fc 100644 --- a/src/favourites.js +++ b/src/favourites.js @@ -98,7 +98,7 @@ var async = require('async'), } Favourites.upvote = function(pid, uid, callback) { - if (meta.config['votingEnabled'] === false) { + if (meta.config['reputation:disabled'] === false) { return callback(false); } @@ -106,7 +106,7 @@ var async = require('async'), }; Favourites.downvote = function(pid, uid, callback) { - if (meta.config['votingEnabled'] === false) { + if (meta.config['reputation:disabled'] === false) { return callback(false); }