summaryrefslogtreecommitdiff
path: root/packages/backend/src/server/api
diff options
context:
space:
mode:
authorsyuilo <4439005+syuilo@users.noreply.github.com>2025-03-25 15:51:45 +0900
committersyuilo <4439005+syuilo@users.noreply.github.com>2025-03-25 15:51:45 +0900
commita01ae38a07f949cbcd5ce555cd90e8570bb985cc (patch)
tree9227b0625a95a97ccf11970b479ac86b1f42a57b /packages/backend/src/server/api
parentenhance: チャットルームに招待されたときの通知を追加 (diff)
downloadsharkey-a01ae38a07f949cbcd5ce555cd90e8570bb985cc.tar.gz
sharkey-a01ae38a07f949cbcd5ce555cd90e8570bb985cc.tar.bz2
sharkey-a01ae38a07f949cbcd5ce555cd90e8570bb985cc.zip
enhance: モデレーターがチャットルームの内容を確認・削除できるように
Diffstat (limited to 'packages/backend/src/server/api')
-rw-r--r--packages/backend/src/server/api/endpoints/chat/messages/room-timeline.ts2
-rw-r--r--packages/backend/src/server/api/endpoints/chat/rooms/delete.ts9
2 files changed, 8 insertions, 3 deletions
diff --git a/packages/backend/src/server/api/endpoints/chat/messages/room-timeline.ts b/packages/backend/src/server/api/endpoints/chat/messages/room-timeline.ts
index ccc0030403..7aef35db04 100644
--- a/packages/backend/src/server/api/endpoints/chat/messages/room-timeline.ts
+++ b/packages/backend/src/server/api/endpoints/chat/messages/room-timeline.ts
@@ -59,7 +59,7 @@ export default class extends Endpoint<typeof meta, typeof paramDef> { // eslint-
throw new ApiError(meta.errors.noSuchRoom);
}
- if (!(await this.chatService.isRoomMember(room, me.id))) {
+ if (!await this.chatService.hasPermissionToViewRoomTimeline(me.id, room)) {
throw new ApiError(meta.errors.noSuchRoom);
}
diff --git a/packages/backend/src/server/api/endpoints/chat/rooms/delete.ts b/packages/backend/src/server/api/endpoints/chat/rooms/delete.ts
index 2ef0a778f1..1d77a06dd8 100644
--- a/packages/backend/src/server/api/endpoints/chat/rooms/delete.ts
+++ b/packages/backend/src/server/api/endpoints/chat/rooms/delete.ts
@@ -42,11 +42,16 @@ export default class extends Endpoint<typeof meta, typeof paramDef> { // eslint-
private chatService: ChatService,
) {
super(meta, paramDef, async (ps, me) => {
- const room = await this.chatService.findMyRoomById(me.id, ps.roomId);
+ const room = await this.chatService.findRoomById(ps.roomId);
if (room == null) {
throw new ApiError(meta.errors.noSuchRoom);
}
- await this.chatService.deleteRoom(room);
+
+ if (!await this.chatService.hasPermissionToDeleteRoom(me.id, room)) {
+ throw new ApiError(meta.errors.noSuchRoom);
+ }
+
+ await this.chatService.deleteRoom(room, me);
});
}
}