mirror of
https://github.com/openimsdk/open-im-server.git
synced 2025-11-05 03:42:08 +08:00
fix: discov update.
This commit is contained in:
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…
x
Reference in New Issue
Block a user