fix: discov update.

pull/2100/head
Gordon 2 years ago
parent 1f6f8964dd
commit 013ae16e62

@ -17,13 +17,13 @@ package authverify
import ( import (
"context" "context"
"fmt" "fmt"
"github.com/openimsdk/open-im-server/v3/pkg/common/servererrs"
"github.com/openimsdk/tools/utils/datautil"
"github.com/golang-jwt/jwt/v4" "github.com/golang-jwt/jwt/v4"
"github.com/openimsdk/open-im-server/v3/pkg/common/config" "github.com/openimsdk/open-im-server/v3/pkg/common/config"
"github.com/openimsdk/tools/errs"
"github.com/openimsdk/tools/mcontext" "github.com/openimsdk/tools/mcontext"
"github.com/openimsdk/tools/tokenverify" "github.com/openimsdk/tools/tokenverify"
"github.com/openimsdk/tools/utils"
) )
func Secret(secret string) jwt.Keyfunc { func Secret(secret string) jwt.Keyfunc {
@ -34,41 +34,41 @@ func Secret(secret string) jwt.Keyfunc {
func CheckAccessV3(ctx context.Context, ownerUserID string, manager *config.Manager, imAdmin *config.IMAdmin) (err error) { func CheckAccessV3(ctx context.Context, ownerUserID string, manager *config.Manager, imAdmin *config.IMAdmin) (err error) {
opUserID := mcontext.GetOpUserID(ctx) opUserID := mcontext.GetOpUserID(ctx)
if len(manager.UserID) > 0 && utils.Contain(opUserID, manager.UserID...) { if len(manager.UserID) > 0 && datautil.Contain(opUserID, manager.UserID...) {
return nil return nil
} }
if utils.Contain(opUserID, imAdmin.UserID...) { if datautil.Contain(opUserID, imAdmin.UserID...) {
return nil return nil
} }
if opUserID == ownerUserID { if opUserID == ownerUserID {
return nil return nil
} }
return errs.ErrNoPermission.WrapMsg("ownerUserID", ownerUserID) return servererrs.ErrNoPermission.WrapMsg("ownerUserID", ownerUserID)
} }
func IsAppManagerUid(ctx context.Context, manager *config.Manager, imAdmin *config.IMAdmin) bool { func IsAppManagerUid(ctx context.Context, manager *config.Manager, imAdmin *config.IMAdmin) bool {
return (len(manager.UserID) > 0 && utils.Contain(mcontext.GetOpUserID(ctx), manager.UserID...)) || return (len(manager.UserID) > 0 && datautil.Contain(mcontext.GetOpUserID(ctx), manager.UserID...)) ||
utils.Contain(mcontext.GetOpUserID(ctx), imAdmin.UserID...) datautil.Contain(mcontext.GetOpUserID(ctx), imAdmin.UserID...)
} }
func CheckAdmin(ctx context.Context, manager *config.Manager, imAdmin *config.IMAdmin) error { func CheckAdmin(ctx context.Context, manager *config.Manager, imAdmin *config.IMAdmin) error {
if len(manager.UserID) > 0 && utils.Contain(mcontext.GetOpUserID(ctx), manager.UserID...) { if len(manager.UserID) > 0 && datautil.Contain(mcontext.GetOpUserID(ctx), manager.UserID...) {
return nil return nil
} }
if utils.Contain(mcontext.GetOpUserID(ctx), imAdmin.UserID...) { if datautil.Contain(mcontext.GetOpUserID(ctx), imAdmin.UserID...) {
return nil return nil
} }
return errs.ErrNoPermission.WrapMsg(fmt.Sprintf("user %s is not admin userID", mcontext.GetOpUserID(ctx))) return servererrs.ErrNoPermission.WrapMsg(fmt.Sprintf("user %s is not admin userID", mcontext.GetOpUserID(ctx)))
} }
func CheckIMAdmin(ctx context.Context, config *config.GlobalConfig) error { func CheckIMAdmin(ctx context.Context, config *config.GlobalConfig) error {
if utils.Contain(mcontext.GetOpUserID(ctx), config.IMAdmin.UserID...) { if datautil.Contain(mcontext.GetOpUserID(ctx), config.IMAdmin.UserID...) {
return nil return nil
} }
if len(config.Manager.UserID) > 0 && utils.Contain(mcontext.GetOpUserID(ctx), config.Manager.UserID...) { if len(config.Manager.UserID) > 0 && datautil.Contain(mcontext.GetOpUserID(ctx), config.Manager.UserID...) {
return nil return nil
} }
return errs.ErrNoPermission.WrapMsg(fmt.Sprintf("user %s is not CheckIMAdmin userID", mcontext.GetOpUserID(ctx))) return servererrs.ErrNoPermission.WrapMsg(fmt.Sprintf("user %s is not CheckIMAdmin userID", mcontext.GetOpUserID(ctx)))
} }
func ParseRedisInterfaceToken(redisToken any, secret string) (*tokenverify.Claims, error) { func ParseRedisInterfaceToken(redisToken any, secret string) (*tokenverify.Claims, error) {
@ -76,7 +76,7 @@ func ParseRedisInterfaceToken(redisToken any, secret string) (*tokenverify.Claim
} }
func IsManagerUserID(opUserID string, manager *config.Manager, imAdmin *config.IMAdmin) bool { func IsManagerUserID(opUserID string, manager *config.Manager, imAdmin *config.IMAdmin) bool {
return (len(manager.UserID) > 0 && utils.Contain(opUserID, manager.UserID...)) || utils.Contain(opUserID, imAdmin.UserID...) return (len(manager.UserID) > 0 && datautil.Contain(opUserID, manager.UserID...)) || datautil.Contain(opUserID, imAdmin.UserID...)
} }
func WsVerifyToken(token, userID, secret string, platformID int) error { func WsVerifyToken(token, userID, secret string, platformID int) error {
@ -85,10 +85,10 @@ func WsVerifyToken(token, userID, secret string, platformID int) error {
return err return err
} }
if claim.UserID != userID { if claim.UserID != userID {
return errs.ErrTokenInvalid.WrapMsg(fmt.Sprintf("token uid %s != userID %s", claim.UserID, userID)) return servererrs.ErrTokenInvalid.WrapMsg(fmt.Sprintf("token uid %s != userID %s", claim.UserID, userID))
} }
if claim.PlatformID != platformID { if claim.PlatformID != platformID {
return errs.ErrTokenInvalid.WrapMsg(fmt.Sprintf("token platform %d != %d", claim.PlatformID, platformID)) return servererrs.ErrTokenInvalid.WrapMsg(fmt.Sprintf("token platform %d != %d", claim.PlatformID, platformID))
} }
return nil return nil
} }

@ -14,7 +14,10 @@
package callbackstruct package callbackstruct
import "github.com/openimsdk/tools/errs" import (
"github.com/openimsdk/open-im-server/v3/pkg/common/servererrs"
"github.com/openimsdk/tools/errs"
)
const ( const (
Next = 1 Next = 1
@ -61,7 +64,7 @@ type CommonCallbackResp struct {
} }
func (c CommonCallbackResp) Parse() error { func (c CommonCallbackResp) Parse() error {
if c.ActionCode != errs.NoError || c.NextCode == Next { if c.ActionCode != servererrs.NoError || c.NextCode == Next {
return errs.NewCodeError(int(c.ErrCode), c.ErrMsg).WithDetail(c.ErrDlt) return errs.NewCodeError(int(c.ErrCode), c.ErrMsg).WithDetail(c.ErrDlt)
} }
return nil return nil

@ -22,13 +22,13 @@ import (
"github.com/openimsdk/open-im-server/v3/pkg/common/startrpc" "github.com/openimsdk/open-im-server/v3/pkg/common/startrpc"
"github.com/openimsdk/open-im-server/v3/pkg/util/genutil" "github.com/openimsdk/open-im-server/v3/pkg/util/genutil"
"github.com/openimsdk/protocol/constant" "github.com/openimsdk/protocol/constant"
"github.com/openimsdk/tools/discoveryregistry" "github.com/openimsdk/tools/discovery"
"github.com/openimsdk/tools/errs" "github.com/openimsdk/tools/errs"
"github.com/spf13/cobra" "github.com/spf13/cobra"
"google.golang.org/grpc" "google.golang.org/grpc"
) )
type rpcInitFuc func(ctx context.Context, config *config2.GlobalConfig, disCov discoveryregistry.SvcDiscoveryRegistry, server *grpc.Server) error type rpcInitFuc func(ctx context.Context, config *config2.GlobalConfig, disCov discovery.SvcDiscoveryRegistry, server *grpc.Server) error
type RpcCmd struct { type RpcCmd struct {
*RootCmd *RootCmd
@ -68,7 +68,7 @@ func (a *RpcCmd) Exec() error {
return a.Execute() return a.Execute()
} }
func (a *RpcCmd) StartSvr(name string, rpcFn func(ctx context.Context, config *config2.GlobalConfig, disCov discoveryregistry.SvcDiscoveryRegistry, server *grpc.Server) error) error { func (a *RpcCmd) StartSvr(name string, rpcFn func(ctx context.Context, config *config2.GlobalConfig, disCov discovery.SvcDiscoveryRegistry, server *grpc.Server) error) error {
if a.GetPortFlag() == 0 { if a.GetPortFlag() == 0 {
return errs.Wrap(errors.New("port is required")) return errs.Wrap(errors.New("port is required"))
} }

@ -16,12 +16,12 @@ package config
import ( import (
"bytes" "bytes"
"github.com/openimsdk/tools/db/kafka" "github.com/openimsdk/tools/mq/kafka"
"gopkg.in/yaml.v3" "gopkg.in/yaml.v3"
"time" "time"
util "github.com/openimsdk/open-im-server/v3/pkg/util/genutil" util "github.com/openimsdk/open-im-server/v3/pkg/util/genutil"
"github.com/openimsdk/tools/discoveryregistry" "github.com/openimsdk/tools/discovery"
) )
var Config GlobalConfig var Config GlobalConfig
@ -460,7 +460,7 @@ func (c *GlobalConfig) GetServiceNames() []string {
} }
} }
func (c *GlobalConfig) RegisterConf2Registry(registry discoveryregistry.SvcDiscoveryRegistry) error { func (c *GlobalConfig) RegisterConf2Registry(registry discovery.SvcDiscoveryRegistry) error {
data, err := yaml.Marshal(c) data, err := yaml.Marshal(c)
if err != nil { if err != nil {
return err return err
@ -468,7 +468,7 @@ func (c *GlobalConfig) RegisterConf2Registry(registry discoveryregistry.SvcDisco
return registry.RegisterConf2Registry(ConfKey, data) return registry.RegisterConf2Registry(ConfKey, data)
} }
func (c *GlobalConfig) GetConfFromRegistry(registry discoveryregistry.SvcDiscoveryRegistry) ([]byte, error) { func (c *GlobalConfig) GetConfFromRegistry(registry discovery.SvcDiscoveryRegistry) ([]byte, error) {
return registry.GetConfFromRegistry(ConfKey) return registry.GetConfFromRegistry(ConfKey)
} }

@ -17,13 +17,13 @@ package convert
import ( import (
"github.com/openimsdk/open-im-server/v3/pkg/common/db/table/relation" "github.com/openimsdk/open-im-server/v3/pkg/common/db/table/relation"
"github.com/openimsdk/protocol/conversation" "github.com/openimsdk/protocol/conversation"
"github.com/openimsdk/tools/utils" "github.com/openimsdk/tools/utils/datautil"
) )
func ConversationDB2Pb(conversationDB *relation.ConversationModel) *conversation.Conversation { func ConversationDB2Pb(conversationDB *relation.ConversationModel) *conversation.Conversation {
conversationPB := &conversation.Conversation{} conversationPB := &conversation.Conversation{}
conversationPB.LatestMsgDestructTime = conversationDB.LatestMsgDestructTime.Unix() conversationPB.LatestMsgDestructTime = conversationDB.LatestMsgDestructTime.Unix()
if err := utils.CopyStructFields(conversationPB, conversationDB); err != nil { if err := datautil.CopyStructFields(conversationPB, conversationDB); err != nil {
return nil return nil
} }
return conversationPB return conversationPB
@ -32,7 +32,7 @@ func ConversationDB2Pb(conversationDB *relation.ConversationModel) *conversation
func ConversationsDB2Pb(conversationsDB []*relation.ConversationModel) (conversationsPB []*conversation.Conversation) { func ConversationsDB2Pb(conversationsDB []*relation.ConversationModel) (conversationsPB []*conversation.Conversation) {
for _, conversationDB := range conversationsDB { for _, conversationDB := range conversationsDB {
conversationPB := &conversation.Conversation{} conversationPB := &conversation.Conversation{}
if err := utils.CopyStructFields(conversationPB, conversationDB); err != nil { if err := datautil.CopyStructFields(conversationPB, conversationDB); err != nil {
continue continue
} }
conversationPB.LatestMsgDestructTime = conversationDB.LatestMsgDestructTime.Unix() conversationPB.LatestMsgDestructTime = conversationDB.LatestMsgDestructTime.Unix()
@ -43,7 +43,7 @@ func ConversationsDB2Pb(conversationsDB []*relation.ConversationModel) (conversa
func ConversationPb2DB(conversationPB *conversation.Conversation) *relation.ConversationModel { func ConversationPb2DB(conversationPB *conversation.Conversation) *relation.ConversationModel {
conversationDB := &relation.ConversationModel{} conversationDB := &relation.ConversationModel{}
if err := utils.CopyStructFields(conversationDB, conversationPB); err != nil { if err := datautil.CopyStructFields(conversationDB, conversationPB); err != nil {
return nil return nil
} }
return conversationDB return conversationDB
@ -52,7 +52,7 @@ func ConversationPb2DB(conversationPB *conversation.Conversation) *relation.Conv
func ConversationsPb2DB(conversationsPB []*conversation.Conversation) (conversationsDB []*relation.ConversationModel) { func ConversationsPb2DB(conversationsPB []*conversation.Conversation) (conversationsDB []*relation.ConversationModel) {
for _, conversationPB := range conversationsPB { for _, conversationPB := range conversationsPB {
conversationDB := &relation.ConversationModel{} conversationDB := &relation.ConversationModel{}
if err := utils.CopyStructFields(conversationDB, conversationPB); err != nil { if err := datautil.CopyStructFields(conversationDB, conversationPB); err != nil {
continue continue
} }
conversationsDB = append(conversationsDB, conversationDB) conversationsDB = append(conversationsDB, conversationDB)

@ -17,20 +17,21 @@ package convert
import ( import (
"context" "context"
"fmt" "fmt"
"github.com/openimsdk/tools/utils/datautil"
"github.com/openimsdk/tools/utils/timeutil"
"github.com/openimsdk/open-im-server/v3/pkg/common/db/table/relation" "github.com/openimsdk/open-im-server/v3/pkg/common/db/table/relation"
"github.com/openimsdk/protocol/sdkws" "github.com/openimsdk/protocol/sdkws"
"github.com/openimsdk/tools/utils"
) )
func FriendPb2DB(friend *sdkws.FriendInfo) *relation.FriendModel { func FriendPb2DB(friend *sdkws.FriendInfo) *relation.FriendModel {
dbFriend := &relation.FriendModel{} dbFriend := &relation.FriendModel{}
err := utils.CopyStructFields(dbFriend, friend) err := datautil.CopyStructFields(dbFriend, friend)
if err != nil { if err != nil {
return nil return nil
} }
dbFriend.FriendUserID = friend.FriendUser.UserID dbFriend.FriendUserID = friend.FriendUser.UserID
dbFriend.CreateTime = utils.UnixSecondToTime(friend.CreateTime) dbFriend.CreateTime = timeutil.UnixSecondToTime(friend.CreateTime)
return dbFriend return dbFriend
} }
@ -71,7 +72,7 @@ func FriendsDB2Pb(
} }
for _, friend := range friendsDB { for _, friend := range friendsDB {
friendPb := &sdkws.FriendInfo{FriendUser: &sdkws.UserInfo{}} friendPb := &sdkws.FriendInfo{FriendUser: &sdkws.UserInfo{}}
err := utils.CopyStructFields(friendPb, friend) err := datautil.CopyStructFields(friendPb, friend)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@ -97,7 +98,7 @@ func FriendRequestDB2Pb(ctx context.Context, friendRequests []*relation.FriendRe
userIDMap[friendRequest.ToUserID] = struct{}{} userIDMap[friendRequest.ToUserID] = struct{}{}
userIDMap[friendRequest.FromUserID] = struct{}{} userIDMap[friendRequest.FromUserID] = struct{}{}
} }
users, err := getUsers(ctx, utils.Keys(userIDMap)) users, err := getUsers(ctx, datautil.Keys(userIDMap))
if err != nil { if err != nil {
return nil, err return nil, err
} }

Loading…
Cancel
Save