Files
open-im-server/internal/rpc/group/set_group_info.go
T

47 lines
2.0 KiB
Go
Raw Normal View History

2021-06-28 15:36:09 +08:00
package group
import (
"Open_IM/pkg/common/constant"
"Open_IM/pkg/common/db/mysql_model/im_mysql_model"
"Open_IM/pkg/common/log"
2021-11-25 14:12:52 +08:00
"Open_IM/pkg/common/token_verify"
2021-10-11 22:00:38 +08:00
pbGroup "Open_IM/pkg/proto/group"
2021-06-28 15:36:09 +08:00
"context"
)
func (s *groupServer) SetGroupInfo(ctx context.Context, req *pbGroup.SetGroupInfoReq) (*pbGroup.CommonResp, error) {
log.Info(req.Token, req.OperationID, "rpc set group info is server,args=%s", req.String())
//Parse token, to find current user information
2021-11-25 14:12:52 +08:00
claims, err := token_verify.ParseToken(req.Token)
2021-06-28 15:36:09 +08:00
if err != nil {
log.Error(req.Token, req.OperationID, "err=%s,parse token failed", err.Error())
2021-11-25 14:12:52 +08:00
return &pbGroup.CommonResp{ErrorCode: constant.ErrParseToken.ErrCode, ErrorMsg: constant.ErrParseToken.ErrMsg}, nil
2021-06-28 15:36:09 +08:00
}
groupUserInfo, err := im_mysql_model.FindGroupMemberInfoByGroupIdAndUserId(req.GroupID, claims.UID)
if err != nil {
log.Error("", req.OperationID, "your are not in the group,can not change this group info,err=%s", err.Error())
2021-11-25 14:12:52 +08:00
return &pbGroup.CommonResp{ErrorCode: constant.ErrSetGroupInfo.ErrCode, ErrorMsg: constant.ErrSetGroupInfo.ErrMsg}, nil
2021-06-28 15:36:09 +08:00
}
if groupUserInfo.AdministratorLevel == constant.OrdinaryMember {
2021-11-25 14:12:52 +08:00
return &pbGroup.CommonResp{ErrorCode: constant.ErrSetGroupInfo.ErrCode, ErrorMsg: constant.ErrAccess.ErrMsg}, nil
2021-06-28 15:36:09 +08:00
}
//only administrators can set group information
if err = im_mysql_model.SetGroupInfo(req.GroupID, req.GroupName, req.Introduction, req.Notification, req.FaceUrl, ""); err != nil {
2021-11-25 14:12:52 +08:00
return &pbGroup.CommonResp{ErrorCode: constant.ErrSetGroupInfo.ErrCode, ErrorMsg: constant.ErrSetGroupInfo.ErrMsg}, nil
2021-06-28 15:36:09 +08:00
}
2021-07-05 17:21:13 +08:00
////Push message when set group info
//jsonInfo, _ := json.Marshal(req)
//logic.SendMsgByWS(&pbChat.WSToMsgSvrChatMsg{
// SendID: claims.UID,
// RecvID: req.GroupID,
// Content: string(jsonInfo),
// SendTime: utils.GetCurrentTimestampBySecond(),
// MsgFrom: constant.SysMsgType,
// ContentType: constant.SetGroupInfoTip,
// SessionType: constant.GroupChatType,
// OperationID: req.OperationID,
//})
2021-06-28 15:36:09 +08:00
return &pbGroup.CommonResp{}, nil
}