From ec18e40eb04a910c3d0b6f116b36cf61df2e1d76 Mon Sep 17 00:00:00 2001 From: imhao183 Date: Mon, 22 Jun 2020 21:49:07 +0800 Subject: [PATCH] =?UTF-8?q?normal=20=E7=B1=BB=E5=9E=8B=E7=9A=84=E7=BE=A4?= =?UTF-8?q?=E7=BB=84=E7=BE=A4=E6=88=90=E5=91=98=E5=8F=AF=E4=BB=A5=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E7=BE=A4=E5=90=8D=E7=A7=B0=E5=A4=B4=E5=83=8F=E5=92=8C?= =?UTF-8?q?extra=EF=BC=8C=E7=BE=A4=E4=B8=BB=E5=92=8C=E7=BE=A4=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E5=8F=AF=E4=BB=A5=E4=BF=AE=E6=94=B9=E6=89=80=E6=9C=89?= =?UTF-8?q?=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../persistence/MemoryMessagesStore.java | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/broker/src/main/java/io/moquette/persistence/MemoryMessagesStore.java b/broker/src/main/java/io/moquette/persistence/MemoryMessagesStore.java index 5ad41eeb..b8b962ca 100755 --- a/broker/src/main/java/io/moquette/persistence/MemoryMessagesStore.java +++ b/broker/src/main/java/io/moquette/persistence/MemoryMessagesStore.java @@ -1063,15 +1063,23 @@ public class MemoryMessagesStore implements IMessagesStore { } if (oldInfo.getType() == ProtoConstants.GroupType.GroupType_Normal) { - if (oldInfo.getOwner() == null) { - return ErrorCode.ERROR_CODE_NOT_RIGHT; - } - if (!oldInfo.getOwner().equals(operator)) { - if (modifyType == Modify_Group_Extra) { + if (!operator.equals(oldInfo.getOwner())) { + WFCMessage.GroupMember gm = getGroupMember(groupId, operator); + boolean isManager = false; + if (gm != null && gm.getType() == GroupMemberType_Manager) { + isManager = true; + } + if (!isManager && modifyType != Modify_Group_Name && modifyType != Modify_Group_Portrait && modifyType != Modify_Group_Extra) { return ErrorCode.ERROR_CODE_NOT_RIGHT; } } } + + if (oldInfo.getType() == ProtoConstants.GroupType.GroupType_Free) { + if (modifyType != Modify_Group_Name && modifyType != Modify_Group_Portrait && modifyType != Modify_Group_Extra) { + return ErrorCode.ERROR_CODE_NOT_RIGHT; + } + } }