Merge remote-tracking branch 'origin/errcode' into errcode

This commit is contained in:
withchao 2023-02-14 15:07:24 +08:00
commit 5d66ff951c
9 changed files with 77 additions and 21 deletions

View File

@ -5,11 +5,10 @@ import (
"context" "context"
) )
func Access(ctx context.Context, ownerUserID string) (err error) { func (u *UserCheck) Access(ctx context.Context, ownerUserID string) (err error) {
_, err = GetUsersInfo(ctx, ownerUserID) _, err = u.GetUsersInfo(ctx, ownerUserID)
if err != nil { if err != nil {
return err return err
} }
return tokenverify.CheckAccessV3(ctx, ownerUserID) return tokenverify.CheckAccessV3(ctx, ownerUserID)
} }

View File

@ -1,15 +1,31 @@
package check package check
import ( import (
"Open_IM/pkg/common/config"
discoveryRegistry "Open_IM/pkg/discoveryregistry" discoveryRegistry "Open_IM/pkg/discoveryregistry"
"Open_IM/pkg/proto/conversation"
pbConversation "Open_IM/pkg/proto/conversation" pbConversation "Open_IM/pkg/proto/conversation"
"context" "context"
"google.golang.org/grpc"
) )
type ConversationChecker struct { type ConversationChecker struct {
zk discoveryRegistry.SvcDiscoveryRegistry zk discoveryRegistry.SvcDiscoveryRegistry
} }
func NewConversationChecker(zk discoveryRegistry.SvcDiscoveryRegistry) *ConversationChecker {
return &ConversationChecker{zk: zk}
}
func (c *ConversationChecker) ModifyConversationField(ctx context.Context, req *pbConversation.ModifyConversationFieldReq) (resp *pbConversation.ModifyConversationFieldResp, err error) { func (c *ConversationChecker) ModifyConversationField(ctx context.Context, req *pbConversation.ModifyConversationFieldReq) (resp *pbConversation.ModifyConversationFieldResp, err error) {
cc, err := c.getConn()
if err != nil {
return nil, err
}
resp, err = conversation.NewConversationClient(cc).ModifyConversationField(ctx, req)
return return
} }
func (c *ConversationChecker) getConn() (*grpc.ClientConn, error) {
return c.zk.GetConn(config.Config.RpcRegisterName.OpenImConversationName)
}

View File

@ -1,11 +1,36 @@
package check package check
import ( import (
"Open_IM/pkg/common/config"
discoveryRegistry "Open_IM/pkg/discoveryregistry"
"Open_IM/pkg/proto/friend"
sdkws "Open_IM/pkg/proto/sdkws" sdkws "Open_IM/pkg/proto/sdkws"
"context" "context"
"errors" "google.golang.org/grpc"
) )
func GetFriendsInfo(ctx context.Context, ownerUserID, friendUserID string) (*sdkws.FriendInfo, error) { type FriendChecker struct {
return nil, errors.New("TODO:GetUserInfo") zk discoveryRegistry.SvcDiscoveryRegistry
}
func NewFriendChecker(zk discoveryRegistry.SvcDiscoveryRegistry) *FriendChecker {
return &FriendChecker{
zk: zk,
}
}
func (f *FriendChecker) GetFriendsInfo(ctx context.Context, ownerUserID, friendUserID string) (resp *sdkws.FriendInfo, err error) {
cc, err := f.getConn()
if err != nil {
return nil, err
}
r, err := friend.NewFriendClient(cc).GetPaginationFriends(ctx, &friend.GetPaginationFriendsReq{OwnerUserID: ownerUserID, FriendUserIDs: []string{friendUserID}})
if err != nil {
return nil, err
}
resp = r.FriendsInfo[0]
return
}
func (f *FriendChecker) getConn() (*grpc.ClientConn, error) {
return f.zk.GetConn(config.Config.RpcRegisterName.OpenImFriendName)
} }

View File

@ -12,6 +12,10 @@ type MsgCheck struct {
zk discoveryRegistry.SvcDiscoveryRegistry zk discoveryRegistry.SvcDiscoveryRegistry
} }
func NewMsgCheck(zk discoveryRegistry.SvcDiscoveryRegistry) *MsgCheck {
return &MsgCheck{zk: zk}
}
func (m *MsgCheck) getConn() (*grpc.ClientConn, error) { func (m *MsgCheck) getConn() (*grpc.ClientConn, error) {
return m.zk.GetConn(config.Config.RpcRegisterName.OpenImMsgName) return m.zk.GetConn(config.Config.RpcRegisterName.OpenImMsgName)
} }

View File

@ -5,6 +5,7 @@ import (
"Open_IM/pkg/common/config" "Open_IM/pkg/common/config"
"Open_IM/pkg/common/constant" "Open_IM/pkg/common/constant"
"Open_IM/pkg/common/tracelog" "Open_IM/pkg/common/tracelog"
discoveryRegistry "Open_IM/pkg/discoveryregistry"
"Open_IM/pkg/proto/msg" "Open_IM/pkg/proto/msg"
"Open_IM/pkg/proto/sdkws" "Open_IM/pkg/proto/sdkws"
utils2 "Open_IM/pkg/utils" utils2 "Open_IM/pkg/utils"
@ -13,9 +14,21 @@ import (
) )
type Check struct { type Check struct {
user *check.UserCheck user *check.UserCheck
group *check.GroupChecker group *check.GroupChecker
msg *check.MsgCheck msg *check.MsgCheck
friend *check.FriendChecker
conversation *check.ConversationChecker
}
func NewCheck(zk discoveryRegistry.SvcDiscoveryRegistry) *Check {
return &Check{
user: check.NewUserCheck(zk),
group: check.NewGroupChecker(zk),
msg: check.NewMsgCheck(zk),
friend: check.NewFriendChecker(zk),
conversation: check.NewConversationChecker(zk),
}
} }
type NotificationMsg struct { type NotificationMsg struct {

View File

@ -1,7 +1,6 @@
package notification package notification
import ( import (
"Open_IM/internal/common/check"
"Open_IM/pkg/common/config" "Open_IM/pkg/common/config"
"Open_IM/pkg/common/constant" "Open_IM/pkg/common/constant"
pbFriend "Open_IM/pkg/proto/friend" pbFriend "Open_IM/pkg/proto/friend"
@ -112,7 +111,7 @@ func (c *Check) FriendAddedNotification(ctx context.Context, operationID, opUser
friendAddedTips.OpUser.Nickname = user[0].Nickname friendAddedTips.OpUser.Nickname = user[0].Nickname
friendAddedTips.OpUser.FaceURL = user[0].FaceURL friendAddedTips.OpUser.FaceURL = user[0].FaceURL
friend, err := check.GetFriendsInfo(ctx, fromUserID, toUserID) friend, err := c.friend.GetFriendsInfo(ctx, fromUserID, toUserID)
if err != nil { if err != nil {
return return
} }

View File

@ -65,7 +65,7 @@ func (s *rpcAuth) Run() {
func (s *rpcAuth) UserToken(ctx context.Context, req *pbAuth.UserTokenReq) (*pbAuth.UserTokenResp, error) { func (s *rpcAuth) UserToken(ctx context.Context, req *pbAuth.UserTokenReq) (*pbAuth.UserTokenResp, error) {
resp := pbAuth.UserTokenResp{} resp := pbAuth.UserTokenResp{}
if _, err := check.GetUsersInfo(ctx, req.UserID); err != nil { if _, err := s.userCheck.GetUsersInfo(ctx, req.UserID); err != nil {
return nil, err return nil, err
} }
token, err := s.CreateToken(ctx, req.UserID, constant.PlatformIDToName(int(req.PlatformID))) token, err := s.CreateToken(ctx, req.UserID, constant.PlatformIDToName(int(req.PlatformID)))
@ -143,4 +143,5 @@ func (s *rpcAuth) forceKickOff(ctx context.Context, userID string, platformID in
type rpcAuth struct { type rpcAuth struct {
*rpcserver.RpcServer *rpcserver.RpcServer
controller.AuthInterface controller.AuthInterface
userCheck *check.UserCheck
} }

View File

@ -1,7 +1,6 @@
package friend package friend
import ( import (
"Open_IM/internal/common/check"
"Open_IM/internal/common/convert" "Open_IM/internal/common/convert"
"Open_IM/pkg/common/db/table/relation" "Open_IM/pkg/common/db/table/relation"
"Open_IM/pkg/common/tokenverify" "Open_IM/pkg/common/tokenverify"
@ -12,7 +11,7 @@ import (
func (s *friendServer) GetPaginationBlacks(ctx context.Context, req *pbFriend.GetPaginationBlacksReq) (resp *pbFriend.GetPaginationBlacksResp, err error) { func (s *friendServer) GetPaginationBlacks(ctx context.Context, req *pbFriend.GetPaginationBlacksReq) (resp *pbFriend.GetPaginationBlacksResp, err error) {
resp = &pbFriend.GetPaginationBlacksResp{} resp = &pbFriend.GetPaginationBlacksResp{}
if err := check.Access(ctx, req.UserID); err != nil { if err := s.userCheck.Access(ctx, req.UserID); err != nil {
return nil, err return nil, err
} }
blacks, total, err := s.BlackInterface.FindOwnerBlacks(ctx, req.UserID, req.Pagination.PageNumber, req.Pagination.ShowNumber) blacks, total, err := s.BlackInterface.FindOwnerBlacks(ctx, req.UserID, req.Pagination.PageNumber, req.Pagination.ShowNumber)
@ -40,7 +39,7 @@ func (s *friendServer) IsBlack(ctx context.Context, req *pbFriend.IsBlackReq) (*
func (s *friendServer) RemoveBlack(ctx context.Context, req *pbFriend.RemoveBlackReq) (*pbFriend.RemoveBlackResp, error) { func (s *friendServer) RemoveBlack(ctx context.Context, req *pbFriend.RemoveBlackReq) (*pbFriend.RemoveBlackResp, error) {
resp := &pbFriend.RemoveBlackResp{} resp := &pbFriend.RemoveBlackResp{}
if err := check.Access(ctx, req.OwnerUserID); err != nil { if err := s.userCheck.Access(ctx, req.OwnerUserID); err != nil {
return nil, err return nil, err
} }
if err := s.BlackInterface.Delete(ctx, []*relation.BlackModel{{OwnerUserID: req.OwnerUserID, BlockUserID: req.BlackUserID}}); err != nil { if err := s.BlackInterface.Delete(ctx, []*relation.BlackModel{{OwnerUserID: req.OwnerUserID, BlockUserID: req.BlackUserID}}); err != nil {

View File

@ -150,7 +150,7 @@ func (s *friendServer) ImportFriends(ctx context.Context, req *pbFriend.ImportFr
// ok // ok
func (s *friendServer) RespondFriendApply(ctx context.Context, req *pbFriend.RespondFriendApplyReq) (resp *pbFriend.RespondFriendApplyResp, err error) { func (s *friendServer) RespondFriendApply(ctx context.Context, req *pbFriend.RespondFriendApplyReq) (resp *pbFriend.RespondFriendApplyResp, err error) {
resp = &pbFriend.RespondFriendApplyResp{} resp = &pbFriend.RespondFriendApplyResp{}
if err := check.Access(ctx, req.ToUserID); err != nil { if err := s.userCheck.Access(ctx, req.ToUserID); err != nil {
return nil, err return nil, err
} }
friendRequest := relationTb.FriendRequestModel{FromUserID: req.FromUserID, ToUserID: req.ToUserID, HandleMsg: req.HandleMsg, HandleResult: req.HandleResult} friendRequest := relationTb.FriendRequestModel{FromUserID: req.FromUserID, ToUserID: req.ToUserID, HandleMsg: req.HandleMsg, HandleResult: req.HandleResult}
@ -176,7 +176,7 @@ func (s *friendServer) RespondFriendApply(ctx context.Context, req *pbFriend.Res
// ok // ok
func (s *friendServer) DeleteFriend(ctx context.Context, req *pbFriend.DeleteFriendReq) (resp *pbFriend.DeleteFriendResp, err error) { func (s *friendServer) DeleteFriend(ctx context.Context, req *pbFriend.DeleteFriendReq) (resp *pbFriend.DeleteFriendResp, err error) {
resp = &pbFriend.DeleteFriendResp{} resp = &pbFriend.DeleteFriendResp{}
if err := check.Access(ctx, req.OwnerUserID); err != nil { if err := s.userCheck.Access(ctx, req.OwnerUserID); err != nil {
return nil, err return nil, err
} }
_, err = s.FindFriendsWithError(ctx, req.OwnerUserID, []string{req.FriendUserID}) _, err = s.FindFriendsWithError(ctx, req.OwnerUserID, []string{req.FriendUserID})
@ -193,7 +193,7 @@ func (s *friendServer) DeleteFriend(ctx context.Context, req *pbFriend.DeleteFri
// ok // ok
func (s *friendServer) SetFriendRemark(ctx context.Context, req *pbFriend.SetFriendRemarkReq) (resp *pbFriend.SetFriendRemarkResp, err error) { func (s *friendServer) SetFriendRemark(ctx context.Context, req *pbFriend.SetFriendRemarkReq) (resp *pbFriend.SetFriendRemarkResp, err error) {
resp = &pbFriend.SetFriendRemarkResp{} resp = &pbFriend.SetFriendRemarkResp{}
if err := check.Access(ctx, req.OwnerUserID); err != nil { if err := s.userCheck.Access(ctx, req.OwnerUserID); err != nil {
return nil, err return nil, err
} }
_, err = s.FindFriendsWithError(ctx, req.OwnerUserID, []string{req.FriendUserID}) _, err = s.FindFriendsWithError(ctx, req.OwnerUserID, []string{req.FriendUserID})
@ -210,7 +210,7 @@ func (s *friendServer) SetFriendRemark(ctx context.Context, req *pbFriend.SetFri
// ok // ok
func (s *friendServer) GetDesignatedFriends(ctx context.Context, req *pbFriend.GetDesignatedFriendsReq) (resp *pbFriend.GetDesignatedFriendsResp, err error) { func (s *friendServer) GetDesignatedFriends(ctx context.Context, req *pbFriend.GetDesignatedFriendsReq) (resp *pbFriend.GetDesignatedFriendsResp, err error) {
resp = &pbFriend.GetDesignatedFriendsResp{} resp = &pbFriend.GetDesignatedFriendsResp{}
if err := check.Access(ctx, req.UserID); err != nil { if err := s.userCheck.Access(ctx, req.UserID); err != nil {
return nil, err return nil, err
} }
friends, total, err := s.FriendInterface.PageOwnerFriends(ctx, req.UserID, req.Pagination.PageNumber, req.Pagination.ShowNumber) friends, total, err := s.FriendInterface.PageOwnerFriends(ctx, req.UserID, req.Pagination.PageNumber, req.Pagination.ShowNumber)
@ -228,7 +228,7 @@ func (s *friendServer) GetDesignatedFriends(ctx context.Context, req *pbFriend.G
// ok 获取接收到的好友申请(即别人主动申请的) // ok 获取接收到的好友申请(即别人主动申请的)
func (s *friendServer) GetPaginationFriendsApplyTo(ctx context.Context, req *pbFriend.GetPaginationFriendsApplyToReq) (resp *pbFriend.GetPaginationFriendsApplyToResp, err error) { func (s *friendServer) GetPaginationFriendsApplyTo(ctx context.Context, req *pbFriend.GetPaginationFriendsApplyToReq) (resp *pbFriend.GetPaginationFriendsApplyToResp, err error) {
resp = &pbFriend.GetPaginationFriendsApplyToResp{} resp = &pbFriend.GetPaginationFriendsApplyToResp{}
if err := check.Access(ctx, req.UserID); err != nil { if err := s.userCheck.Access(ctx, req.UserID); err != nil {
return nil, err return nil, err
} }
friendRequests, total, err := s.FriendInterface.PageFriendRequestToMe(ctx, req.UserID, req.Pagination.PageNumber, req.Pagination.ShowNumber) friendRequests, total, err := s.FriendInterface.PageFriendRequestToMe(ctx, req.UserID, req.Pagination.PageNumber, req.Pagination.ShowNumber)
@ -246,7 +246,7 @@ func (s *friendServer) GetPaginationFriendsApplyTo(ctx context.Context, req *pbF
// ok 获取主动发出去的好友申请列表 // ok 获取主动发出去的好友申请列表
func (s *friendServer) GetPaginationFriendsApplyFrom(ctx context.Context, req *pbFriend.GetPaginationFriendsApplyFromReq) (resp *pbFriend.GetPaginationFriendsApplyFromResp, err error) { func (s *friendServer) GetPaginationFriendsApplyFrom(ctx context.Context, req *pbFriend.GetPaginationFriendsApplyFromReq) (resp *pbFriend.GetPaginationFriendsApplyFromResp, err error) {
resp = &pbFriend.GetPaginationFriendsApplyFromResp{} resp = &pbFriend.GetPaginationFriendsApplyFromResp{}
if err := check.Access(ctx, req.UserID); err != nil { if err := s.userCheck.Access(ctx, req.UserID); err != nil {
return nil, err return nil, err
} }
friendRequests, total, err := s.FriendInterface.PageFriendRequestFromMe(ctx, req.UserID, req.Pagination.PageNumber, req.Pagination.ShowNumber) friendRequests, total, err := s.FriendInterface.PageFriendRequestFromMe(ctx, req.UserID, req.Pagination.PageNumber, req.Pagination.ShowNumber)