From c1093bdeb7c7231410ce0e0baab07d07c69ec2c7 Mon Sep 17 00:00:00 2001 From: barisusakli Date: Fri, 2 Oct 2015 16:48:49 -0400 Subject: [PATCH] topic exists checks --- src/topics/tools.js | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/src/topics/tools.js b/src/topics/tools.js index 00b15c5994..f7ceab6931 100644 --- a/src/topics/tools.js +++ b/src/topics/tools.js @@ -26,6 +26,12 @@ module.exports = function(Topics) { var topicData; async.waterfall([ function (next) { + Topics.exists(tid, next); + }, + function (exists, next) { + if (!exists) { + return next(new Error('[[error:no-topic]]')); + } privileges.topics.isOwnerOrAdminOrMod(tid, uid, next); }, function (isOwnerOrAdminOrMod, next) { @@ -158,7 +164,7 @@ module.exports = function(Topics) { }, function (exists, next) { if (!exists) { - return callback(); + return callback(new Error('[[error:no-topic]]')); } Topics.getTopicFields(tid, ['cid', 'lastposttime'], next); }, @@ -193,17 +199,23 @@ module.exports = function(Topics) { topicTools.move = function(tid, cid, uid, callback) { var topic; async.waterfall([ - function(next) { + function (next) { + Topics.exists(tid, next); + }, + function (exists, next) { + if (!exists) { + return next(new Error('[[error:no-topic]]')); + } Topics.getTopicFields(tid, ['cid', 'lastposttime', 'pinned', 'deleted', 'postcount'], next); }, - function(topicData, next) { + function (topicData, next) { topic = topicData; db.sortedSetsRemove([ 'cid:' + topicData.cid + ':tids', 'cid:' + topicData.cid + ':tids:posts' ], tid, next); }, - function(next) { + function (next) { var timestamp = parseInt(topic.pinned, 10) ? Math.pow(2, 53) : topic.lastposttime; async.parallel([ function(next) {