From 4f5bb66ef3754d7f4db6ecdbef9310b11b9b99a5 Mon Sep 17 00:00:00 2001 From: JanooGwan Date: Thu, 19 Feb 2026 21:25:35 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20=EB=8F=99=EC=95=84=EB=A6=AC=20=EB=B6=80?= =?UTF-8?q?=EC=9B=90=20=ED=83=88=ED=87=B4=20=EA=B4=80=EB=A0=A8=20=EB=B2=84?= =?UTF-8?q?=EA=B7=B8=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/chat/repository/ChatRoomMemberRepository.java | 4 ++-- .../domain/club/service/ClubMemberManagementService.java | 9 ++++++--- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/main/java/gg/agit/konect/domain/chat/repository/ChatRoomMemberRepository.java b/src/main/java/gg/agit/konect/domain/chat/repository/ChatRoomMemberRepository.java index e524a0715..44c215b60 100644 --- a/src/main/java/gg/agit/konect/domain/chat/repository/ChatRoomMemberRepository.java +++ b/src/main/java/gg/agit/konect/domain/chat/repository/ChatRoomMemberRepository.java @@ -61,7 +61,7 @@ boolean existsByChatRoomIdAndUserId( """) List findByUserId(@Param("userId") Integer userId); - @Modifying(clearAutomatically = true) + @Modifying @Query(""" UPDATE ChatRoomMember crm SET crm.lastReadAt = :lastReadAt @@ -75,7 +75,7 @@ int updateLastReadAtIfOlder( @Param("lastReadAt") LocalDateTime lastReadAt ); - @Modifying(clearAutomatically = true) + @Modifying @Query(""" DELETE FROM ChatRoomMember crm WHERE crm.id.chatRoomId = :chatRoomId diff --git a/src/main/java/gg/agit/konect/domain/club/service/ClubMemberManagementService.java b/src/main/java/gg/agit/konect/domain/club/service/ClubMemberManagementService.java index acf2bba40..de7dbee2f 100644 --- a/src/main/java/gg/agit/konect/domain/club/service/ClubMemberManagementService.java +++ b/src/main/java/gg/agit/konect/domain/club/service/ClubMemberManagementService.java @@ -244,15 +244,18 @@ public void removeMember(Integer clubId, Integer targetUserId, Integer requester clubPermissionValidator.validateLeaderAccess(clubId, requesterId); - ClubMember requester = clubMemberRepository.getByClubIdAndUserId(clubId, requesterId); + User requesterUser = userRepository.getById(requesterId); ClubMember target = clubMemberRepository.getByClubIdAndUserId(clubId, targetUserId); if (target.isPresident()) { throw CustomException.of(CANNOT_DELETE_CLUB_PRESIDENT); } - if (!requester.canManage(target)) { - throw CustomException.of(CANNOT_MANAGE_HIGHER_POSITION); + if (!requesterUser.isAdmin()) { + ClubMember requester = clubMemberRepository.getByClubIdAndUserId(clubId, requesterId); + if (!requester.canManage(target)) { + throw CustomException.of(CANNOT_MANAGE_HIGHER_POSITION); + } } if (target.getClubPosition() != MEMBER) {