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 plugins = require('../plugins');
|
||||||
const privileges = require('../privileges');
|
const privileges = require('../privileges');
|
||||||
const cache = require('../cache');
|
const cache = require('../cache');
|
||||||
|
const meta = require('../meta');
|
||||||
|
|
||||||
const Categories = module.exports;
|
const Categories = module.exports;
|
||||||
|
|
||||||
@@ -175,6 +176,15 @@ Categories.getTagWhitelist = async function (cids) {
|
|||||||
return cids.map(cid => cachedData[cid]);
|
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) {
|
function calculateTopicPostCount(category) {
|
||||||
if (!category) {
|
if (!category) {
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -95,6 +95,7 @@ categoryController.get = async function (req, res, next) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
categories.modifyTopicsByPrivilege(categoryData.topics, userPrivileges);
|
categories.modifyTopicsByPrivilege(categoryData.topics, userPrivileges);
|
||||||
|
categoryData.tagWhitelist = categories.filterTagWhitelist(categoryData.tagWhitelist, userPrivileges.isAdminOrMod);
|
||||||
|
|
||||||
await buildBreadcrumbs(req, categoryData);
|
await buildBreadcrumbs(req, categoryData);
|
||||||
if (categoryData.children.length) {
|
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);
|
await topics.getTopicWithPosts(topicData, set, req.uid, start, stop, reverse);
|
||||||
|
|
||||||
topics.modifyPostsByPrivilege(topicData, userPrivileges);
|
topics.modifyPostsByPrivilege(topicData, userPrivileges);
|
||||||
|
topicData.tagWhitelist = categories.filterTagWhitelist(topicData.tagWhitelist, userPrivileges.isAdminOrMod);
|
||||||
|
|
||||||
topicData.privileges = userPrivileges;
|
topicData.privileges = userPrivileges;
|
||||||
topicData.topicStaleDays = meta.config.topicStaleDays;
|
topicData.topicStaleDays = meta.config.topicStaleDays;
|
||||||
|
|||||||
Reference in New Issue
Block a user