diff options
| author | MeiMei <30769358+mei23@users.noreply.github.com> | 2020-05-09 08:21:42 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-05-09 08:21:42 +0900 |
| commit | 070f1f3c6ee3188e1b16236366877c1c243601c1 (patch) | |
| tree | f77fa43be8524698bc9e46246748a3163dbd4a7a /src/remote/activitypub/kernel/delete/note.ts | |
| parent | WebAuthnでログインできないのを修正 (#6327) (diff) | |
| download | sharkey-070f1f3c6ee3188e1b16236366877c1c243601c1.tar.gz sharkey-070f1f3c6ee3188e1b16236366877c1c243601c1.tar.bz2 sharkey-070f1f3c6ee3188e1b16236366877c1c243601c1.zip | |
APリファクタとLD-Signatureの検証に対応 (#6300)
* DbResolver
* inbox types
* 認証順を変更
* User/Keyあたりをまとめる
* LD-Signatue
* Validate contexts url
* LD-Signature DocumentLoaderにProxyとTimeout
Diffstat (limited to 'src/remote/activitypub/kernel/delete/note.ts')
| -rw-r--r-- | src/remote/activitypub/kernel/delete/note.ts | 29 |
1 files changed, 19 insertions, 10 deletions
diff --git a/src/remote/activitypub/kernel/delete/note.ts b/src/remote/activitypub/kernel/delete/note.ts index b146e68a07..9d7574c29b 100644 --- a/src/remote/activitypub/kernel/delete/note.ts +++ b/src/remote/activitypub/kernel/delete/note.ts @@ -1,22 +1,31 @@ import { IRemoteUser } from '../../../../models/entities/user'; import deleteNode from '../../../../services/note/delete'; import { apLogger } from '../../logger'; -import { Notes } from '../../../../models'; +import DbResolver from '../../db-resolver'; +import { getApLock } from '../../../../misc/app-lock'; const logger = apLogger; -export default async function(actor: IRemoteUser, uri: string): Promise<void> { +export default async function(actor: IRemoteUser, uri: string): Promise<string> { logger.info(`Deleting the Note: ${uri}`); - const note = await Notes.findOne({ uri }); + const unlock = await getApLock(uri); - if (note == null) { - throw new Error('note not found'); - } + try { + const dbResolver = new DbResolver(); + const note = await dbResolver.getNoteFromApId(uri); - if (note.userId !== actor.id) { - throw new Error('投稿を削除しようとしているユーザーは投稿の作成者ではありません'); - } + if (note == null) { + return 'note not found'; + } - await deleteNode(actor, note); + if (note.userId !== actor.id) { + return '投稿を削除しようとしているユーザーは投稿の作成者ではありません'; + } + + await deleteNode(actor, note); + return 'ok: deleted'; + } finally { + unlock(); + } } |