group admin send mute msg

This commit is contained in:
wangchuxiao 2022-12-02 17:27:12 +08:00
parent df78d87ec5
commit a499112ece

View File

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