summaryrefslogtreecommitdiff
path: root/packages/backend/src
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2023-03-24 15:43:36 +0900
committersyuilo <Syuilotan@yahoo.co.jp>2023-03-24 15:43:36 +0900
commitf01e6ef6bf061b6c49cc7d9188160e41edad421b (patch)
treed7f5f3c243dc23a0c127e92f62429285cea0332c /packages/backend/src
parentfix: redesign cat ears (#10039) (diff)
downloadsharkey-f01e6ef6bf061b6c49cc7d9188160e41edad421b.tar.gz
sharkey-f01e6ef6bf061b6c49cc7d9188160e41edad421b.tar.bz2
sharkey-f01e6ef6bf061b6c49cc7d9188160e41edad421b.zip
enhance(backend): リモートユーザーのチャート生成を無効にするオプションを追加
Diffstat (limited to 'packages/backend/src')
-rw-r--r--packages/backend/src/core/NoteCreateService.ts7
-rw-r--r--packages/backend/src/core/NoteDeleteService.ts9
-rw-r--r--packages/backend/src/models/entities/Meta.ts5
-rw-r--r--packages/backend/src/server/api/endpoints/admin/meta.ts5
-rw-r--r--packages/backend/src/server/api/endpoints/admin/update-meta.ts5
5 files changed, 27 insertions, 4 deletions
diff --git a/packages/backend/src/core/NoteCreateService.ts b/packages/backend/src/core/NoteCreateService.ts
index 2fc2a3d54f..10d74e4218 100644
--- a/packages/backend/src/core/NoteCreateService.ts
+++ b/packages/backend/src/core/NoteCreateService.ts
@@ -435,9 +435,12 @@ export class NoteCreateService implements OnApplicationShutdown {
createdAt: User['createdAt'];
isBot: User['isBot'];
}, data: Option, silent: boolean, tags: string[], mentionedUsers: MinimumUser[]) {
- // 統計を更新
+ const meta = await this.metaService.fetch();
+
this.notesChart.update(note, true);
- this.perUserNotesChart.update(user, note, true);
+ if (meta.enableChartsForRemoteUser || (user.host == null)) {
+ this.perUserNotesChart.update(user, note, true);
+ }
// Register host
if (this.userEntityService.isRemoteUser(user)) {
diff --git a/packages/backend/src/core/NoteDeleteService.ts b/packages/backend/src/core/NoteDeleteService.ts
index 571b625523..93cb68bbfe 100644
--- a/packages/backend/src/core/NoteDeleteService.ts
+++ b/packages/backend/src/core/NoteDeleteService.ts
@@ -16,6 +16,7 @@ import { ApDeliverManagerService } from '@/core/activitypub/ApDeliverManagerServ
import { UserEntityService } from '@/core/entities/UserEntityService.js';
import { NoteEntityService } from '@/core/entities/NoteEntityService.js';
import { bindThis } from '@/decorators.js';
+import { MetaService } from '@/core/MetaService.js';
@Injectable()
export class NoteDeleteService {
@@ -39,6 +40,7 @@ export class NoteDeleteService {
private federatedInstanceService: FederatedInstanceService,
private apRendererService: ApRendererService,
private apDeliverManagerService: ApDeliverManagerService,
+ private metaService: MetaService,
private notesChart: NotesChart,
private perUserNotesChart: PerUserNotesChart,
private instanceChart: InstanceChart,
@@ -95,9 +97,12 @@ export class NoteDeleteService {
}
//#endregion
- // 統計を更新
+ const meta = await this.metaService.fetch();
+
this.notesChart.update(note, false);
- this.perUserNotesChart.update(user, note, false);
+ if (meta.enableChartsForRemoteUser || (user.host == null)) {
+ this.perUserNotesChart.update(user, note, false);
+ }
if (this.userEntityService.isRemoteUser(user)) {
this.federatedInstanceService.fetch(user.host).then(i => {
diff --git a/packages/backend/src/models/entities/Meta.ts b/packages/backend/src/models/entities/Meta.ts
index 57338ecbd2..179fb53564 100644
--- a/packages/backend/src/models/entities/Meta.ts
+++ b/packages/backend/src/models/entities/Meta.ts
@@ -396,6 +396,11 @@ export class Meta {
})
public enableActiveEmailValidation: boolean;
+ @Column('boolean', {
+ default: true,
+ })
+ public enableChartsForRemoteUser: boolean;
+
@Column('jsonb', {
default: { },
})
diff --git a/packages/backend/src/server/api/endpoints/admin/meta.ts b/packages/backend/src/server/api/endpoints/admin/meta.ts
index ce7e0d569d..28e42e578b 100644
--- a/packages/backend/src/server/api/endpoints/admin/meta.ts
+++ b/packages/backend/src/server/api/endpoints/admin/meta.ts
@@ -239,6 +239,10 @@ export const meta = {
type: 'boolean',
optional: true, nullable: false,
},
+ enableChartsForRemoteUser: {
+ type: 'boolean',
+ optional: false, nullable: false,
+ },
policies: {
type: 'object',
optional: false, nullable: false,
@@ -337,6 +341,7 @@ export default class extends Endpoint<typeof meta, typeof paramDef> {
deeplIsPro: instance.deeplIsPro,
enableIpLogging: instance.enableIpLogging,
enableActiveEmailValidation: instance.enableActiveEmailValidation,
+ enableChartsForRemoteUser: instance.enableChartsForRemoteUser,
policies: { ...DEFAULT_POLICIES, ...instance.policies },
};
});
diff --git a/packages/backend/src/server/api/endpoints/admin/update-meta.ts b/packages/backend/src/server/api/endpoints/admin/update-meta.ts
index 2f23aca243..88c0565e4a 100644
--- a/packages/backend/src/server/api/endpoints/admin/update-meta.ts
+++ b/packages/backend/src/server/api/endpoints/admin/update-meta.ts
@@ -93,6 +93,7 @@ export const paramDef = {
objectStorageS3ForcePathStyle: { type: 'boolean' },
enableIpLogging: { type: 'boolean' },
enableActiveEmailValidation: { type: 'boolean' },
+ enableChartsForRemoteUser: { type: 'boolean' },
},
required: [],
} as const;
@@ -382,6 +383,10 @@ export default class extends Endpoint<typeof meta, typeof paramDef> {
set.enableActiveEmailValidation = ps.enableActiveEmailValidation;
}
+ if (ps.enableChartsForRemoteUser !== undefined) {
+ set.enableChartsForRemoteUser = ps.enableChartsForRemoteUser;
+ }
+
await this.metaService.update(set);
this.moderationLogService.insertModerationLog(me, 'updateMeta');
});