diff options
| author | anatawa12 <anatawa12@icloud.com> | 2023-10-05 17:03:50 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-10-05 17:03:50 +0900 |
| commit | ee483f2deee56ecac38ccc5554594c6ecad1cc96 (patch) | |
| tree | dbbea339ab6517b9b74d7e97f1566003ad045ece /packages/backend/src/server/api/endpoints | |
| parent | 2023.10.0-beta.3 (diff) | |
| download | sharkey-ee483f2deee56ecac38ccc5554594c6ecad1cc96.tar.gz sharkey-ee483f2deee56ecac38ccc5554594c6ecad1cc96.tar.bz2 sharkey-ee483f2deee56ecac38ccc5554594c6ecad1cc96.zip | |
Disallow renote of direct note (#11970)
* chore: renoteに関するチェックをまとめる
* fix: ダイレクト投稿をrenoteできる
* fix(frontend): 自分のダイレクト投稿をrenoteできる
* docs(changelog): ダイレクト投稿をリノートできてしまう
* fix lint
* chore(backend): visibilityに関するエラーをApi Errorとして返す
Diffstat (limited to 'packages/backend/src/server/api/endpoints')
| -rw-r--r-- | packages/backend/src/server/api/endpoints/notes/create.ts | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/packages/backend/src/server/api/endpoints/notes/create.ts b/packages/backend/src/server/api/endpoints/notes/create.ts index 37a0525e25..3ae4ac044a 100644 --- a/packages/backend/src/server/api/endpoints/notes/create.ts +++ b/packages/backend/src/server/api/endpoints/notes/create.ts @@ -57,6 +57,12 @@ export const meta = { id: 'fd4cc33e-2a37-48dd-99cc-9b806eb2031a', }, + cannotRenoteDueToVisibility: { + message: 'You can not Renote due to target visibility.', + code: 'CANNOT_RENOTE_DUE_TO_VISIBILITY', + id: 'be9529e9-fe72-4de0-ae43-0b363c4938af', + }, + noSuchReplyTarget: { message: 'No such reply target.', code: 'NO_SUCH_REPLY_TARGET', @@ -231,6 +237,14 @@ export default class extends Endpoint<typeof meta, typeof paramDef> { // eslint- throw new ApiError(meta.errors.youHaveBeenBlocked); } } + + if (renote.visibility === 'followers' && renote.userId !== me.id) { + // 他人のfollowers noteはreject + throw new ApiError(meta.errors.cannotRenoteDueToVisibility); + } else if (renote.visibility === 'specified') { + // specified / direct noteはreject + throw new ApiError(meta.errors.cannotRenoteDueToVisibility); + } } let reply: MiNote | null = null; |