feat: disallow moving topics to and from remote categories, + basic tests for topic moving

This commit is contained in:
Julian Lam
2025-12-11 15:32:18 -05:00
parent 3560b6a3d0
commit ea1e4c7dff
3 changed files with 115 additions and 1 deletions

View File

@@ -235,7 +235,7 @@ module.exports = function (Topics) {
};
topicTools.move = async function (tid, data) {
const cid = utils.isNumber(data.cid) ? parseInt(data.cid, 10) : data.cid;
const cid = parseInt(data.cid, 10);
const topicData = await Topics.getTopicData(tid);
if (!topicData) {
throw new Error('[[error:no-topic]]');
@@ -243,6 +243,10 @@ module.exports = function (Topics) {
if (cid === topicData.cid) {
throw new Error('[[error:cant-move-topic-to-same-category]]');
}
if (!utils.isNumber(cid) || !utils.isNumber(topicData.cid)) {
throw new Error('[[error:cant-move-topic-to-from-remote-categories]]');
}
const tags = await Topics.getTopicTags(tid);
await db.sortedSetsRemove([
`cid:${topicData.cid}:tids`,