From d40835aa1882da878871add148740fc0c3974d47 Mon Sep 17 00:00:00 2001 From: heavyrian2012 Date: Mon, 3 Apr 2023 16:54:36 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=A3=E5=86=B3grouptype=E4=B8=BA0=E6=97=B6?= =?UTF-8?q?=E8=A2=AB=E5=88=A0=E9=99=A4=E7=94=A8=E6=88=B7=E8=BF=98=E8=83=BD?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=BE=A4=E5=90=8D=E7=A7=B0=E7=9A=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../io/moquette/persistence/MemoryMessagesStore.java | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/broker/src/main/java/io/moquette/persistence/MemoryMessagesStore.java b/broker/src/main/java/io/moquette/persistence/MemoryMessagesStore.java index 4bb48195..ea352863 100755 --- a/broker/src/main/java/io/moquette/persistence/MemoryMessagesStore.java +++ b/broker/src/main/java/io/moquette/persistence/MemoryMessagesStore.java @@ -1632,13 +1632,17 @@ public class MemoryMessagesStore implements IMessagesStore { return ErrorCode.ERROR_CODE_NOT_RIGHT; } + WFCMessage.GroupMember gm = getGroupMember(groupId, operator); + if (gm == null || gm.getType() == GroupMemberType_Removed) { + return ErrorCode.ERROR_CODE_NOT_IN_GROUP; + } + if (oldInfo.getType() == ProtoConstants.GroupType.GroupType_Restricted || oldInfo.getType() == ProtoConstants.GroupType.GroupType_Organization) { boolean isAllow = false; if ((oldInfo.getOwner() != null && oldInfo.getOwner().equals(operator))) { isAllow = true; } else { - WFCMessage.GroupMember gm = getGroupMember(groupId, operator); - if (gm != null && gm.getType() == GroupMemberType_Manager) { + if (gm.getType() == GroupMemberType_Manager) { isAllow = true; } } @@ -1649,9 +1653,8 @@ public class MemoryMessagesStore implements IMessagesStore { if (oldInfo.getType() == ProtoConstants.GroupType.GroupType_Normal) { if (!operator.equals(oldInfo.getOwner())) { - WFCMessage.GroupMember gm = getGroupMember(groupId, operator); boolean isManager = false; - if (gm != null && gm.getType() == GroupMemberType_Manager) { + if (gm.getType() == GroupMemberType_Manager) { isManager = true; } if (!isManager && modifyType != Modify_Group_Name && modifyType != Modify_Group_Portrait && modifyType != Modify_Group_Extra) {