update
This commit is contained in:
@@ -42,7 +42,7 @@ public class DismissGroupAction extends AdminAction {
|
|||||||
if (request.getNettyRequest() instanceof FullHttpRequest) {
|
if (request.getNettyRequest() instanceof FullHttpRequest) {
|
||||||
InputDismissGroup inputDismissGroup = getRequestBody(request.getNettyRequest(), InputDismissGroup.class);
|
InputDismissGroup inputDismissGroup = getRequestBody(request.getNettyRequest(), InputDismissGroup.class);
|
||||||
if (inputDismissGroup.isValide()) {
|
if (inputDismissGroup.isValide()) {
|
||||||
RPCCenter.getInstance().sendRequest(inputDismissGroup.getOperator(), null, IMTopic.AddGroupMemberTopic, inputDismissGroup.toProtoGroupRequest().toByteArray(), inputDismissGroup.getOperator(), TargetEntry.Type.TARGET_TYPE_USER, new RPCCenter.Callback() {
|
RPCCenter.getInstance().sendRequest(inputDismissGroup.getOperator(), null, IMTopic.DismissGroupTopic, inputDismissGroup.toProtoGroupRequest().toByteArray(), inputDismissGroup.getOperator(), TargetEntry.Type.TARGET_TYPE_USER, new RPCCenter.Callback() {
|
||||||
@Override
|
@Override
|
||||||
public void onSuccess(byte[] result) {
|
public void onSuccess(byte[] result) {
|
||||||
ByteBuf byteBuf = Unpooled.buffer();
|
ByteBuf byteBuf = Unpooled.buffer();
|
||||||
|
|||||||
@@ -24,9 +24,9 @@ public class DismissGroupHandler extends GroupHandler<WFCMessage.DismissGroupReq
|
|||||||
WFCMessage.GroupInfo groupInfo = m_messagesStore.getGroupInfo(request.getGroupId());
|
WFCMessage.GroupInfo groupInfo = m_messagesStore.getGroupInfo(request.getGroupId());
|
||||||
ErrorCode errorCode;
|
ErrorCode errorCode;
|
||||||
if (groupInfo == null) {
|
if (groupInfo == null) {
|
||||||
errorCode = m_messagesStore.dismissGroup(fromUser, request.getGroupId());
|
errorCode = m_messagesStore.dismissGroup(fromUser, request.getGroupId(), isAdmin);
|
||||||
|
|
||||||
} else if ((groupInfo.getType() == ProtoConstants.GroupType.GroupType_Normal || groupInfo.getType() == ProtoConstants.GroupType.GroupType_Restricted)
|
} else if (isAdmin || (groupInfo.getType() == ProtoConstants.GroupType.GroupType_Normal || groupInfo.getType() == ProtoConstants.GroupType.GroupType_Restricted)
|
||||||
&& groupInfo.getOwner() != null && groupInfo.getOwner().equals(fromUser)) {
|
&& groupInfo.getOwner() != null && groupInfo.getOwner().equals(fromUser)) {
|
||||||
|
|
||||||
//send notify message first, then dismiss group
|
//send notify message first, then dismiss group
|
||||||
@@ -36,7 +36,7 @@ public class DismissGroupHandler extends GroupHandler<WFCMessage.DismissGroupReq
|
|||||||
WFCMessage.MessageContent content = new GroupNotificationBinaryContent(groupInfo.getTargetId(), fromUser, null, "").getDismissGroupNotifyContent();
|
WFCMessage.MessageContent content = new GroupNotificationBinaryContent(groupInfo.getTargetId(), fromUser, null, "").getDismissGroupNotifyContent();
|
||||||
sendGroupNotification(fromUser, request.getGroupId(), request.getToLineList(), content);
|
sendGroupNotification(fromUser, request.getGroupId(), request.getToLineList(), content);
|
||||||
}
|
}
|
||||||
errorCode = m_messagesStore.dismissGroup(fromUser, request.getGroupId());
|
errorCode = m_messagesStore.dismissGroup(fromUser, request.getGroupId(), isAdmin);
|
||||||
} else {
|
} else {
|
||||||
errorCode = ErrorCode.ERROR_CODE_NOT_RIGHT;
|
errorCode = ErrorCode.ERROR_CODE_NOT_RIGHT;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -749,7 +749,7 @@ public class MemoryMessagesStore implements IMessagesStore {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ErrorCode dismissGroup(String operator, String groupId) {
|
public ErrorCode dismissGroup(String operator, String groupId, boolean isAdmin) {
|
||||||
HazelcastInstance hzInstance = m_Server.getHazelcastInstance();
|
HazelcastInstance hzInstance = m_Server.getHazelcastInstance();
|
||||||
IMap<String, WFCMessage.GroupInfo> mIMap = hzInstance.getMap(GROUPS_MAP);
|
IMap<String, WFCMessage.GroupInfo> mIMap = hzInstance.getMap(GROUPS_MAP);
|
||||||
|
|
||||||
@@ -762,9 +762,9 @@ public class MemoryMessagesStore implements IMessagesStore {
|
|||||||
return ErrorCode.ERROR_CODE_NOT_EXIST;
|
return ErrorCode.ERROR_CODE_NOT_EXIST;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (groupInfo.getType() == ProtoConstants.GroupType.GroupType_Free ||
|
if (!isAdmin && (groupInfo.getType() == ProtoConstants.GroupType.GroupType_Free ||
|
||||||
(groupInfo.getType() == ProtoConstants.GroupType.GroupType_Restricted || groupInfo.getType() == ProtoConstants.GroupType.GroupType_Normal)
|
(groupInfo.getType() == ProtoConstants.GroupType.GroupType_Restricted || groupInfo.getType() == ProtoConstants.GroupType.GroupType_Normal)
|
||||||
&& (groupInfo.getOwner() == null || !groupInfo.getOwner().equals(operator))) {
|
&& (groupInfo.getOwner() == null || !groupInfo.getOwner().equals(operator)))) {
|
||||||
return ErrorCode.ERROR_CODE_NOT_RIGHT;
|
return ErrorCode.ERROR_CODE_NOT_RIGHT;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -104,7 +104,7 @@ public interface IMessagesStore {
|
|||||||
ErrorCode addGroupMembers(String operator, String groupId, List<WFCMessage.GroupMember> memberList);
|
ErrorCode addGroupMembers(String operator, String groupId, List<WFCMessage.GroupMember> memberList);
|
||||||
ErrorCode kickoffGroupMembers(String operator, String groupId, List<String> memberList);
|
ErrorCode kickoffGroupMembers(String operator, String groupId, List<String> memberList);
|
||||||
ErrorCode quitGroup(String operator, String groupId);
|
ErrorCode quitGroup(String operator, String groupId);
|
||||||
ErrorCode dismissGroup(String operator, String groupId);
|
ErrorCode dismissGroup(String operator, String groupId, boolean isAdmin);
|
||||||
ErrorCode modifyGroupInfo(String operator, String groupId, int modifyType, String value);
|
ErrorCode modifyGroupInfo(String operator, String groupId, int modifyType, String value);
|
||||||
ErrorCode modifyGroupAlias(String operator, String groupId, String alias);
|
ErrorCode modifyGroupAlias(String operator, String groupId, String alias);
|
||||||
List<WFCMessage.GroupInfo> getGroupInfos(List<WFCMessage.UserRequest> requests);
|
List<WFCMessage.GroupInfo> getGroupInfos(List<WFCMessage.UserRequest> requests);
|
||||||
|
|||||||
@@ -130,6 +130,8 @@ public class Main {
|
|||||||
//***********************************************
|
//***********************************************
|
||||||
//**** 群组相关API
|
//**** 群组相关API
|
||||||
//***********************************************
|
//***********************************************
|
||||||
|
IMResult<Void> voidIMResult1 = GroupAdmin.dismissGroup("user1", "groupId1", null, null);
|
||||||
|
|
||||||
PojoGroupInfo groupInfo = new PojoGroupInfo();
|
PojoGroupInfo groupInfo = new PojoGroupInfo();
|
||||||
groupInfo.setTarget_id("groupId1");
|
groupInfo.setTarget_id("groupId1");
|
||||||
groupInfo.setOwner("user1");
|
groupInfo.setOwner("user1");
|
||||||
|
|||||||
Reference in New Issue
Block a user