diff --git a/CHANGELOG.md b/CHANGELOG.md index d5a822c550..e16a9bd5f2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,152 @@ +#### v3.10.0 (2024-09-25) + +##### Chores + +* move service worker generation code to its own controller file (c153c469) +* incrementing version number - v3.9.1 (f120c91c) +* incrementing version number - v3.9.0 (4880f32d) +* incrementing version number - v3.8.4 (4833f9a6) +* incrementing version number - v3.8.3 (97ce2c44) +* incrementing version number - v3.8.2 (72d91251) +* incrementing version number - v3.8.1 (527326f7) +* incrementing version number - v3.8.0 (e228a6eb) +* incrementing version number - v3.7.5 (6882894d) +* incrementing version number - v3.7.4 (6678744c) +* incrementing version number - v3.7.3 (2d62b6f6) +* incrementing version number - v3.7.2 (cc257e7e) +* incrementing version number - v3.7.1 (712365a5) +* incrementing version number - v3.7.0 (9a6153d7) +* incrementing version number - v3.6.7 (86a17e38) +* incrementing version number - v3.6.6 (6604bf37) +* incrementing version number - v3.6.5 (6c653625) +* incrementing version number - v3.6.4 (83d131b4) +* incrementing version number - v3.6.3 (fc7d2bfd) +* incrementing version number - v3.6.2 (0f577a57) +* incrementing version number - v3.6.1 (f1a69468) +* incrementing version number - v3.6.0 (4cdf85f8) +* incrementing version number - v3.5.3 (ed0e8783) +* incrementing version number - v3.5.2 (52fbb2da) +* incrementing version number - v3.5.1 (4c543488) +* incrementing version number - v3.5.0 (d06fb4f0) +* incrementing version number - v3.4.3 (5c984250) +* incrementing version number - v3.4.2 (3f0dac38) +* incrementing version number - v3.4.1 (01e69574) +* incrementing version number - v3.4.0 (fd9247c5) +* incrementing version number - v3.3.9 (5805e770) +* incrementing version number - v3.3.8 (a5603565) +* incrementing version number - v3.3.7 (b26f1744) +* incrementing version number - v3.3.6 (7fb38792) +* incrementing version number - v3.3.4 (a67f84ea) +* incrementing version number - v3.3.3 (f94d239b) +* incrementing version number - v3.3.2 (ec9dac97) +* incrementing version number - v3.3.1 (151cc68f) +* incrementing version number - v3.3.0 (fc1ad70f) +* incrementing version number - v3.2.3 (b06d3e63) +* incrementing version number - v3.2.2 (758ecfcd) +* incrementing version number - v3.2.1 (20145074) +* incrementing version number - v3.2.0 (9ecac38e) +* incrementing version number - v3.1.7 (0b4e81ab) +* incrementing version number - v3.1.6 (b3a3b130) +* incrementing version number - v3.1.5 (ec19343a) +* incrementing version number - v3.1.4 (2452783c) +* incrementing version number - v3.1.3 (3b4e9d3f) +* incrementing version number - v3.1.2 (40fa3489) +* incrementing version number - v3.1.1 (40250733) +* incrementing version number - v3.1.0 (0cb386bd) +* incrementing version number - v3.0.1 (26f6ea49) +* incrementing version number - v3.0.0 (224e08cd) +* **deps:** + * update dependency jsdom to v25.0.1 (#12816) (9a24eb7e) + * update dependency sass-embedded to v1.79.3 (#12813) (e0cb1d26) + * update dependency sass-embedded to v1.79.2 (#12811) (8a6ced2d) + * update dependency nyc to v17.1.0 (#12806) (d55c3f03) + +##### New Features + +* port updated service worker code to `develop`, allow plugins to define scripts to import into service worker (979954c2) + +##### Bug Fixes + +* **deps:** + * update dependency esbuild to v0.24.0 (#12817) (8c148bc4) + * update dependency commander to v12.1.0 (#12587) (c7d4db8c) + * update dependency sass to v1.79.3 (#12814) (f0cdc249) + * update dependency sass to v1.79.2 (#12812) (2a5d481f) + * update dependency nodebb-widget-essentials to v7.0.29 (#12805) (86c2caed) + +##### Refactors + +* silence saas deprecations on prod (3fdec51a) + +#### v3.9.1 (2024-09-25) + +##### Chores + +* up themes (8bca9768) +* up widgets (41c73de5) +* incrementing version number - v3.9.0 (4880f32d) +* update changelog for v3.9.0 (c3d97c6c) +* incrementing version number - v3.8.4 (4833f9a6) +* incrementing version number - v3.8.3 (97ce2c44) +* incrementing version number - v3.8.2 (72d91251) +* incrementing version number - v3.8.1 (527326f7) +* incrementing version number - v3.8.0 (e228a6eb) +* incrementing version number - v3.7.5 (6882894d) +* incrementing version number - v3.7.4 (6678744c) +* incrementing version number - v3.7.3 (2d62b6f6) +* incrementing version number - v3.7.2 (cc257e7e) +* incrementing version number - v3.7.1 (712365a5) +* incrementing version number - v3.7.0 (9a6153d7) +* incrementing version number - v3.6.7 (86a17e38) +* incrementing version number - v3.6.6 (6604bf37) +* incrementing version number - v3.6.5 (6c653625) +* incrementing version number - v3.6.4 (83d131b4) +* incrementing version number - v3.6.3 (fc7d2bfd) +* incrementing version number - v3.6.2 (0f577a57) +* incrementing version number - v3.6.1 (f1a69468) +* incrementing version number - v3.6.0 (4cdf85f8) +* incrementing version number - v3.5.3 (ed0e8783) +* incrementing version number - v3.5.2 (52fbb2da) +* incrementing version number - v3.5.1 (4c543488) +* incrementing version number - v3.5.0 (d06fb4f0) +* incrementing version number - v3.4.3 (5c984250) +* incrementing version number - v3.4.2 (3f0dac38) +* incrementing version number - v3.4.1 (01e69574) +* incrementing version number - v3.4.0 (fd9247c5) +* incrementing version number - v3.3.9 (5805e770) +* incrementing version number - v3.3.8 (a5603565) +* incrementing version number - v3.3.7 (b26f1744) +* incrementing version number - v3.3.6 (7fb38792) +* incrementing version number - v3.3.4 (a67f84ea) +* incrementing version number - v3.3.3 (f94d239b) +* incrementing version number - v3.3.2 (ec9dac97) +* incrementing version number - v3.3.1 (151cc68f) +* incrementing version number - v3.3.0 (fc1ad70f) +* incrementing version number - v3.2.3 (b06d3e63) +* incrementing version number - v3.2.2 (758ecfcd) +* incrementing version number - v3.2.1 (20145074) +* incrementing version number - v3.2.0 (9ecac38e) +* incrementing version number - v3.1.7 (0b4e81ab) +* incrementing version number - v3.1.6 (b3a3b130) +* incrementing version number - v3.1.5 (ec19343a) +* incrementing version number - v3.1.4 (2452783c) +* incrementing version number - v3.1.3 (3b4e9d3f) +* incrementing version number - v3.1.2 (40fa3489) +* incrementing version number - v3.1.1 (40250733) +* incrementing version number - v3.1.0 (0cb386bd) +* incrementing version number - v3.0.1 (26f6ea49) +* incrementing version number - v3.0.0 (224e08cd) + +##### Bug Fixes + +* closes #12819, add helper to escape tx strings (7d0c2cb6) +* closes #12807, fix quick reply js error (06ac0c99) + +##### Refactors + +* silence saas deprecations on prod (05e4307e) +* remove deprecation warnings, still used from widgets (3cee59f9) + #### v3.9.0 (2024-09-18) ##### Chores diff --git a/install/package.json b/install/package.json index f20f9d8d55..7e1d0d4a4d 100644 --- a/install/package.json +++ b/install/package.json @@ -97,8 +97,8 @@ "mousetrap": "1.6.5", "multiparty": "4.2.3", "nconf": "0.12.1", - "nodebb-plugin-2factor": "7.5.5", - "nodebb-plugin-composer-default": "10.2.39", + "nodebb-plugin-2factor": "7.5.6", + "nodebb-plugin-composer-default": "10.2.40", "nodebb-plugin-dbsearch": "6.2.5", "nodebb-plugin-emoji": "5.1.15", "nodebb-plugin-emoji-android": "4.0.0", @@ -198,4 +198,4 @@ "url": "https://github.com/barisusakli" } ] -} \ No newline at end of file +} diff --git a/src/cli/upgrade-plugins.js b/src/cli/upgrade-plugins.js index cb6cbce94b..b68db55eac 100644 --- a/src/cli/upgrade-plugins.js +++ b/src/cli/upgrade-plugins.js @@ -77,7 +77,8 @@ async function getSuggestedModules(nbbVersion, toCheck) { const request = require('../request'); let { response, body } = await request.get(`https://packages.nodebb.org/api/v1/suggest?version=${nbbVersion}&package[]=${toCheck.join('&package[]=')}`); if (!response.ok) { - throw new Error(`Unable to get suggested module for NodeBB(${nbbVersion}) ${toCheck.join(',')}`); + console.warn(`Unable to get suggested module for NodeBB(${nbbVersion}) ${toCheck.join(',')}`); + return []; } if (!Array.isArray(body) && toCheck.length === 1) { body = [body]; diff --git a/test/controllers.js b/test/controllers.js index 418420303f..e94720b471 100644 --- a/test/controllers.js +++ b/test/controllers.js @@ -1553,6 +1553,7 @@ describe('Controllers', () => { await privileges.categories.rescind(['groups:read'], category.cid, 'guests'); const { response } = await request.get(`${nconf.get('url')}/api/category/${category.slug}`); assert.equal(response.statusCode, 401); + await privileges.categories.give(['groups:read'], category.cid, 'guests'); }); it('should redirect if topic index is negative', async () => { @@ -1715,7 +1716,9 @@ describe('Controllers', () => { }); it('should load the composer route', async () => { - const { response, body } = await request.get(`${nconf.get('url')}/api/compose?cid=1`); + const { response, body } = await request.get(`${nconf.get('url')}/api/compose?cid=${cid}`, { + jar, + }); assert.equal(response.statusCode, 200); assert(body.title); assert(body.template); @@ -1733,7 +1736,9 @@ describe('Controllers', () => { method: hookMethod, }); - const { response, body } = await request.get(`${nconf.get('url')}/api/compose?cid=1`); + const { response, body } = await request.get(`${nconf.get('url')}/api/compose?cid=${cid}`, { + jar, + }); assert.equal(response.statusCode, 200); assert(body.title); assert.strictEqual(body.template.name, ''); @@ -1835,6 +1840,30 @@ describe('Controllers', () => { assert.equal(replyResult.response.statusCode, 302); await privileges.categories.rescind(['groups:topics:post', 'groups:topics:reply'], cid, 'guests'); }); + + it('should not load a topic data that is in private category', async () => { + const { cid } = await categories.create({ + name: 'private', + description: 'private', + }); + + const result = await topics.post({ uid: fooUid, title: 'hidden title', content: 'hidden content', cid: cid }); + + await privileges.categories.rescind(['groups:topics:read'], category.cid, 'guests'); + let { response, body } = await request.get(`${nconf.get('url')}/api/compose?tid=${result.topicData.tid}`); + assert.equal(response.statusCode, 401); + assert(!body.title); + + ({ response, body } = await request.get(`${nconf.get('url')}/api/compose?cid=${cid}`)); + assert.equal(response.statusCode, 401); + assert(!body.title); + + ({ response, body } = await request.get(`${nconf.get('url')}/api/compose?pid=${result.postData.pid}`)); + assert.equal(response.statusCode, 401); + assert(!body.title); + + await privileges.categories.give(['groups:topics:read'], category.cid, 'guests'); + }); }); describe('test routes', () => {