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) {