From 6dd960d6c355bab2695338171cb3e4eeb4ac540a Mon Sep 17 00:00:00 2001 From: Julian Lam Date: Thu, 16 May 2013 15:55:17 -0400 Subject: [PATCH] adding moderator checking to post actions --- src/posts.js | 69 +++++++++++++++++++++++++++++++++++++++++++++++----- src/user.js | 2 +- 2 files changed, 64 insertions(+), 7 deletions(-) diff --git a/src/posts.js b/src/posts.js index 9ab6935004..406bf42988 100644 --- a/src/posts.js +++ b/src/posts.js @@ -397,8 +397,27 @@ marked.setOptions({ if (uid === author) success(); else { - user.getUserField(uid, 'reputation', function(reputation) { - if (reputation >= config.privilege_thresholds.manage_content) success(); + async.parallel([ + function(callback) { + user.getUserField(uid, 'reputation', function(reputation) { + callback(null, reputation >= config.privilege_thresholds.manage_content); + }); + }, + function(callback) { + RDB.get('tid:' + tid + ':cid', function(err, cid) { + user.isModerator(uid, cid, function(isMod) { + callback(null, isMod); + }); + }); + } + ], function(err, results) { + // If any return true, allow the edit + for(var x=0,numResults=results.length;x= config.privilege_thresholds.manage_content) success(); + async.parallel([ + function(callback) { + user.getUserField(uid, 'reputation', function(reputation) { + callback(null, reputation >= config.privilege_thresholds.manage_content); + }); + }, + function(callback) { + RDB.get('tid:' + tid + ':cid', function(err, cid) { + user.isModerator(uid, cid, function(isMod) { + callback(null, isMod); + }); + }); + } + ], function(err, results) { + // If any return true, allow the edit + for(var x=0,numResults=results.length;x= config.privilege_thresholds.manage_content) success(); + async.parallel([ + function(callback) { + user.getUserField(uid, 'reputation', function(reputation) { + callback(null, reputation >= config.privilege_thresholds.manage_content); + }); + }, + function(callback) { + RDB.get('tid:' + tid + ':cid', function(err, cid) { + user.isModerator(uid, cid, function(isMod) { + callback(null, isMod); + }); + }); + } + ], function(err, results) { + // If any return true, allow the edit + for(var x=0,numResults=results.length;x