|
|
|
@ -96,15 +96,16 @@ func isMessageHasReadEnabled(pb *pbChat.SendMsgReq) (bool, int32, string) {
|
|
|
|
|
return true, 0, ""
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func userIsMuteInGroup(groupID, userID string) (bool, error) {
|
|
|
|
|
func userIsMuteAndIsAdminInGroup(groupID, userID string) (isMute bool, isAdmin bool, err error) {
|
|
|
|
|
groupMemberInfo, err := rocksCache.GetGroupMemberInfoFromCache(groupID, userID)
|
|
|
|
|
if err != nil {
|
|
|
|
|
return false, utils.Wrap(err, "")
|
|
|
|
|
return false, false, utils.Wrap(err, "")
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if groupMemberInfo.MuteEndTime.Unix() >= time.Now().Unix() {
|
|
|
|
|
return true, nil
|
|
|
|
|
return true, groupMemberInfo.RoleLevel > constant.GroupOrdinaryUsers, nil
|
|
|
|
|
}
|
|
|
|
|
return false, nil
|
|
|
|
|
return false, groupMemberInfo.RoleLevel > constant.GroupOrdinaryUsers, nil
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func groupIsMuted(groupID string) (bool, error) {
|
|
|
|
@ -193,21 +194,24 @@ func (rpc *rpcChat) messageVerification(data *pbChat.SendMsgReq) (bool, int32, s
|
|
|
|
|
return false, 202, "you are not in group", nil
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
isMute, err := groupIsMuted(data.MsgData.GroupID)
|
|
|
|
|
isMute, isAdmin, err := userIsMuteAndIsAdminInGroup(data.MsgData.GroupID, data.MsgData.SendID)
|
|
|
|
|
if err != nil {
|
|
|
|
|
errMsg := data.OperationID + err.Error()
|
|
|
|
|
return false, 223, errMsg, nil
|
|
|
|
|
}
|
|
|
|
|
if isMute {
|
|
|
|
|
return false, 225, "group id muted", nil
|
|
|
|
|
return false, 224, "you are muted", nil
|
|
|
|
|
}
|
|
|
|
|
if isAdmin {
|
|
|
|
|
return true, 0, "", userIDList
|
|
|
|
|
}
|
|
|
|
|
isMute, err = userIsMuteInGroup(data.MsgData.GroupID, data.MsgData.SendID)
|
|
|
|
|
isMute, err = groupIsMuted(data.MsgData.GroupID)
|
|
|
|
|
if err != nil {
|
|
|
|
|
errMsg := data.OperationID + err.Error()
|
|
|
|
|
return false, 223, errMsg, nil
|
|
|
|
|
}
|
|
|
|
|
if isMute {
|
|
|
|
|
return false, 224, "you are muted", nil
|
|
|
|
|
return false, 225, "group id muted", nil
|
|
|
|
|
}
|
|
|
|
|
return true, 0, "", userIDList
|
|
|
|
|
case constant.SuperGroupChatType:
|
|
|
|
@ -264,21 +268,24 @@ func (rpc *rpcChat) messageVerification(data *pbChat.SendMsgReq) (bool, int32, s
|
|
|
|
|
return false, 202, "you are not in group", nil
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
isMute, err := groupIsMuted(data.MsgData.GroupID)
|
|
|
|
|
isMute, isAdmin, err := userIsMuteAndIsAdminInGroup(data.MsgData.GroupID, data.MsgData.SendID)
|
|
|
|
|
if err != nil {
|
|
|
|
|
errMsg := data.OperationID + err.Error()
|
|
|
|
|
return false, 223, errMsg, nil
|
|
|
|
|
}
|
|
|
|
|
if isMute {
|
|
|
|
|
return false, 225, "group id muted", nil
|
|
|
|
|
return false, 224, "you are muted", nil
|
|
|
|
|
}
|
|
|
|
|
isMute, err = userIsMuteInGroup(data.MsgData.GroupID, data.MsgData.SendID)
|
|
|
|
|
if isAdmin {
|
|
|
|
|
return true, 0, "", userIDList
|
|
|
|
|
}
|
|
|
|
|
isMute, err = groupIsMuted(data.MsgData.GroupID)
|
|
|
|
|
if err != nil {
|
|
|
|
|
errMsg := data.OperationID + err.Error()
|
|
|
|
|
return false, 223, errMsg, nil
|
|
|
|
|
}
|
|
|
|
|
if isMute {
|
|
|
|
|
return false, 224, "you are muted", nil
|
|
|
|
|
return false, 225, "group id muted", nil
|
|
|
|
|
}
|
|
|
|
|
return true, 0, "", userIDList
|
|
|
|
|
}
|
|
|
|
|