diff options
| author | syuilo <Syuilotan@yahoo.co.jp> | 2022-06-27 23:49:16 +0900 |
|---|---|---|
| committer | syuilo <Syuilotan@yahoo.co.jp> | 2022-06-27 23:49:16 +0900 |
| commit | 329f055a976dc3b2e12f2a0141bfab2c57ae9193 (patch) | |
| tree | 0f11f906c0e0401b83604e91bfee33ff6214e254 /packages/backend/src/services | |
| parent | refactor: remove duplicate code (#8895) (diff) | |
| download | sharkey-329f055a976dc3b2e12f2a0141bfab2c57ae9193.tar.gz sharkey-329f055a976dc3b2e12f2a0141bfab2c57ae9193.tar.bz2 sharkey-329f055a976dc3b2e12f2a0141bfab2c57ae9193.zip | |
feat: make possible to delete an account by admin
Resolve #8830
Diffstat (limited to 'packages/backend/src/services')
| -rw-r--r-- | packages/backend/src/services/delete-account.ts | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/packages/backend/src/services/delete-account.ts b/packages/backend/src/services/delete-account.ts new file mode 100644 index 0000000000..0fdceb671b --- /dev/null +++ b/packages/backend/src/services/delete-account.ts @@ -0,0 +1,23 @@ +import { Users } from '@/models/index.js'; +import { createDeleteAccountJob } from '@/queue/index.js'; +import { publishUserEvent } from './stream.js'; +import { doPostSuspend } from './suspend-user.js'; + +export async function deleteAccount(user: { + id: string; + host: string | null; +}): Promise<void> { + // 物理削除する前にDelete activityを送信する + await doPostSuspend(user).catch(e => {}); + + createDeleteAccountJob(user, { + soft: false, + }); + + await Users.update(user.id, { + isDeleted: true, + }); + + // Terminate streaming + publishUserEvent(user.id, 'terminate', {}); +} |