From 13130f3600bc6d98fb9ab3bcc3c46a42dff15f2c Mon Sep 17 00:00:00 2001
From: syuilo <4439005+syuilo@users.noreply.github.com>
Date: Sat, 22 Feb 2025 10:49:05 +0900
Subject: [PATCH] wip
---
packages/backend/src/core/SystemAccountService.ts | 2 +-
.../backend/src/core/entities/UserEntityService.ts | 10 +++++++++-
packages/frontend/src/pages/admin-user.vue | 2 +-
packages/frontend/src/pages/user/home.vue | 2 +-
4 files changed, 12 insertions(+), 4 deletions(-)
diff --git a/packages/backend/src/core/SystemAccountService.ts b/packages/backend/src/core/SystemAccountService.ts
index 4805847788..710e797213 100644
--- a/packages/backend/src/core/SystemAccountService.ts
+++ b/packages/backend/src/core/SystemAccountService.ts
@@ -66,7 +66,7 @@ export class SystemAccountService {
return systemAccount.user as MiLocalUser;
} else {
const created = await this.createCorrespondingUser(type, {
- username: `system.${type}`, // NOTE: (できれば避けたいが)system.から始まるかどうかでシステムアカウントかどうかを判定している処理もあるので変えないように
+ username: `system.${type}`, // NOTE: (できれば避けたいが) . が含まれるかどうかでシステムアカウントかどうかを判定している処理もあるので変えないように
name: this.meta.name,
});
this.cache.set(type, created);
diff --git a/packages/backend/src/core/entities/UserEntityService.ts b/packages/backend/src/core/entities/UserEntityService.ts
index fbd3892dd4..69f698d9cb 100644
--- a/packages/backend/src/core/entities/UserEntityService.ts
+++ b/packages/backend/src/core/entities/UserEntityService.ts
@@ -28,6 +28,7 @@ import type {
FollowingsRepository,
FollowRequestsRepository,
MiFollowing,
+ MiMeta,
MiUserNotePining,
MiUserProfile,
MutingsRepository,
@@ -100,6 +101,9 @@ export class UserEntityService implements OnModuleInit {
@Inject(DI.config)
private config: Config,
+ @Inject(DI.meta)
+ private meta: MiMeta,
+
@Inject(DI.redis)
private redisClient: Redis.Redis,
@@ -381,7 +385,11 @@ export class UserEntityService implements OnModuleInit {
@bindThis
public getIdenticonUrl(user: MiUser): string {
- return `${this.config.url}/identicon/${user.username.toLowerCase()}@${user.host ?? this.config.host}`;
+ if ((user.host == null || user.host === this.config.host) && user.username.includes('.') && this.meta.iconUrl) { // ローカルのシステムアカウントの場合
+ return this.meta.iconUrl;
+ } else {
+ return `${this.config.url}/identicon/${user.username.toLowerCase()}@${user.host ?? this.config.host}`;
+ }
}
@bindThis
diff --git a/packages/frontend/src/pages/admin-user.vue b/packages/frontend/src/pages/admin-user.vue
index 1220b2f6aa..61bb0d47e0 100644
--- a/packages/frontend/src/pages/admin-user.vue
+++ b/packages/frontend/src/pages/admin-user.vue
@@ -22,7 +22,7 @@ SPDX-License-Identifier: AGPL-3.0-only
-