diff --git a/src/controllers/topics.js b/src/controllers/topics.js index 6b0766ecaf..abc81c3132 100644 --- a/src/controllers/topics.js +++ b/src/controllers/topics.js @@ -35,7 +35,7 @@ topicsController.get = function(req, res, next) { user.getSettings(uid, next); }, topic: function(next) { - topics.getTopicFields(tid, ['slug', 'postcount'], next); + topics.getTopicFields(tid, ['slug', 'postcount', 'deleted'], next); } }, next); }, @@ -54,6 +54,10 @@ topicsController.get = function(req, res, next) { return helpers.notAllowed(req, res); } + if (parseInt(results.topic.deleted, 10) && !userPrivileges.view_deleted) { + return helpers.notAllowed(req, res); + } + var settings = results.settings; var postCount = parseInt(results.topic.postcount, 10); var pageCount = Math.ceil((postCount - 1) / settings.postsPerPage); @@ -112,12 +116,10 @@ topicsController.get = function(req, res, next) { if (err && err.message === '[[error:no-topic]]' && !topicData) { return helpers.notFound(res); } + if (err && !topicData) { return next(err); } - if (topicData.deleted && !userPrivileges.view_deleted) { - return helpers.notAllowed(req, res); - } topicData.pageCount = pageCount;