summaryrefslogtreecommitdiff
path: root/src/server/api/endpoints/admin/accounts
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2021-11-12 02:02:25 +0900
committersyuilo <Syuilotan@yahoo.co.jp>2021-11-12 02:02:25 +0900
commit0e4a111f81cceed275d9bec2695f6e401fb654d8 (patch)
tree40874799472fa07416f17b50a398ac33b7771905 /src/server/api/endpoints/admin/accounts
parentupdate deps (diff)
downloadsharkey-0e4a111f81cceed275d9bec2695f6e401fb654d8.tar.gz
sharkey-0e4a111f81cceed275d9bec2695f6e401fb654d8.tar.bz2
sharkey-0e4a111f81cceed275d9bec2695f6e401fb654d8.zip
refactoring
Resolve #7779
Diffstat (limited to 'src/server/api/endpoints/admin/accounts')
-rw-r--r--src/server/api/endpoints/admin/accounts/create.ts51
-rw-r--r--src/server/api/endpoints/admin/accounts/delete.ts58
2 files changed, 0 insertions, 109 deletions
diff --git a/src/server/api/endpoints/admin/accounts/create.ts b/src/server/api/endpoints/admin/accounts/create.ts
deleted file mode 100644
index fa15e84f77..0000000000
--- a/src/server/api/endpoints/admin/accounts/create.ts
+++ /dev/null
@@ -1,51 +0,0 @@
-import define from '../../../define';
-import { Users } from '@/models/index';
-import { signup } from '../../../common/signup';
-
-export const meta = {
- tags: ['admin'],
-
- params: {
- username: {
- validator: Users.validateLocalUsername,
- },
-
- password: {
- validator: Users.validatePassword,
- }
- },
-
- res: {
- type: 'object' as const,
- optional: false as const, nullable: false as const,
- ref: 'User',
- properties: {
- token: {
- type: 'string' as const,
- optional: false as const, nullable: false as const,
- }
- }
- }
-};
-
-export default define(meta, async (ps, _me) => {
- const me = _me ? await Users.findOneOrFail(_me.id) : null;
- const noUsers = (await Users.count({
- host: null,
- })) === 0;
- if (!noUsers && !me?.isAdmin) throw new Error('access denied');
-
- const { account, secret } = await signup({
- username: ps.username,
- password: ps.password,
- });
-
- const res = await Users.pack(account, account, {
- detail: true,
- includeSecrets: true
- });
-
- (res as any).token = secret;
-
- return res;
-});
diff --git a/src/server/api/endpoints/admin/accounts/delete.ts b/src/server/api/endpoints/admin/accounts/delete.ts
deleted file mode 100644
index 4e8a559805..0000000000
--- a/src/server/api/endpoints/admin/accounts/delete.ts
+++ /dev/null
@@ -1,58 +0,0 @@
-import $ from 'cafy';
-import define from '../../../define';
-import { Users } from '@/models/index';
-import { doPostSuspend } from '@/services/suspend-user';
-import { publishUserEvent } from '@/services/stream';
-import { createDeleteAccountJob } from '@/queue';
-import { ID } from '@/misc/cafy-id';
-
-export const meta = {
- tags: ['admin'],
-
- requireCredential: true as const,
- requireModerator: true,
-
- params: {
- userId: {
- validator: $.type(ID),
- },
- }
-};
-
-export default define(meta, async (ps, me) => {
- const user = await Users.findOne(ps.userId);
-
- if (user == null) {
- throw new Error('user not found');
- }
-
- if (user.isAdmin) {
- throw new Error('cannot suspend admin');
- }
-
- if (user.isModerator) {
- throw new Error('cannot suspend moderator');
- }
-
- if (Users.isLocalUser(user)) {
- // 物理削除する前にDelete activityを送信する
- await doPostSuspend(user).catch(e => {});
-
- createDeleteAccountJob(user, {
- soft: false
- });
- } else {
- createDeleteAccountJob(user, {
- soft: true // リモートユーザーの削除は、完全にDBから物理削除してしまうと再度連合してきてアカウントが復活する可能性があるため、soft指定する
- });
- }
-
- await Users.update(user.id, {
- isDeleted: true,
- });
-
- if (Users.isLocalUser(user)) {
- // Terminate streaming
- publishUserEvent(user.id, 'terminate', {});
- }
-});