mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-12-24 01:10:31 +01:00
closes #661
This commit is contained in:
@@ -58,13 +58,18 @@ var path = require('path'),
|
|||||||
app.get('/home', function (req, res) {
|
app.get('/home', function (req, res) {
|
||||||
var uid = (req.user) ? req.user.uid : 0;
|
var uid = (req.user) ? req.user.uid : 0;
|
||||||
categories.getAllCategories(uid, function (err, data) {
|
categories.getAllCategories(uid, function (err, data) {
|
||||||
// Remove disabled categories
|
|
||||||
data.categories = data.categories.filter(function (category) {
|
data.categories = data.categories.filter(function (category) {
|
||||||
return (!category.disabled || parseInt(category.disabled, 10) === 0);
|
return (!category.disabled || parseInt(category.disabled, 10) === 0);
|
||||||
});
|
});
|
||||||
|
|
||||||
// Retrieve category information for /
|
function canSee(category, next) {
|
||||||
function iterator(category, callback) {
|
categoryTools.privileges(category.cid, ((req.user) ? req.user.uid || 0 : 0), function(err, privileges) {
|
||||||
|
next(!err && privileges.read);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function getRecentReplies(category, callback) {
|
||||||
categories.getRecentReplies(category.cid, uid, parseInt(category.numRecentReplies, 10), function (err, posts) {
|
categories.getRecentReplies(category.cid, uid, parseInt(category.numRecentReplies, 10), function (err, posts) {
|
||||||
category.posts = posts;
|
category.posts = posts;
|
||||||
category.post_count = posts.length > 2 ? 2 : posts.length; // this was a hack to make metro work back in the day, post_count should just = length
|
category.post_count = posts.length > 2 ? 2 : posts.length; // this was a hack to make metro work back in the day, post_count should just = length
|
||||||
@@ -72,46 +77,50 @@ var path = require('path'),
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
async.each(data.categories, iterator, function (err) {
|
async.filter(data.categories, canSee, function(visibleCategories) {
|
||||||
// Assemble the MOTD
|
data.categories = visibleCategories;
|
||||||
var motdString,
|
|
||||||
assemble = function() {
|
|
||||||
data.motd_class = (parseInt(meta.config.show_motd, 10) === 1 || meta.config.show_motd === undefined) ? '' : ' none';
|
|
||||||
data.motd_class += (meta.config.motd && meta.config.motd.length > 0 ? '' : ' default');
|
|
||||||
data.motd_class += meta.config.motd_class ? ' ' + meta.config.motd_class : '';
|
|
||||||
|
|
||||||
data.motd = require('marked')(motdString);
|
async.each(data.categories, getRecentReplies, function (err) {
|
||||||
res.json(data);
|
|
||||||
};
|
var motdString,
|
||||||
if (!meta.config.motd) {
|
assemble = function() {
|
||||||
// Construct default MOTD
|
data.motd_class = (parseInt(meta.config.show_motd, 10) === 1 || meta.config.show_motd === undefined) ? '' : ' none';
|
||||||
translator.translate('\n\n# NodeBB <small><span>v' + pkg.version + '</span></small>\n\n<h5>[[global:motd.welcome]]</h5>\
|
data.motd_class += (meta.config.motd && meta.config.motd.length > 0 ? '' : ' default');
|
||||||
<div class="btn-group">\
|
data.motd_class += meta.config.motd_class ? ' ' + meta.config.motd_class : '';
|
||||||
<a target="_blank" href="https://www.nodebb.org" class="btn btn-link btn-md">\
|
|
||||||
<i class="fa fa-comment"></i>\
|
data.motd = require('marked')(motdString);
|
||||||
<span> [[global:motd.get]]</span>\
|
res.json(data);
|
||||||
</a>\
|
};
|
||||||
<a target="_blank" href="https://github.com/designcreateplay/NodeBB" class="btn btn-link btn-md">\
|
|
||||||
<i class="fa fa-github"></i>\
|
if (!meta.config.motd) {
|
||||||
<span> [[global:motd.fork]]</span>\
|
translator.translate('\n\n# NodeBB <small><span>v' + pkg.version + '</span></small>\n\n<h5>[[global:motd.welcome]]</h5>\
|
||||||
</a>\
|
<div class="btn-group">\
|
||||||
<a target="_blank" href="https://facebook.com/NodeBB" class="btn btn-link btn-md">\
|
<a target="_blank" href="https://www.nodebb.org" class="btn btn-link btn-md">\
|
||||||
<i class="fa fa-facebook"></i>\
|
<i class="fa fa-comment"></i>\
|
||||||
<span> [[global:motd.like]]</span>\
|
<span> [[global:motd.get]]</span>\
|
||||||
</a>\
|
</a>\
|
||||||
<a target="_blank" href="https://twitter.com/NodeBB" class="btn btn-link btn-md">\
|
<a target="_blank" href="https://github.com/designcreateplay/NodeBB" class="btn btn-link btn-md">\
|
||||||
<i class="fa fa-twitter"></i>\
|
<i class="fa fa-github"></i>\
|
||||||
<span> [[global:motd.follow]]</span>\
|
<span> [[global:motd.fork]]</span>\
|
||||||
</a>\
|
</a>\
|
||||||
</div>\
|
<a target="_blank" href="https://facebook.com/NodeBB" class="btn btn-link btn-md">\
|
||||||
', function(motd) {
|
<i class="fa fa-facebook"></i>\
|
||||||
motdString = motd;
|
<span> [[global:motd.like]]</span>\
|
||||||
|
</a>\
|
||||||
|
<a target="_blank" href="https://twitter.com/NodeBB" class="btn btn-link btn-md">\
|
||||||
|
<i class="fa fa-twitter"></i>\
|
||||||
|
<span> [[global:motd.follow]]</span>\
|
||||||
|
</a>\
|
||||||
|
</div>\
|
||||||
|
', function(motd) {
|
||||||
|
motdString = motd;
|
||||||
|
assemble();
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
motdString = meta.config.motd;
|
||||||
assemble();
|
assemble();
|
||||||
});
|
}
|
||||||
} else {
|
});
|
||||||
motdString = meta.config.motd;
|
|
||||||
assemble();
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -487,16 +487,21 @@ module.exports.server = server;
|
|||||||
}, next);
|
}, next);
|
||||||
},
|
},
|
||||||
"categories": function (next) {
|
"categories": function (next) {
|
||||||
|
function canSee(category, next) {
|
||||||
|
CategoryTools.privileges(category.cid, ((req.user) ? req.user.uid || 0 : 0), function(err, privileges) {
|
||||||
|
next(!err && privileges.read);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
categories.getAllCategories(0, function (err, returnData) {
|
categories.getAllCategories(0, function (err, returnData) {
|
||||||
returnData.categories = returnData.categories.filter(function (category) {
|
returnData.categories = returnData.categories.filter(function (category) {
|
||||||
if (parseInt(category.disabled, 10) !== 1) {
|
return parseInt(category.disabled, 10) !== 1;
|
||||||
return true;
|
|
||||||
} else {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
|
||||||
next(null, returnData);
|
async.filter(returnData.categories, canSee, function(visibleCategories) {
|
||||||
|
returnData.categories = visibleCategories;
|
||||||
|
next(null, returnData);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}, function (err, data) {
|
}, function (err, data) {
|
||||||
|
|||||||
Reference in New Issue
Block a user