diff --git a/broker/src/main/java/com/xiaoleilu/loServer/action/admin/KickoffGroupMemberAction.java b/broker/src/main/java/com/xiaoleilu/loServer/action/admin/KickoffGroupMemberAction.java index 85a9f7ac..56f4eeeb 100755 --- a/broker/src/main/java/com/xiaoleilu/loServer/action/admin/KickoffGroupMemberAction.java +++ b/broker/src/main/java/com/xiaoleilu/loServer/action/admin/KickoffGroupMemberAction.java @@ -42,7 +42,7 @@ public class KickoffGroupMemberAction extends AdminAction { if (request.getNettyRequest() instanceof FullHttpRequest) { InputKickoffGroupMember inputKickoffGroupMember = getRequestBody(request.getNettyRequest(), InputKickoffGroupMember.class); if (inputKickoffGroupMember.isValide()) { - RPCCenter.getInstance().sendRequest(inputKickoffGroupMember.getOperator(), null, IMTopic.AddGroupMemberTopic, inputKickoffGroupMember.toProtoGroupRequest().toByteArray(), inputKickoffGroupMember.getOperator(), TargetEntry.Type.TARGET_TYPE_USER, new RPCCenter.Callback() { + RPCCenter.getInstance().sendRequest(inputKickoffGroupMember.getOperator(), null, IMTopic.KickoffGroupMemberTopic, inputKickoffGroupMember.toProtoGroupRequest().toByteArray(), inputKickoffGroupMember.getOperator(), TargetEntry.Type.TARGET_TYPE_USER, new RPCCenter.Callback() { @Override public void onSuccess(byte[] result) { ByteBuf byteBuf = Unpooled.buffer(); diff --git a/broker/src/main/java/io/moquette/imhandler/KickoffGroupMember.java b/broker/src/main/java/io/moquette/imhandler/KickoffGroupMember.java index fff5a4d7..6e726181 100644 --- a/broker/src/main/java/io/moquette/imhandler/KickoffGroupMember.java +++ b/broker/src/main/java/io/moquette/imhandler/KickoffGroupMember.java @@ -25,8 +25,8 @@ public class KickoffGroupMember extends GroupHandler 0) { @@ -35,7 +35,7 @@ public class KickoffGroupMember extends GroupHandler memberList) { + public ErrorCode kickoffGroupMembers(String operator, boolean isAdmin, String groupId, List memberList) { HazelcastInstance hzInstance = m_Server.getHazelcastInstance(); IMap mIMap = hzInstance.getMap(GROUPS_MAP); @@ -693,8 +693,8 @@ public class MemoryMessagesStore implements IMessagesStore { if (groupInfo == null) { return ErrorCode.ERROR_CODE_NOT_EXIST; } - if ((groupInfo.getType() == ProtoConstants.GroupType.GroupType_Restricted || groupInfo.getType() == ProtoConstants.GroupType.GroupType_Normal) - && (groupInfo.getOwner() == null || !groupInfo.getOwner().equals(operator))) { + if (!isAdmin && ((groupInfo.getType() == ProtoConstants.GroupType.GroupType_Restricted || groupInfo.getType() == ProtoConstants.GroupType.GroupType_Normal) + && (groupInfo.getOwner() == null || !groupInfo.getOwner().equals(operator)))) { return ErrorCode.ERROR_CODE_NOT_RIGHT; } diff --git a/broker/src/main/java/io/moquette/spi/IMessagesStore.java b/broker/src/main/java/io/moquette/spi/IMessagesStore.java index 253743e9..1f597747 100755 --- a/broker/src/main/java/io/moquette/spi/IMessagesStore.java +++ b/broker/src/main/java/io/moquette/spi/IMessagesStore.java @@ -104,7 +104,7 @@ public interface IMessagesStore { long insertUserMessages(String sender, int conversationType, String target, int line, int messageContentType, String userId, long messageId); WFCMessage.GroupInfo createGroup(String operator, WFCMessage.GroupInfo groupInfo, List memberList); ErrorCode addGroupMembers(String operator, boolean isAdmin, String groupId, List memberList); - ErrorCode kickoffGroupMembers(String operator, String groupId, List memberList); + ErrorCode kickoffGroupMembers(String operator, boolean isAdmin, String groupId, List memberList); ErrorCode quitGroup(String operator, String groupId); ErrorCode dismissGroup(String operator, String groupId, boolean isAdmin); ErrorCode modifyGroupInfo(String operator, String groupId, int modifyType, String value);