From a19537dc25e406a98048a561f45b3b321c9d3509 Mon Sep 17 00:00:00 2001 From: Baris Usakli Date: Wed, 29 Nov 2017 14:04:45 -0500 Subject: [PATCH] closes #6137 --- install/data/defaults.json | 3 ++- src/flags.js | 4 ++-- src/privileges/posts.js | 2 +- test/controllers-admin.js | 7 ++++--- 4 files changed, 9 insertions(+), 7 deletions(-) diff --git a/install/data/defaults.json b/install/data/defaults.json index 79fbcf07f4..9e08416ce6 100644 --- a/install/data/defaults.json +++ b/install/data/defaults.json @@ -37,5 +37,6 @@ "unreadCutoff": 2, "bookmarkThreshold": 5, "topicsPerList": 20, - "autoDetectLang": 1 + "autoDetectLang": 1, + "privileges:flag": 0 } diff --git a/src/flags.js b/src/flags.js index 093757251b..4118cf8fb2 100644 --- a/src/flags.js +++ b/src/flags.js @@ -241,7 +241,7 @@ Flags.validate = function (payload, callback) { return callback(err); } - var minimumReputation = utils.isNumber(meta.config['privileges:flag']) ? parseInt(meta.config['privileges:flag'], 10) : 1; + var minimumReputation = utils.isNumber(meta.config['privileges:flag']) ? parseInt(meta.config['privileges:flag'], 10) : 0; // Check if reporter meets rep threshold (or can edit the target post, in which case threshold does not apply) if (!editable.flag && parseInt(data.reporter.reputation, 10) < minimumReputation) { return callback(new Error('[[error:not-enough-reputation-to-flag]]')); @@ -257,7 +257,7 @@ Flags.validate = function (payload, callback) { return callback(err); } - var minimumReputation = utils.isNumber(meta.config['privileges:flag']) ? parseInt(meta.config['privileges:flag'], 10) : 1; + var minimumReputation = utils.isNumber(meta.config['privileges:flag']) ? parseInt(meta.config['privileges:flag'], 10) : 0; // Check if reporter meets rep threshold (or can edit the target user, in which case threshold does not apply) if (!editable && parseInt(data.reporter.reputation, 10) < minimumReputation) { return callback(new Error('[[error:not-enough-reputation-to-flag]]')); diff --git a/src/privileges/posts.js b/src/privileges/posts.js index f2bfe38428..b157fa798b 100644 --- a/src/privileges/posts.js +++ b/src/privileges/posts.js @@ -200,7 +200,7 @@ module.exports = function (privileges) { }, next); }, function (results, next) { - var minimumReputation = utils.isNumber(meta.config['privileges:flag']) ? parseInt(meta.config['privileges:flag'], 10) : 1; + var minimumReputation = utils.isNumber(meta.config['privileges:flag']) ? parseInt(meta.config['privileges:flag'], 10) : 0; var canFlag = results.isAdminOrMod || parseInt(results.userReputation, 10) >= minimumReputation; next(null, { flag: canFlag }); }, diff --git a/test/controllers-admin.js b/test/controllers-admin.js index 4a82ceb50c..74cb521bc1 100644 --- a/test/controllers-admin.js +++ b/test/controllers-admin.js @@ -11,6 +11,7 @@ var topics = require('../src/topics'); var user = require('../src/user'); var groups = require('../src/groups'); var helpers = require('./helpers'); +var meta = require('../src/meta'); describe('Admin Controllers', function () { var tid; @@ -491,7 +492,6 @@ describe('Admin Controllers', function () { }); it('should load /recent in maintenance mode', function (done) { - var meta = require('../src/meta'); meta.config.maintenanceMode = 1; request(nconf.get('url') + '/api/recent', { jar: jar, json: true }, function (err, res, body) { assert.ifError(err); @@ -554,15 +554,16 @@ describe('Admin Controllers', function () { it('should error with not enough reputation to flag', function (done) { var socketFlags = require('../src/socket.io/flags'); - + var oldValue = meta.config['privileges:flag']; + meta.config['privileges:flag'] = 1000; socketFlags.create({ uid: regularUid }, { id: pid, type: 'post', reason: 'spam' }, function (err) { assert.equal(err.message, '[[error:not-enough-reputation-to-flag]]'); + meta.config['privileges:flag'] = oldValue; done(); }); }); it('should return flag details', function (done) { - var meta = require('../src/meta'); var socketFlags = require('../src/socket.io/flags'); var oldValue = meta.config['privileges:flag']; meta.config['privileges:flag'] = 0;