diff --git a/packages/backend/src/server/api/ApiCallService.ts b/packages/backend/src/server/api/ApiCallService.ts index 085a0fd58a..e84d8145de 100644 --- a/packages/backend/src/server/api/ApiCallService.ts +++ b/packages/backend/src/server/api/ApiCallService.ts @@ -276,17 +276,10 @@ export class ApiCallService implements OnApplicationShutdown { id: '1384574d-a912-4b81-8601-c7b1c4085df1', httpStatusCode: 401, }); - } else if (user!.isSuspended) { - throw new ApiError({ - message: 'Your account has been suspended.', - code: 'YOUR_ACCOUNT_SUSPENDED', - kind: 'permission', - id: 'a8c724b3-6e9c-4b46-b1a8-bc3ed6258370', - }); } } - if (ep.meta.prohibitMoved) { + if (ep.meta.prohibitDeactivated) { if (user?.movedToUri) { throw new ApiError({ message: 'You have moved your account.', @@ -295,6 +288,14 @@ export class ApiCallService implements OnApplicationShutdown { id: '56f20ec9-fd06-4fa5-841b-edd6d7d4fa31', }); } + if (user?.isSuspended) { + throw new ApiError({ + message: 'Your account has been suspended.', + code: 'YOUR_ACCOUNT_SUSPENDED', + kind: 'permission', + id: 'a8c724b3-6e9c-4b46-b1a8-bc3ed6258370', + }); + } } if ((ep.meta.requireModerator || ep.meta.requireAdmin) && !user!.isRoot) { diff --git a/packages/backend/src/server/api/endpoints.ts b/packages/backend/src/server/api/endpoints.ts index ab20a708ef..879e327fe1 100644 --- a/packages/backend/src/server/api/endpoints.ts +++ b/packages/backend/src/server/api/endpoints.ts @@ -735,7 +735,7 @@ export interface IEndpointMeta { * 引っ越し済みのユーザーによるリクエストを禁止するか * 省略した場合は false として解釈されます。 */ - readonly prohibitMoved?: boolean; + readonly prohibitDeactivated?: boolean; /** * エンドポイントのリミテーションに関するやつ diff --git a/packages/backend/src/server/api/endpoints/antennas/create.ts b/packages/backend/src/server/api/endpoints/antennas/create.ts index 15fca4904d..206b614e52 100644 --- a/packages/backend/src/server/api/endpoints/antennas/create.ts +++ b/packages/backend/src/server/api/endpoints/antennas/create.ts @@ -18,7 +18,7 @@ export const meta = { requireCredential: true, - prohibitMoved: true, + prohibitDeactivated: true, kind: 'write:account', diff --git a/packages/backend/src/server/api/endpoints/antennas/update.ts b/packages/backend/src/server/api/endpoints/antennas/update.ts index 0e98746881..d8f42dd768 100644 --- a/packages/backend/src/server/api/endpoints/antennas/update.ts +++ b/packages/backend/src/server/api/endpoints/antennas/update.ts @@ -16,7 +16,7 @@ export const meta = { requireCredential: true, - prohibitMoved: true, + prohibitDeactivated: true, kind: 'write:account', diff --git a/packages/backend/src/server/api/endpoints/channels/create.ts b/packages/backend/src/server/api/endpoints/channels/create.ts index e72120e156..70a08e42cb 100644 --- a/packages/backend/src/server/api/endpoints/channels/create.ts +++ b/packages/backend/src/server/api/endpoints/channels/create.ts @@ -18,7 +18,7 @@ export const meta = { requireCredential: true, - prohibitMoved: true, + prohibitDeactivated: true, kind: 'write:channels', diff --git a/packages/backend/src/server/api/endpoints/channels/favorite.ts b/packages/backend/src/server/api/endpoints/channels/favorite.ts index 1f78a86dd4..bc53b1b2d6 100644 --- a/packages/backend/src/server/api/endpoints/channels/favorite.ts +++ b/packages/backend/src/server/api/endpoints/channels/favorite.ts @@ -15,7 +15,7 @@ export const meta = { requireCredential: true, - prohibitMoved: true, + prohibitDeactivated: true, kind: 'write:channels', diff --git a/packages/backend/src/server/api/endpoints/channels/follow.ts b/packages/backend/src/server/api/endpoints/channels/follow.ts index 5a43e8be1b..055ad48d44 100644 --- a/packages/backend/src/server/api/endpoints/channels/follow.ts +++ b/packages/backend/src/server/api/endpoints/channels/follow.ts @@ -15,7 +15,7 @@ export const meta = { requireCredential: true, - prohibitMoved: true, + prohibitDeactivated: true, kind: 'write:channels', diff --git a/packages/backend/src/server/api/endpoints/channels/unfavorite.ts b/packages/backend/src/server/api/endpoints/channels/unfavorite.ts index b4c7af8154..e700fad90f 100644 --- a/packages/backend/src/server/api/endpoints/channels/unfavorite.ts +++ b/packages/backend/src/server/api/endpoints/channels/unfavorite.ts @@ -14,7 +14,7 @@ export const meta = { requireCredential: true, - prohibitMoved: true, + prohibitDeactivated: true, kind: 'write:channels', diff --git a/packages/backend/src/server/api/endpoints/channels/unfollow.ts b/packages/backend/src/server/api/endpoints/channels/unfollow.ts index 46883dd548..6a27858619 100644 --- a/packages/backend/src/server/api/endpoints/channels/unfollow.ts +++ b/packages/backend/src/server/api/endpoints/channels/unfollow.ts @@ -14,7 +14,7 @@ export const meta = { requireCredential: true, - prohibitMoved: true, + prohibitDeactivated: true, kind: 'write:channels', diff --git a/packages/backend/src/server/api/endpoints/clips/add-note.ts b/packages/backend/src/server/api/endpoints/clips/add-note.ts index 749593aa65..ac58142428 100644 --- a/packages/backend/src/server/api/endpoints/clips/add-note.ts +++ b/packages/backend/src/server/api/endpoints/clips/add-note.ts @@ -14,7 +14,7 @@ export const meta = { requireCredential: true, - prohibitMoved: true, + prohibitDeactivated: true, kind: 'write:account', diff --git a/packages/backend/src/server/api/endpoints/clips/create.ts b/packages/backend/src/server/api/endpoints/clips/create.ts index b4c7b52e72..36c9acd04a 100644 --- a/packages/backend/src/server/api/endpoints/clips/create.ts +++ b/packages/backend/src/server/api/endpoints/clips/create.ts @@ -15,7 +15,7 @@ export const meta = { requireCredential: true, - prohibitMoved: true, + prohibitDeactivated: true, kind: 'write:account', diff --git a/packages/backend/src/server/api/endpoints/clips/favorite.ts b/packages/backend/src/server/api/endpoints/clips/favorite.ts index 6cd34f0a54..5179777445 100644 --- a/packages/backend/src/server/api/endpoints/clips/favorite.ts +++ b/packages/backend/src/server/api/endpoints/clips/favorite.ts @@ -15,7 +15,7 @@ export const meta = { requireCredential: true, - prohibitMoved: true, + prohibitDeactivated: true, kind: 'write:clip-favorite', diff --git a/packages/backend/src/server/api/endpoints/clips/remove-note.ts b/packages/backend/src/server/api/endpoints/clips/remove-note.ts index 7b153cb555..72b76e194b 100644 --- a/packages/backend/src/server/api/endpoints/clips/remove-note.ts +++ b/packages/backend/src/server/api/endpoints/clips/remove-note.ts @@ -13,7 +13,7 @@ export const meta = { requireCredential: true, - prohibitMoved: true, + prohibitDeactivated: true, kind: 'write:account', diff --git a/packages/backend/src/server/api/endpoints/clips/unfavorite.ts b/packages/backend/src/server/api/endpoints/clips/unfavorite.ts index d1007f7a19..8836c8a87a 100644 --- a/packages/backend/src/server/api/endpoints/clips/unfavorite.ts +++ b/packages/backend/src/server/api/endpoints/clips/unfavorite.ts @@ -14,7 +14,7 @@ export const meta = { requireCredential: true, - prohibitMoved: true, + prohibitDeactivated: true, kind: 'write:clip-favorite', diff --git a/packages/backend/src/server/api/endpoints/clips/update.ts b/packages/backend/src/server/api/endpoints/clips/update.ts index 0b9878578c..60ba5627f0 100644 --- a/packages/backend/src/server/api/endpoints/clips/update.ts +++ b/packages/backend/src/server/api/endpoints/clips/update.ts @@ -14,7 +14,7 @@ export const meta = { requireCredential: true, - prohibitMoved: true, + prohibitDeactivated: true, kind: 'write:account', diff --git a/packages/backend/src/server/api/endpoints/drive/files/create.ts b/packages/backend/src/server/api/endpoints/drive/files/create.ts index 5e97588c99..15ff7a05b8 100644 --- a/packages/backend/src/server/api/endpoints/drive/files/create.ts +++ b/packages/backend/src/server/api/endpoints/drive/files/create.ts @@ -18,7 +18,7 @@ export const meta = { requireCredential: true, - prohibitMoved: true, + prohibitDeactivated: true, limit: { duration: ms('1hour'), diff --git a/packages/backend/src/server/api/endpoints/drive/files/upload-from-url.ts b/packages/backend/src/server/api/endpoints/drive/files/upload-from-url.ts index bbe62063cf..b12a213c9d 100644 --- a/packages/backend/src/server/api/endpoints/drive/files/upload-from-url.ts +++ b/packages/backend/src/server/api/endpoints/drive/files/upload-from-url.ts @@ -22,7 +22,7 @@ export const meta = { requireCredential: true, - prohibitMoved: true, + prohibitDeactivated: true, kind: 'write:drive', } as const; diff --git a/packages/backend/src/server/api/endpoints/flash/create.ts b/packages/backend/src/server/api/endpoints/flash/create.ts index b46660d218..5d4954d743 100644 --- a/packages/backend/src/server/api/endpoints/flash/create.ts +++ b/packages/backend/src/server/api/endpoints/flash/create.ts @@ -16,7 +16,7 @@ export const meta = { requireCredential: true, - prohibitMoved: true, + prohibitDeactivated: true, kind: 'write:flash', diff --git a/packages/backend/src/server/api/endpoints/flash/like.ts b/packages/backend/src/server/api/endpoints/flash/like.ts index a90e5f653a..69b9256087 100644 --- a/packages/backend/src/server/api/endpoints/flash/like.ts +++ b/packages/backend/src/server/api/endpoints/flash/like.ts @@ -15,7 +15,7 @@ export const meta = { requireCredential: true, - prohibitMoved: true, + prohibitDeactivated: true, kind: 'write:flash-likes', diff --git a/packages/backend/src/server/api/endpoints/flash/unlike.ts b/packages/backend/src/server/api/endpoints/flash/unlike.ts index d5c20a1167..2bf8ba85f7 100644 --- a/packages/backend/src/server/api/endpoints/flash/unlike.ts +++ b/packages/backend/src/server/api/endpoints/flash/unlike.ts @@ -14,7 +14,7 @@ export const meta = { requireCredential: true, - prohibitMoved: true, + prohibitDeactivated: true, kind: 'write:flash-likes', diff --git a/packages/backend/src/server/api/endpoints/flash/update.ts b/packages/backend/src/server/api/endpoints/flash/update.ts index cc2c926749..faac00e540 100644 --- a/packages/backend/src/server/api/endpoints/flash/update.ts +++ b/packages/backend/src/server/api/endpoints/flash/update.ts @@ -15,7 +15,7 @@ export const meta = { requireCredential: true, - prohibitMoved: true, + prohibitDeactivated: true, kind: 'write:flash', diff --git a/packages/backend/src/server/api/endpoints/following/create.ts b/packages/backend/src/server/api/endpoints/following/create.ts index e0e7fed87a..4bc5b92791 100644 --- a/packages/backend/src/server/api/endpoints/following/create.ts +++ b/packages/backend/src/server/api/endpoints/following/create.ts @@ -24,7 +24,7 @@ export const meta = { requireCredential: true, - prohibitMoved: true, + prohibitDeactivated: true, kind: 'write:following', diff --git a/packages/backend/src/server/api/endpoints/gallery/posts/create.ts b/packages/backend/src/server/api/endpoints/gallery/posts/create.ts index 94701712de..b6748b2e19 100644 --- a/packages/backend/src/server/api/endpoints/gallery/posts/create.ts +++ b/packages/backend/src/server/api/endpoints/gallery/posts/create.ts @@ -18,7 +18,7 @@ export const meta = { requireCredential: true, - prohibitMoved: true, + prohibitDeactivated: true, kind: 'write:gallery', diff --git a/packages/backend/src/server/api/endpoints/gallery/posts/like.ts b/packages/backend/src/server/api/endpoints/gallery/posts/like.ts index c557054066..f74ebeab97 100644 --- a/packages/backend/src/server/api/endpoints/gallery/posts/like.ts +++ b/packages/backend/src/server/api/endpoints/gallery/posts/like.ts @@ -15,7 +15,7 @@ export const meta = { requireCredential: true, - prohibitMoved: true, + prohibitDeactivated: true, kind: 'write:gallery-likes', diff --git a/packages/backend/src/server/api/endpoints/gallery/posts/unlike.ts b/packages/backend/src/server/api/endpoints/gallery/posts/unlike.ts index 832b62282f..8a787ac17b 100644 --- a/packages/backend/src/server/api/endpoints/gallery/posts/unlike.ts +++ b/packages/backend/src/server/api/endpoints/gallery/posts/unlike.ts @@ -14,7 +14,7 @@ export const meta = { requireCredential: true, - prohibitMoved: true, + prohibitDeactivated: true, kind: 'write:gallery-likes', diff --git a/packages/backend/src/server/api/endpoints/gallery/posts/update.ts b/packages/backend/src/server/api/endpoints/gallery/posts/update.ts index 632214a0c2..caaa87870c 100644 --- a/packages/backend/src/server/api/endpoints/gallery/posts/update.ts +++ b/packages/backend/src/server/api/endpoints/gallery/posts/update.ts @@ -16,7 +16,7 @@ export const meta = { requireCredential: true, - prohibitMoved: true, + prohibitDeactivated: true, kind: 'write:gallery', diff --git a/packages/backend/src/server/api/endpoints/i/claim-achievement.ts b/packages/backend/src/server/api/endpoints/i/claim-achievement.ts index b24b3438dc..acafb755c6 100644 --- a/packages/backend/src/server/api/endpoints/i/claim-achievement.ts +++ b/packages/backend/src/server/api/endpoints/i/claim-achievement.ts @@ -9,7 +9,7 @@ import { AchievementService, ACHIEVEMENT_TYPES } from '@/core/AchievementService export const meta = { requireCredential: true, - prohibitMoved: true, + prohibitDeactivated: true, } as const; export const paramDef = { diff --git a/packages/backend/src/server/api/endpoints/i/import-antennas.ts b/packages/backend/src/server/api/endpoints/i/import-antennas.ts index 71db8710af..c71f1ffc0d 100644 --- a/packages/backend/src/server/api/endpoints/i/import-antennas.ts +++ b/packages/backend/src/server/api/endpoints/i/import-antennas.ts @@ -16,7 +16,7 @@ import { ApiError } from '../../error.js'; export const meta = { secure: true, requireCredential: true, - prohibitMoved: true, + prohibitDeactivated: true, limit: { duration: ms('1hour'), diff --git a/packages/backend/src/server/api/endpoints/i/import-blocking.ts b/packages/backend/src/server/api/endpoints/i/import-blocking.ts index 965ad30547..2a1bdb15ec 100644 --- a/packages/backend/src/server/api/endpoints/i/import-blocking.ts +++ b/packages/backend/src/server/api/endpoints/i/import-blocking.ts @@ -15,7 +15,7 @@ import { ApiError } from '../../error.js'; export const meta = { secure: true, requireCredential: true, - prohibitMoved: true, + prohibitDeactivated: true, limit: { duration: ms('1hour'), diff --git a/packages/backend/src/server/api/endpoints/i/import-following.ts b/packages/backend/src/server/api/endpoints/i/import-following.ts index 38c9283043..2fdd957c15 100644 --- a/packages/backend/src/server/api/endpoints/i/import-following.ts +++ b/packages/backend/src/server/api/endpoints/i/import-following.ts @@ -15,7 +15,7 @@ import { ApiError } from '../../error.js'; export const meta = { secure: true, requireCredential: true, - prohibitMoved: true, + prohibitDeactivated: true, limit: { duration: ms('1hour'), max: 1, diff --git a/packages/backend/src/server/api/endpoints/i/import-muting.ts b/packages/backend/src/server/api/endpoints/i/import-muting.ts index 926cf13d7f..aec4c64335 100644 --- a/packages/backend/src/server/api/endpoints/i/import-muting.ts +++ b/packages/backend/src/server/api/endpoints/i/import-muting.ts @@ -15,7 +15,7 @@ import { ApiError } from '../../error.js'; export const meta = { secure: true, requireCredential: true, - prohibitMoved: true, + prohibitDeactivated: true, limit: { duration: ms('1hour'), diff --git a/packages/backend/src/server/api/endpoints/i/import-user-lists.ts b/packages/backend/src/server/api/endpoints/i/import-user-lists.ts index 2167996435..d077ac674c 100644 --- a/packages/backend/src/server/api/endpoints/i/import-user-lists.ts +++ b/packages/backend/src/server/api/endpoints/i/import-user-lists.ts @@ -15,7 +15,7 @@ import { ApiError } from '../../error.js'; export const meta = { secure: true, requireCredential: true, - prohibitMoved: true, + prohibitDeactivated: true, limit: { duration: ms('1hour'), max: 1, diff --git a/packages/backend/src/server/api/endpoints/i/move.ts b/packages/backend/src/server/api/endpoints/i/move.ts index 86b726e054..b38b9f8b5c 100644 --- a/packages/backend/src/server/api/endpoints/i/move.ts +++ b/packages/backend/src/server/api/endpoints/i/move.ts @@ -25,7 +25,7 @@ export const meta = { secure: true, requireCredential: true, - prohibitMoved: true, + prohibitDeactivated: true, limit: { duration: ms('1day'), max: 5, diff --git a/packages/backend/src/server/api/endpoints/i/pin.ts b/packages/backend/src/server/api/endpoints/i/pin.ts index c89cdfa3a4..6db45eee0b 100644 --- a/packages/backend/src/server/api/endpoints/i/pin.ts +++ b/packages/backend/src/server/api/endpoints/i/pin.ts @@ -13,7 +13,7 @@ export const meta = { tags: ['account', 'notes'], requireCredential: true, - prohibitMoved: true, + prohibitDeactivated: true, kind: 'write:account', diff --git a/packages/backend/src/server/api/endpoints/mute/create.ts b/packages/backend/src/server/api/endpoints/mute/create.ts index 49c2b5707d..12d4a682a2 100644 --- a/packages/backend/src/server/api/endpoints/mute/create.ts +++ b/packages/backend/src/server/api/endpoints/mute/create.ts @@ -16,7 +16,7 @@ export const meta = { tags: ['account'], requireCredential: true, - prohibitMoved: true, + prohibitDeactivated: true, kind: 'write:mutes', diff --git a/packages/backend/src/server/api/endpoints/notes/create.ts b/packages/backend/src/server/api/endpoints/notes/create.ts index 2e4d316c47..9f89281121 100644 --- a/packages/backend/src/server/api/endpoints/notes/create.ts +++ b/packages/backend/src/server/api/endpoints/notes/create.ts @@ -23,7 +23,7 @@ export const meta = { requireCredential: true, - prohibitMoved: true, + prohibitDeactivated: true, limit: { duration: ms('1hour'), diff --git a/packages/backend/src/server/api/endpoints/notes/favorites/create.ts b/packages/backend/src/server/api/endpoints/notes/favorites/create.ts index cc648e22a8..7fdbb09216 100644 --- a/packages/backend/src/server/api/endpoints/notes/favorites/create.ts +++ b/packages/backend/src/server/api/endpoints/notes/favorites/create.ts @@ -17,7 +17,7 @@ export const meta = { tags: ['notes', 'favorites'], requireCredential: true, - prohibitMoved: true, + prohibitDeactivated: true, kind: 'write:favorites', diff --git a/packages/backend/src/server/api/endpoints/notes/polls/vote.ts b/packages/backend/src/server/api/endpoints/notes/polls/vote.ts index a58bf09b85..832f98faac 100644 --- a/packages/backend/src/server/api/endpoints/notes/polls/vote.ts +++ b/packages/backend/src/server/api/endpoints/notes/polls/vote.ts @@ -22,7 +22,7 @@ export const meta = { requireCredential: true, - prohibitMoved: true, + prohibitDeactivated: true, kind: 'write:votes', diff --git a/packages/backend/src/server/api/endpoints/notes/reactions/create.ts b/packages/backend/src/server/api/endpoints/notes/reactions/create.ts index ff22ef1322..12ea47fc7d 100644 --- a/packages/backend/src/server/api/endpoints/notes/reactions/create.ts +++ b/packages/backend/src/server/api/endpoints/notes/reactions/create.ts @@ -14,7 +14,7 @@ export const meta = { requireCredential: true, - prohibitMoved: true, + prohibitDeactivated: true, kind: 'write:reactions', diff --git a/packages/backend/src/server/api/endpoints/pages/create.ts b/packages/backend/src/server/api/endpoints/pages/create.ts index c0e8fab16c..b57d50eedd 100644 --- a/packages/backend/src/server/api/endpoints/pages/create.ts +++ b/packages/backend/src/server/api/endpoints/pages/create.ts @@ -18,7 +18,7 @@ export const meta = { requireCredential: true, - prohibitMoved: true, + prohibitDeactivated: true, kind: 'write:pages', diff --git a/packages/backend/src/server/api/endpoints/pages/like.ts b/packages/backend/src/server/api/endpoints/pages/like.ts index 6c69cad9d5..bf6f7d6553 100644 --- a/packages/backend/src/server/api/endpoints/pages/like.ts +++ b/packages/backend/src/server/api/endpoints/pages/like.ts @@ -15,7 +15,7 @@ export const meta = { requireCredential: true, - prohibitMoved: true, + prohibitDeactivated: true, kind: 'write:page-likes', diff --git a/packages/backend/src/server/api/endpoints/pages/unlike.ts b/packages/backend/src/server/api/endpoints/pages/unlike.ts index 7a76cd7408..76444a59e4 100644 --- a/packages/backend/src/server/api/endpoints/pages/unlike.ts +++ b/packages/backend/src/server/api/endpoints/pages/unlike.ts @@ -14,7 +14,7 @@ export const meta = { requireCredential: true, - prohibitMoved: true, + prohibitDeactivated: true, kind: 'write:page-likes', diff --git a/packages/backend/src/server/api/endpoints/pages/update.ts b/packages/backend/src/server/api/endpoints/pages/update.ts index aaea1efa87..bcc77ddc63 100644 --- a/packages/backend/src/server/api/endpoints/pages/update.ts +++ b/packages/backend/src/server/api/endpoints/pages/update.ts @@ -16,7 +16,7 @@ export const meta = { requireCredential: true, - prohibitMoved: true, + prohibitDeactivated: true, kind: 'write:pages', diff --git a/packages/backend/src/server/api/endpoints/renote-mute/create.ts b/packages/backend/src/server/api/endpoints/renote-mute/create.ts index 3c9d266e21..f79bc0aea6 100644 --- a/packages/backend/src/server/api/endpoints/renote-mute/create.ts +++ b/packages/backend/src/server/api/endpoints/renote-mute/create.ts @@ -17,7 +17,7 @@ export const meta = { tags: ['account'], requireCredential: true, - prohibitMoved: true, + prohibitDeactivated: true, kind: 'write:mutes', diff --git a/packages/backend/src/server/api/endpoints/users/lists/create-from-public.ts b/packages/backend/src/server/api/endpoints/users/lists/create-from-public.ts index fd1bb48a4e..8e984c715b 100644 --- a/packages/backend/src/server/api/endpoints/users/lists/create-from-public.ts +++ b/packages/backend/src/server/api/endpoints/users/lists/create-from-public.ts @@ -17,7 +17,7 @@ import { UserListService } from '@/core/UserListService.js'; export const meta = { requireCredential: true, - prohibitMoved: true, + prohibitDeactivated: true, res: { type: 'object', optional: false, nullable: false, diff --git a/packages/backend/src/server/api/endpoints/users/lists/create.ts b/packages/backend/src/server/api/endpoints/users/lists/create.ts index 60b2b3f17e..3a07a86ecc 100644 --- a/packages/backend/src/server/api/endpoints/users/lists/create.ts +++ b/packages/backend/src/server/api/endpoints/users/lists/create.ts @@ -18,7 +18,7 @@ export const meta = { requireCredential: true, - prohibitMoved: true, + prohibitDeactivated: true, kind: 'write:account', diff --git a/packages/backend/src/server/api/endpoints/users/lists/pull.ts b/packages/backend/src/server/api/endpoints/users/lists/pull.ts index 0b01061740..19694fe421 100644 --- a/packages/backend/src/server/api/endpoints/users/lists/pull.ts +++ b/packages/backend/src/server/api/endpoints/users/lists/pull.ts @@ -17,7 +17,7 @@ export const meta = { requireCredential: true, - prohibitMoved: true, + prohibitDeactivated: true, kind: 'write:account', diff --git a/packages/backend/src/server/api/endpoints/users/lists/push.ts b/packages/backend/src/server/api/endpoints/users/lists/push.ts index 9bb1a71f58..eae2eaccaa 100644 --- a/packages/backend/src/server/api/endpoints/users/lists/push.ts +++ b/packages/backend/src/server/api/endpoints/users/lists/push.ts @@ -17,7 +17,7 @@ export const meta = { requireCredential: true, - prohibitMoved: true, + prohibitDeactivated: true, kind: 'write:account', diff --git a/packages/backend/test/e2e/suspend.ts b/packages/backend/test/e2e/suspend.ts new file mode 100644 index 0000000000..8cefb97ed6 --- /dev/null +++ b/packages/backend/test/e2e/suspend.ts @@ -0,0 +1,53 @@ +/* + * SPDX-FileCopyrightText: syuilo and other misskey contributors + * SPDX-License-Identifier: AGPL-3.0-only + */ + +process.env.NODE_ENV = 'test'; + +import * as assert from 'assert'; +import { loadConfig } from '@/config.js'; +import { User, UsersRepository } from '@/models/index.js'; +import { jobQueue } from '@/boot/common.js'; +import { secureRndstr } from '@/misc/secure-rndstr.js'; +import { uploadFile, signup, startServer, initTestDb, api, sleep, successfulApiCall } from '../utils.js'; +import type { INestApplicationContext } from '@nestjs/common'; +import type * as misskey from 'misskey-js'; + +describe('Account Suspension', () => { + let app: INestApplicationContext; + + let root: misskey.entities.MeSignup; + let alice: misskey.entities.MeSignup; + + beforeAll(async () => { + app = await startServer(); + root = await signup({ username: 'root' }); + alice = await signup({ username: 'alice' }); + + await api('admin/suspend-user', { userId: alice.id }, root); + }, 1000 * 60 * 2); + + afterAll(async () => { + await app.close(); + }); + + it('Cannot create notes', async () => { + const res = await api('notes/create', { text: 'foo' }, alice); + + assert.strictEqual(res.status, 403); + assert.strictEqual(res.body.error.code, 'YOUR_ACCOUNT_SUSPENDED'); + assert.strictEqual(res.body.error.id, 'a8c724b3-6e9c-4b46-b1a8-bc3ed6258370'); + }); + + it('Can see notes', async () => { + const createRes = await api('notes/create', { text: 'bar' }, root); + assert.strictEqual(createRes.status, 200); + assert.strictEqual(createRes.body.createdNote.text, 'bar'); + + const showRes = await api('notes/show', { noteId: createRes.body.createdNote.id }, alice); + assert.strictEqual(showRes.status, 200); + assert.strictEqual(showRes.body.text, 'bar'); + assert.strictEqual(showRes.body.id, createRes.body.createdNote.id); + }); +});