当禁止私聊时可以配置例外的线路

This commit is contained in:
heavyrian2012
2024-12-06 16:06:04 +08:00
parent 03894aea9a
commit f603a677ea
6 changed files with 24 additions and 4 deletions
+3
View File
@@ -95,6 +95,9 @@ message.disable_stranger_chat false
##当禁止陌生人聊天时,允许聊天的用户id,比如管理员或者文件传输助手等。用户id以英文逗号分割。 ##当禁止陌生人聊天时,允许聊天的用户id,比如管理员或者文件传输助手等。用户id以英文逗号分割。
message.allow_stranger_chat_list admin,FireRobot,wfc_file_transfer message.allow_stranger_chat_list admin,FireRobot,wfc_file_transfer
##当禁止陌生人聊天时,允许聊天的线路。
#message.allow_stranger_line 100,101
##黑名单策略,0 发送失败,返回被拉黑的错误码;1 发送成功但消息被服务器直接丢弃 ##黑名单策略,0 发送失败,返回被拉黑的错误码;1 发送成功但消息被服务器直接丢弃
message.blacklist.strategy 0 message.blacklist.strategy 0
@@ -152,6 +152,7 @@ public final class BrokerConstants {
public static final String MESSAGE_Disable_Stranger_Chat = "message.disable_stranger_chat"; public static final String MESSAGE_Disable_Stranger_Chat = "message.disable_stranger_chat";
public static final String MESSAGE_Allow_Stranger_Chat_List = "message.allow_stranger_chat_list"; public static final String MESSAGE_Allow_Stranger_Chat_List = "message.allow_stranger_chat_list";
public static final String MESSAGE_Allow_Stranger_Line = "message.allow_stranger_line";
public static final String MESSAGE_Blacklist_Strategy = "message.blacklist.strategy"; public static final String MESSAGE_Blacklist_Strategy = "message.blacklist.strategy";
public static final String MESSAGE_Blacklist_Allow_Send = "message.blacklist.allow_send_to_black"; public static final String MESSAGE_Blacklist_Allow_Send = "message.blacklist.allow_send_to_black";
@@ -152,7 +152,7 @@ public class SendMessageHandler extends IMHandler<WFCMessage.Message> {
if (message.getConversation().getType() == ProtoConstants.ConversationType.ConversationType_Private) { if (message.getConversation().getType() == ProtoConstants.ConversationType.ConversationType_Private) {
if(!m_messagesStore.getBlackListExceptionTypes().contains(message.getContent().getType())) { if(!m_messagesStore.getBlackListExceptionTypes().contains(message.getContent().getType())) {
errorCode = m_messagesStore.isAllowUserMessage(message.getConversation().getTarget(), fromUser); errorCode = m_messagesStore.isAllowUserMessage(message.getConversation().getTarget(), fromUser, message.getConversation().getLine());
if (errorCode != ErrorCode.ERROR_CODE_SUCCESS) { if (errorCode != ErrorCode.ERROR_CODE_SUCCESS) {
if (errorCode == ErrorCode.ERROR_CODE_IN_BLACK_LIST && mBlacklistStrategy != ProtoConstants.BlacklistStrategy.Message_Reject) { if (errorCode == ErrorCode.ERROR_CODE_IN_BLACK_LIST && mBlacklistStrategy != ProtoConstants.BlacklistStrategy.Message_Reject) {
ignoreMsg = true; ignoreMsg = true;
@@ -165,6 +165,7 @@ public class MemoryMessagesStore implements IMessagesStore {
private boolean mMobileDefaultSilentWhenPCOnline = true; private boolean mMobileDefaultSilentWhenPCOnline = true;
private boolean mDisableStrangerChat = false; private boolean mDisableStrangerChat = false;
private Set<String> mAllowStrangerChatSet = new HashSet<>(); private Set<String> mAllowStrangerChatSet = new HashSet<>();
private Set<Integer> mAllowStrangerLineSet = new HashSet<>();
private boolean mDisableStrangerAddGroup = false; private boolean mDisableStrangerAddGroup = false;
private boolean mIDUseUUID = true; private boolean mIDUseUUID = true;
@@ -265,6 +266,18 @@ public class MemoryMessagesStore implements IMessagesStore {
e.printStackTrace(); e.printStackTrace();
} }
try {
String allowStrangerList = m_Server.getConfig().getProperty(BrokerConstants.MESSAGE_Allow_Stranger_Line);
if(!StringUtil.isNullOrEmptyAfterTrim(allowStrangerList)) {
allowStrangerList = allowStrangerList.replace(",", ",");
for (String s : allowStrangerList.split(",")) {
mAllowStrangerLineSet.add(Integer.parseInt(s.trim()));
}
}
} catch (Exception e) {
e.printStackTrace();
}
try { try {
String forcePushTypes = m_Server.getConfig().getProperty(BrokerConstants.MESSAGE_Force_Push_Types); String forcePushTypes = m_Server.getConfig().getProperty(BrokerConstants.MESSAGE_Force_Push_Types);
if(!StringUtil.isNullOrEmptyAfterTrim(forcePushTypes)) { if(!StringUtil.isNullOrEmptyAfterTrim(forcePushTypes)) {
@@ -3196,7 +3209,7 @@ public class MemoryMessagesStore implements IMessagesStore {
} }
@Override @Override
public ErrorCode isAllowUserMessage(String targetUser, String fromUser) { public ErrorCode isAllowUserMessage(String targetUser, String fromUser, int line) {
HazelcastInstance hzInstance = m_Server.getHazelcastInstance(); HazelcastInstance hzInstance = m_Server.getHazelcastInstance();
MultiMap<String, FriendData> friendsMap = hzInstance.getMultiMap(USER_FRIENDS); MultiMap<String, FriendData> friendsMap = hzInstance.getMultiMap(USER_FRIENDS);
@@ -3223,7 +3236,7 @@ public class MemoryMessagesStore implements IMessagesStore {
if (mDisableStrangerChat) { if (mDisableStrangerChat) {
//在禁止私聊时,是否是允许私聊的用户id //在禁止私聊时,是否是允许私聊的用户id
if(mAllowStrangerChatSet.contains(targetUser) || mAllowStrangerChatSet.contains(fromUser)) { if(mAllowStrangerChatSet.contains(targetUser) || mAllowStrangerChatSet.contains(fromUser) || mAllowStrangerLineSet.contains(line)) {
return ErrorCode.ERROR_CODE_SUCCESS; return ErrorCode.ERROR_CODE_SUCCESS;
} }
@@ -185,7 +185,7 @@ public interface IMessagesStore {
ErrorCode blackUserRequest(String fromUser, String targetUserId, int status, long[] head); ErrorCode blackUserRequest(String fromUser, String targetUserId, int status, long[] head);
FriendData getFriendData(String fromUser, String targetUserId); FriendData getFriendData(String fromUser, String targetUserId);
ErrorCode SyncFriendRequestUnread(String userId, long unreadDt, long[] head); ErrorCode SyncFriendRequestUnread(String userId, long unreadDt, long[] head);
ErrorCode isAllowUserMessage(String fromUser, String userId); ErrorCode isAllowUserMessage(String fromUser, String userId, int line);
ErrorCode isBlacked(String fromUser, String userId); ErrorCode isBlacked(String fromUser, String userId);
ErrorCode setFriendAliasRequest(String fromUser, String targetUserId, String alias, long[] head); ErrorCode setFriendAliasRequest(String fromUser, String targetUserId, String alias, long[] head);
ErrorCode setFriendExtraRequest(String fromUser, String targetUserId, String extra, long[] head); ErrorCode setFriendExtraRequest(String fromUser, String targetUserId, String extra, long[] head);
@@ -93,6 +93,9 @@ message.disable_stranger_chat false
##当禁止陌生人聊天时,允许聊天的用户id,比如管理员或者文件传输助手等。用户id以英文逗号分割。 ##当禁止陌生人聊天时,允许聊天的用户id,比如管理员或者文件传输助手等。用户id以英文逗号分割。
message.allow_stranger_chat_list admin,FireRobot,wfc_file_transfer message.allow_stranger_chat_list admin,FireRobot,wfc_file_transfer
##当禁止陌生人聊天时,允许聊天的线路。
#message.allow_stranger_line 100,101
##黑名单策略,0 发送失败,返回被拉黑的错误码;1 发送成功但消息被服务器直接丢弃 ##黑名单策略,0 发送失败,返回被拉黑的错误码;1 发送成功但消息被服务器直接丢弃
message.blacklist.strategy 0 message.blacklist.strategy 0