mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-11-07 22:45:46 +01:00
prevent getTopicsByTids crash if a topic is null
This commit is contained in:
@@ -172,9 +172,9 @@ var async = require('async'),
|
|||||||
Topics.getTopicsData(tids, function(err, topics) {
|
Topics.getTopicsData(tids, function(err, topics) {
|
||||||
function mapFilter(array, field) {
|
function mapFilter(array, field) {
|
||||||
return array.map(function(topic) {
|
return array.map(function(topic) {
|
||||||
return topic[field];
|
return topic && topic[field];
|
||||||
}).filter(function(value, index, array) {
|
}).filter(function(value, index, array) {
|
||||||
return array.indexOf(value) === index;
|
return value && array.indexOf(value) === index;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -225,6 +225,7 @@ var async = require('async'),
|
|||||||
});
|
});
|
||||||
|
|
||||||
for (var i=0; i<topics.length; ++i) {
|
for (var i=0; i<topics.length; ++i) {
|
||||||
|
if (topics[i]) {
|
||||||
topics[i].category = categories[topics[i].cid];
|
topics[i].category = categories[topics[i].cid];
|
||||||
topics[i].category.disabled = parseInt(topics[i].category.disabled, 10) === 1;
|
topics[i].category.disabled = parseInt(topics[i].category.disabled, 10) === 1;
|
||||||
topics[i].user = users[topics[i].uid];
|
topics[i].user = users[topics[i].uid];
|
||||||
@@ -237,9 +238,10 @@ var async = require('async'),
|
|||||||
topics[i].unread = !(results.hasRead[i] && parseInt(uid, 10) !== 0);
|
topics[i].unread = !(results.hasRead[i] && parseInt(uid, 10) !== 0);
|
||||||
topics[i].unreplied = parseInt(topics[i].postcount, 10) <= 1;
|
topics[i].unreplied = parseInt(topics[i].postcount, 10) <= 1;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
topics = topics.filter(function(topic) {
|
topics = topics.filter(function(topic) {
|
||||||
return !topic.category.disabled &&
|
return topic && !topic.category.disabled &&
|
||||||
(!topic.deleted || (topic.deleted && isAdminOrMod[topic.cid]) ||
|
(!topic.deleted || (topic.deleted && isAdminOrMod[topic.cid]) ||
|
||||||
parseInt(topic.uid, 10) === parseInt(uid, 10));
|
parseInt(topic.uid, 10) === parseInt(uid, 10));
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user