mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-10-26 16:46:12 +01:00
fix: dont show system tags in whitelist dropdown to regular users
This commit is contained in:
@@ -9,6 +9,7 @@ const groups = require('../groups');
|
||||
const plugins = require('../plugins');
|
||||
const privileges = require('../privileges');
|
||||
const cache = require('../cache');
|
||||
const meta = require('../meta');
|
||||
|
||||
const Categories = module.exports;
|
||||
|
||||
@@ -175,6 +176,15 @@ Categories.getTagWhitelist = async function (cids) {
|
||||
return cids.map(cid => cachedData[cid]);
|
||||
};
|
||||
|
||||
// remove system tags from tag whitelist for non privileged user
|
||||
Categories.filterTagWhitelist = function (tagWhitelist, isAdminOrMod) {
|
||||
const systemTags = (meta.config.systemTags || '').split(',');
|
||||
if (!isAdminOrMod && systemTags.length) {
|
||||
return tagWhitelist.filter(tag => !systemTags.includes(tag));
|
||||
}
|
||||
return tagWhitelist;
|
||||
};
|
||||
|
||||
function calculateTopicPostCount(category) {
|
||||
if (!category) {
|
||||
return;
|
||||
|
||||
@@ -95,6 +95,7 @@ categoryController.get = async function (req, res, next) {
|
||||
}
|
||||
|
||||
categories.modifyTopicsByPrivilege(categoryData.topics, userPrivileges);
|
||||
categoryData.tagWhitelist = categories.filterTagWhitelist(categoryData.tagWhitelist, userPrivileges.isAdminOrMod);
|
||||
|
||||
await buildBreadcrumbs(req, categoryData);
|
||||
if (categoryData.children.length) {
|
||||
|
||||
@@ -80,6 +80,7 @@ topicsController.get = async function getTopic(req, res, callback) {
|
||||
await topics.getTopicWithPosts(topicData, set, req.uid, start, stop, reverse);
|
||||
|
||||
topics.modifyPostsByPrivilege(topicData, userPrivileges);
|
||||
topicData.tagWhitelist = categories.filterTagWhitelist(topicData.tagWhitelist, userPrivileges.isAdminOrMod);
|
||||
|
||||
topicData.privileges = userPrivileges;
|
||||
topicData.topicStaleDays = meta.config.topicStaleDays;
|
||||
|
||||
Reference in New Issue
Block a user