forked from mirrors/misskey
feat: リモートからユーザー削除が飛んできたら削除するように (#7768)
* Delete Actor * Update src/remote/activitypub/kernel/delete/actor.ts Co-authored-by: syuilo <Syuilotan@yahoo.co.jp> Co-authored-by: syuilo <Syuilotan@yahoo.co.jp>
This commit is contained in:
26
src/remote/activitypub/kernel/delete/actor.ts
Normal file
26
src/remote/activitypub/kernel/delete/actor.ts
Normal file
@@ -0,0 +1,26 @@
|
||||
import { apLogger } from '../../logger';
|
||||
import { createDeleteAccountJob } from '@/queue';
|
||||
import { IRemoteUser } from '@/models/entities/user';
|
||||
import { Users } from '@/models/index';
|
||||
|
||||
const logger = apLogger;
|
||||
|
||||
export async function deleteActor(actor: IRemoteUser, uri: string): Promise<string> {
|
||||
logger.info(`Deleting the Actor: ${uri}`);
|
||||
|
||||
if (actor.uri !== uri) {
|
||||
return `skip: delete actor ${actor.uri} !== ${uri}`;
|
||||
}
|
||||
|
||||
if (actor.isDeleted) {
|
||||
logger.info(`skip: already deleted`);
|
||||
}
|
||||
|
||||
const job = await createDeleteAccountJob(actor);
|
||||
|
||||
await Users.update(actor.id, {
|
||||
isDeleted: true,
|
||||
});
|
||||
|
||||
return `ok: queued ${job.name} ${job.id}`;
|
||||
}
|
||||
Reference in New Issue
Block a user