summaryrefslogtreecommitdiff
path: root/packages
diff options
context:
space:
mode:
authorかっこかり <67428053+kakkokari-gtyih@users.noreply.github.com>2025-08-09 14:25:31 +0900
committerGitHub <noreply@github.com>2025-08-09 14:25:31 +0900
commitb1b335d55a96764807c8ca2c2ec160e3573181ef (patch)
tree5444d0ce058a4c24613494b2ab87ea7bb07c541f /packages
parentfix(deps): regenerate lockfile (#16384) (diff)
downloadmisskey-b1b335d55a96764807c8ca2c2ec160e3573181ef.tar.gz
misskey-b1b335d55a96764807c8ca2c2ec160e3573181ef.tar.bz2
misskey-b1b335d55a96764807c8ca2c2ec160e3573181ef.zip
fix: チャットの利用可否ポリシーの考慮漏れを修正 (#16259)
* fix: チャットの利用可否ポリシーの考慮漏れを修正 * :art:
Diffstat (limited to 'packages')
-rw-r--r--packages/backend/src/server/api/endpoints/chat/read-all.ts2
-rw-r--r--packages/backend/src/server/api/endpoints/drive/files/attached-chat-messages.ts10
-rw-r--r--packages/frontend/src/pages/settings/other.vue6
3 files changed, 15 insertions, 3 deletions
diff --git a/packages/backend/src/server/api/endpoints/chat/read-all.ts b/packages/backend/src/server/api/endpoints/chat/read-all.ts
index 2ed9497eef..e2d9601aa6 100644
--- a/packages/backend/src/server/api/endpoints/chat/read-all.ts
+++ b/packages/backend/src/server/api/endpoints/chat/read-all.ts
@@ -32,6 +32,8 @@ export default class extends Endpoint<typeof meta, typeof paramDef> { // eslint-
private chatService: ChatService,
) {
super(meta, paramDef, async (ps, me) => {
+ await this.chatService.checkChatAvailability(me.id, 'read');
+
await this.chatService.readAllChatMessages(me.id);
});
}
diff --git a/packages/backend/src/server/api/endpoints/drive/files/attached-chat-messages.ts b/packages/backend/src/server/api/endpoints/drive/files/attached-chat-messages.ts
index 5be477f468..b34ac4abd1 100644
--- a/packages/backend/src/server/api/endpoints/drive/files/attached-chat-messages.ts
+++ b/packages/backend/src/server/api/endpoints/drive/files/attached-chat-messages.ts
@@ -10,6 +10,7 @@ import { QueryService } from '@/core/QueryService.js';
import { DI } from '@/di-symbols.js';
import { RoleService } from '@/core/RoleService.js';
import { ChatEntityService } from '@/core/entities/ChatEntityService.js';
+import { ChatService } from '@/core/ChatService.js';
import { ApiError } from '../../../error.js';
export const meta = {
@@ -60,14 +61,21 @@ export default class extends Endpoint<typeof meta, typeof paramDef> { // eslint-
@Inject(DI.chatMessagesRepository)
private chatMessagesRepository: ChatMessagesRepository,
+ private chatService: ChatService,
private chatEntityService: ChatEntityService,
private queryService: QueryService,
private roleService: RoleService,
) {
super(meta, paramDef, async (ps, me) => {
+ const isModerator = await this.roleService.isModerator(me);
+
+ if (!isModerator) {
+ await this.chatService.checkChatAvailability(me.id, 'read');
+ }
+
const file = await this.driveFilesRepository.findOneBy({
id: ps.fileId,
- userId: await this.roleService.isModerator(me) ? undefined : me.id,
+ userId: isModerator ? undefined : me.id,
});
if (file == null) {
diff --git a/packages/frontend/src/pages/settings/other.vue b/packages/frontend/src/pages/settings/other.vue
index c896ee8232..30ab2ce11e 100644
--- a/packages/frontend/src/pages/settings/other.vue
+++ b/packages/frontend/src/pages/settings/other.vue
@@ -128,9 +128,11 @@ SPDX-License-Identifier: AGPL-3.0-only
<hr>
- <MkButton @click="readAllChatMessages">Read all chat messages</MkButton>
+ <template v-if="$i.policies.chatAvailability !== 'unavailable'">
+ <MkButton @click="readAllChatMessages">Read all chat messages</MkButton>
- <hr>
+ <hr>
+ </template>
<FormSlot>
<MkButton danger @click="migrate"><i class="ti ti-refresh"></i> {{ i18n.ts.migrateOldSettings }}</MkButton>