diff --git a/CHANGELOG.md b/CHANGELOG.md index fb49ef573c65f4b7a16f782e982b8a5a1302e638..f8371379b650852756cbdddadd729b7ef01ea98b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -26,6 +26,7 @@ ### Server - Fix: リストTLã«è‡ªåˆ†ã®ãƒ•ã‚©ãƒãƒ¯ãƒ¼é™å®šæŠ•ç¨¿ãŒå«ã¾ã‚Œãªã„å•é¡Œã‚’ä¿®æ£ +- Fix: ãƒãƒ¼ã‚«ãƒ«ã‚¿ã‚¤ãƒ ラインã«æŠ•ç¨¿è€…自身ã®æŠ•ç¨¿ã¸ã®è¿”ä¿¡ãŒå«ã¾ã‚Œãªã„å•é¡Œã‚’ä¿®æ£ ## 2023.10.2 diff --git a/packages/backend/src/server/api/endpoints/notes/local-timeline.ts b/packages/backend/src/server/api/endpoints/notes/local-timeline.ts index 3b6c93fdf9828c85341a62891e3a20e058e24b1c..4b9882e83456238262fc046eb944d75e7b633c74 100644 --- a/packages/backend/src/server/api/endpoints/notes/local-timeline.ts +++ b/packages/backend/src/server/api/endpoints/notes/local-timeline.ts @@ -120,7 +120,7 @@ export default class extends Endpoint<typeof meta, typeof paramDef> { // eslint- if (me && (note.userId === me.id)) { return true; } - if (!ps.withReplies && note.replyId && (me == null || note.replyUserId !== me.id)) return false; + if (!ps.withReplies && note.replyId && note.replyUserId !== note.userId && (me == null || note.replyUserId !== me.id)) return false; if (me && isUserRelated(note, userIdsWhoBlockingMe)) return false; if (me && isUserRelated(note, userIdsWhoMeMuting)) return false; if (note.renoteId) { diff --git a/packages/backend/test/e2e/timelines.ts b/packages/backend/test/e2e/timelines.ts index 974d2f6820b3ade63c435e8b1ab8542f69273f42..760bb8a574fe400df93f225eae980f3eb2ece97f 100644 --- a/packages/backend/test/e2e/timelines.ts +++ b/packages/backend/test/e2e/timelines.ts @@ -526,6 +526,20 @@ describe('Timelines', () => { assert.strictEqual(res.body.some((note: any) => note.id === carolNote.id), true); }); + test.concurrent('他人ã®ãã®äººè‡ªèº«ã¸ã®è¿”ä¿¡ãŒå«ã¾ã‚Œã‚‹', async () => { + const [alice, bob] = await Promise.all([signup(), signup()]); + + const bobNote1 = await post(bob, { text: 'hi' }); + const bobNote2 = await post(bob, { text: 'hi', replyId: bobNote1.id }); + + await waitForPushToTl(); + + const res = await api('/notes/local-timeline', { limit: 100 }, alice); + + assert.strictEqual(res.body.some((note: any) => note.id === bobNote1.id), true); + assert.strictEqual(res.body.some((note: any) => note.id === bobNote2.id), true); + }); + test.concurrent('ãƒãƒ£ãƒ³ãƒãƒ«æŠ•ç¨¿ãŒå«ã¾ã‚Œãªã„', async () => { const [alice, bob] = await Promise.all([signup(), signup()]);