diff --git a/src/controllers/topics.js b/src/controllers/topics.js index 1d813868ae..5202f3ac2b 100644 --- a/src/controllers/topics.js +++ b/src/controllers/topics.js @@ -146,6 +146,24 @@ topicsController.get = function (req, res, callback) { next(null, data.topicData); }); }, + function (topicData, next) { + if (!topicData.deleterUid) { + return next(null, topicData); + } + + user.getUserFields(topicData.deleterUid, ['username', 'userslug'], function(err, deleter) { + if (err) { + return next(err); + } + + topicData.deleter = deleter; + topicData.deleter.timestampISO = topicData.deletedTimestampISO + delete topicData.deleterUid; + delete topicData.deletedTimestampISO; + + next(null, topicData); + }); + }, function (topicData, next) { function findPost(index) { for (var i = 0; i < topicData.posts.length; i += 1) { diff --git a/src/topics/data.js b/src/topics/data.js index cf1df2787c..17e060f679 100644 --- a/src/topics/data.js +++ b/src/topics/data.js @@ -86,4 +86,8 @@ module.exports = function (Topics) { Topics.deleteTopicField = function (tid, field, callback) { db.deleteObjectField('topic:' + tid, field, callback); }; + + Topics.deleteTopicFields = function (tid, fields, callback) { + db.deleteObjectFields('topic:' + tid, fields, callback); + }; }; diff --git a/src/topics/delete.js b/src/topics/delete.js index 7fdd0bc1a7..b23cfbd513 100644 --- a/src/topics/delete.js +++ b/src/topics/delete.js @@ -18,7 +18,11 @@ module.exports = function (Topics) { async.parallel([ function (next) { - Topics.setTopicField(tid, 'deleted', 1, next); + Topics.setTopicFields(tid, { + deleted: 1, + deleterUid: uid, + deletedTimestampISO: (new Date()).toISOString() + }, next); }, function (next) { db.sortedSetsRemove(['topics:recent', 'topics:posts', 'topics:views'], tid, next); @@ -47,6 +51,9 @@ module.exports = function (Topics) { function (next) { Topics.setTopicField(tid, 'deleted', 0, next); }, + function (next) { + Topics.deleteTopicFields(tid, ['deleterUid', 'deletedTimestampISO'], next); + }, function (next) { Topics.updateRecent(tid, topicData.lastposttime, next); },