mirror of
				https://codeberg.org/yeentown/barkey.git
				synced 2025-11-03 23:14:13 +00:00 
			
		
		
		
	enhance(backend): リモートユーザーのチャート生成を無効にするオプションを追加
This commit is contained in:
		
							parent
							
								
									7f9a41b05c
								
							
						
					
					
						commit
						f01e6ef6bf
					
				
					 9 changed files with 47 additions and 5 deletions
				
			
		| 
						 | 
				
			
			@ -21,7 +21,7 @@
 | 
			
		|||
- センシティブワードの一覧にピン留めユーザーのIDが表示される問題を修正
 | 
			
		||||
 | 
			
		||||
### Server
 | 
			
		||||
-
 | 
			
		||||
- リモートユーザーのチャート生成を無効にするオプションを追加
 | 
			
		||||
 | 
			
		||||
## 13.10.2
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -981,6 +981,7 @@ drivecleaner: "ドライブクリーナー"
 | 
			
		|||
retryAllQueuesNow: "すべてのキューを今すぐ再試行"
 | 
			
		||||
retryAllQueuesConfirmTitle: "今すぐ再試行しますか?"
 | 
			
		||||
retryAllQueuesConfirmText: "一時的にサーバーの負荷が増大することがあります。"
 | 
			
		||||
enableChartsForRemoteUser: "リモートユーザーのチャートを生成"
 | 
			
		||||
 | 
			
		||||
_achievements:
 | 
			
		||||
  earnedAt: "獲得日時"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1,11 @@
 | 
			
		|||
export class enableChartsForRemoteUser1679639483253 {
 | 
			
		||||
    name = 'enableChartsForRemoteUser1679639483253'
 | 
			
		||||
 | 
			
		||||
    async up(queryRunner) {
 | 
			
		||||
        await queryRunner.query(`ALTER TABLE "meta" ADD "enableChartsForRemoteUser" boolean NOT NULL DEFAULT true`);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    async down(queryRunner) {
 | 
			
		||||
        await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "enableChartsForRemoteUser"`);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -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)) {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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 => {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -396,6 +396,11 @@ export class Meta {
 | 
			
		|||
	})
 | 
			
		||||
	public enableActiveEmailValidation: boolean;
 | 
			
		||||
 | 
			
		||||
	@Column('boolean', {
 | 
			
		||||
		default: true,
 | 
			
		||||
	})
 | 
			
		||||
	public enableChartsForRemoteUser: boolean;
 | 
			
		||||
 | 
			
		||||
	@Column('jsonb', {
 | 
			
		||||
		default: { },
 | 
			
		||||
	})
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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 },
 | 
			
		||||
			};
 | 
			
		||||
		});
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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');
 | 
			
		||||
		});
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -43,6 +43,10 @@
 | 
			
		|||
							<MkSwitch v-model="emailRequiredForSignup">
 | 
			
		||||
								<template #label>{{ i18n.ts.emailRequiredForSignup }}</template>
 | 
			
		||||
							</MkSwitch>
 | 
			
		||||
 | 
			
		||||
							<MkSwitch v-model="enableChartsForRemoteUser">
 | 
			
		||||
								<template #label>{{ i18n.ts.enableChartsForRemoteUser }}</template>
 | 
			
		||||
							</MkSwitch>
 | 
			
		||||
						</div>
 | 
			
		||||
					</FormSection>
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -175,6 +179,7 @@ let cacheRemoteFiles: boolean = $ref(false);
 | 
			
		|||
let enableRegistration: boolean = $ref(false);
 | 
			
		||||
let emailRequiredForSignup: boolean = $ref(false);
 | 
			
		||||
let enableServiceWorker: boolean = $ref(false);
 | 
			
		||||
let enableChartsForRemoteUser: boolean = $ref(false);
 | 
			
		||||
let swPublicKey: any = $ref(null);
 | 
			
		||||
let swPrivateKey: any = $ref(null);
 | 
			
		||||
let deeplAuthKey: string = $ref('');
 | 
			
		||||
| 
						 | 
				
			
			@ -198,6 +203,7 @@ async function init() {
 | 
			
		|||
	enableRegistration = !meta.disableRegistration;
 | 
			
		||||
	emailRequiredForSignup = meta.emailRequiredForSignup;
 | 
			
		||||
	enableServiceWorker = meta.enableServiceWorker;
 | 
			
		||||
	enableChartsForRemoteUser = meta.enableChartsForRemoteUser;
 | 
			
		||||
	swPublicKey = meta.swPublickey;
 | 
			
		||||
	swPrivateKey = meta.swPrivateKey;
 | 
			
		||||
	deeplAuthKey = meta.deeplAuthKey;
 | 
			
		||||
| 
						 | 
				
			
			@ -222,6 +228,7 @@ function save() {
 | 
			
		|||
		disableRegistration: !enableRegistration,
 | 
			
		||||
		emailRequiredForSignup,
 | 
			
		||||
		enableServiceWorker,
 | 
			
		||||
		enableChartsForRemoteUser,
 | 
			
		||||
		swPublicKey,
 | 
			
		||||
		swPrivateKey,
 | 
			
		||||
		deeplAuthKey,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		
		Reference in a new issue