summaryrefslogtreecommitdiff
path: root/packages/backend/src/core/UserSuspendService.ts
diff options
context:
space:
mode:
authorsyuilo <4439005+syuilo@users.noreply.github.com>2024-08-14 20:29:06 +0900
committersyuilo <4439005+syuilo@users.noreply.github.com>2024-08-14 20:29:06 +0900
commit86dd4abadcb19c3fa4e082b7ab2dc80c5d93618b (patch)
tree8db3cc54b91c361eee2a5b5149b73110004a8175 /packages/backend/src/core/UserSuspendService.ts
parentenhance(backend): 凍結されたアカウントのフォローリクエス... (diff)
downloadmisskey-86dd4abadcb19c3fa4e082b7ab2dc80c5d93618b.tar.gz
misskey-86dd4abadcb19c3fa4e082b7ab2dc80c5d93618b.tar.bz2
misskey-86dd4abadcb19c3fa4e082b7ab2dc80c5d93618b.zip
Revert "enhance(backend): 凍結されたアカウントのフォローリクエストを表示しないように"
This reverts commit cd210001e6ffd6232678cbc74f06f8e6d05a1d15.
Diffstat (limited to 'packages/backend/src/core/UserSuspendService.ts')
-rw-r--r--packages/backend/src/core/UserSuspendService.ts79
1 files changed, 3 insertions, 76 deletions
diff --git a/packages/backend/src/core/UserSuspendService.ts b/packages/backend/src/core/UserSuspendService.ts
index 7920e58e36..d594a223f4 100644
--- a/packages/backend/src/core/UserSuspendService.ts
+++ b/packages/backend/src/core/UserSuspendService.ts
@@ -5,7 +5,7 @@
import { Inject, Injectable } from '@nestjs/common';
import { Not, IsNull } from 'typeorm';
-import type { FollowingsRepository, FollowRequestsRepository, UsersRepository } from '@/models/_.js';
+import type { FollowingsRepository } from '@/models/_.js';
import type { MiUser } from '@/models/User.js';
import { QueueService } from '@/core/QueueService.js';
import { GlobalEventService } from '@/core/GlobalEventService.js';
@@ -13,75 +13,24 @@ import { DI } from '@/di-symbols.js';
import { ApRendererService } from '@/core/activitypub/ApRendererService.js';
import { UserEntityService } from '@/core/entities/UserEntityService.js';
import { bindThis } from '@/decorators.js';
-import { RelationshipJobData } from '@/queue/types.js';
-import { ModerationLogService } from '@/core/ModerationLogService.js';
@Injectable()
export class UserSuspendService {
constructor(
- @Inject(DI.usersRepository)
- private usersRepository: UsersRepository,
-
@Inject(DI.followingsRepository)
private followingsRepository: FollowingsRepository,
- @Inject(DI.followRequestsRepository)
- private followRequestsRepository: FollowRequestsRepository,
-
private userEntityService: UserEntityService,
private queueService: QueueService,
private globalEventService: GlobalEventService,
private apRendererService: ApRendererService,
- private moderationLogService: ModerationLogService,
) {
}
@bindThis
- public async suspend(user: MiUser, moderator: MiUser): Promise<void> {
- await this.usersRepository.update(user.id, {
- isSuspended: true,
- });
-
- this.moderationLogService.log(moderator, 'suspend', {
- userId: user.id,
- userUsername: user.username,
- userHost: user.host,
- });
-
- (async () => {
- await this.postSuspend(user).catch(e => {});
- await this.unFollowAll(user).catch(e => {});
- })();
- }
-
- @bindThis
- public async unsuspend(user: MiUser, moderator: MiUser): Promise<void> {
- await this.usersRepository.update(user.id, {
- isSuspended: false,
- });
-
- this.moderationLogService.log(moderator, 'unsuspend', {
- userId: user.id,
- userUsername: user.username,
- userHost: user.host,
- });
-
- (async () => {
- await this.postUnsuspend(user).catch(e => {});
- })();
- }
-
- @bindThis
- private async postSuspend(user: { id: MiUser['id']; host: MiUser['host'] }): Promise<void> {
+ public async doPostSuspend(user: { id: MiUser['id']; host: MiUser['host'] }): Promise<void> {
this.globalEventService.publishInternalEvent('userChangeSuspendedState', { id: user.id, isSuspended: true });
- this.followRequestsRepository.delete({
- followeeId: user.id,
- });
- this.followRequestsRepository.delete({
- followerId: user.id,
- });
-
if (this.userEntityService.isLocalUser(user)) {
// 知り得る全SharedInboxにDelete配信
const content = this.apRendererService.addContext(this.apRendererService.renderDelete(this.userEntityService.genLocalUserUri(user.id), user));
@@ -109,7 +58,7 @@ export class UserSuspendService {
}
@bindThis
- private async postUnsuspend(user: MiUser): Promise<void> {
+ public async doPostUnsuspend(user: MiUser): Promise<void> {
this.globalEventService.publishInternalEvent('userChangeSuspendedState', { id: user.id, isSuspended: false });
if (this.userEntityService.isLocalUser(user)) {
@@ -137,26 +86,4 @@ export class UserSuspendService {
}
}
}
-
- @bindThis
- private async unFollowAll(follower: MiUser) {
- const followings = await this.followingsRepository.find({
- where: {
- followerId: follower.id,
- followeeId: Not(IsNull()),
- },
- });
-
- const jobs: RelationshipJobData[] = [];
- for (const following of followings) {
- if (following.followeeId && following.followerId) {
- jobs.push({
- from: { id: following.followerId },
- to: { id: following.followeeId },
- silent: true,
- });
- }
- }
- this.queueService.createUnfollowJob(jobs);
- }
}