diff --git a/internal/push/push_to_client.go b/internal/push/push_to_client.go index 246431015..6cf3f558b 100644 --- a/internal/push/push_to_client.go +++ b/internal/push/push_to_client.go @@ -228,10 +228,10 @@ func (p *Pusher) Push2SuperGroup(ctx context.Context, groupID string, msg *sdkws return err } log.ZInfo(ctx, "GroupDismissedNotificationInfo****", "groupID", groupID, "num", len(pushToUserIDs), "list", pushToUserIDs) - if config.Config.Manager.UserID[0] != "" { + if len(config.Config.Manager.UserID) > 0 { ctx = mcontext.WithOpUserIDContext(ctx, config.Config.Manager.UserID[0]) } - if config.Config.Manager.UserID[0] == "" && len(config.Config.IMAdmin.UserID) > 0 { + if len(config.Config.Manager.UserID) == 0 && len(config.Config.IMAdmin.UserID) > 0 { ctx = mcontext.WithOpUserIDContext(ctx, config.Config.IMAdmin.UserID[0]) } defer func(groupID string) { diff --git a/internal/rpc/msg/revoke.go b/internal/rpc/msg/revoke.go index 2a87a2061..f5d89b9a3 100644 --- a/internal/rpc/msg/revoke.go +++ b/internal/rpc/msg/revoke.go @@ -117,10 +117,10 @@ func (m *msgServer) RevokeMsg(ctx context.Context, req *msg.RevokeMsgReq) (*msg. revokerUserID := mcontext.GetOpUserID(ctx) log.ZDebug(ctx, "RevokeMsgRevokeMsg", "revokerUserID", revokerUserID) var flag bool - if config.Config.Manager.UserID[0] != "" { + if len(config.Config.Manager.UserID) > 0 { flag = utils.Contain(revokerUserID, config.Config.Manager.UserID...) } - if config.Config.Manager.UserID[0] == "" && len(config.Config.IMAdmin.UserID) > 0 { + if len(config.Config.Manager.UserID) == 0 && len(config.Config.IMAdmin.UserID) > 0 { flag = utils.Contain(revokerUserID, config.Config.IMAdmin.UserID...) } log.ZDebug(ctx, "RevokeMsgRevokeMsg", "flag", flag) diff --git a/internal/rpc/msg/verify.go b/internal/rpc/msg/verify.go index 4768fe1c5..0080b6fdb 100644 --- a/internal/rpc/msg/verify.go +++ b/internal/rpc/msg/verify.go @@ -51,7 +51,7 @@ type MessageRevoked struct { func (m *msgServer) messageVerification(ctx context.Context, data *msg.SendMsgReq) error { switch data.MsgData.SessionType { case constant.SingleChatType: - if utils.IsContain(data.MsgData.SendID, config.Config.Manager.UserID) { + if len(config.Config.Manager.UserID) > 0 && utils.IsContain(data.MsgData.SendID, config.Config.Manager.UserID) { return nil } if utils.IsContain(data.MsgData.SendID, config.Config.IMAdmin.UserID) { @@ -91,7 +91,7 @@ func (m *msgServer) messageVerification(ctx context.Context, data *msg.SendMsgRe if groupInfo.GroupType == constant.SuperGroup { return nil } - if utils.IsContain(data.MsgData.SendID, config.Config.Manager.UserID) { + if len(config.Config.Manager.UserID) > 0 && utils.IsContain(data.MsgData.SendID, config.Config.Manager.UserID) { return nil } if utils.IsContain(data.MsgData.SendID, config.Config.IMAdmin.UserID) { diff --git a/pkg/authverify/token.go b/pkg/authverify/token.go index cb832b266..b39923065 100644 --- a/pkg/authverify/token.go +++ b/pkg/authverify/token.go @@ -36,8 +36,7 @@ func Secret() jwt.Keyfunc { func CheckAccessV3(ctx context.Context, ownerUserID string) (err error) { opUserID := mcontext.GetOpUserID(ctx) - log.ZDebug(ctx, "CheckAcessV3", "Length", len(config.Config.Manager.UserID)) - if utils.IsContain(opUserID, config.Config.Manager.UserID) { + if len(config.Config.Manager.UserID) > 0 && utils.IsContain(opUserID, config.Config.Manager.UserID) { return nil } if utils.IsContain(opUserID, config.Config.IMAdmin.UserID) { @@ -51,11 +50,11 @@ func CheckAccessV3(ctx context.Context, ownerUserID string) (err error) { } func IsAppManagerUid(ctx context.Context) bool { - return utils.IsContain(mcontext.GetOpUserID(ctx), config.Config.Manager.UserID) || utils.IsContain(mcontext.GetOpUserID(ctx), config.Config.IMAdmin.UserID) + return (len(config.Config.Manager.UserID) > 0 && utils.IsContain(mcontext.GetOpUserID(ctx), config.Config.Manager.UserID)) || utils.IsContain(mcontext.GetOpUserID(ctx), config.Config.IMAdmin.UserID) } func CheckAdmin(ctx context.Context) error { - if utils.IsContain(mcontext.GetOpUserID(ctx), config.Config.Manager.UserID) { + if len(config.Config.Manager.UserID) > 0 && utils.IsContain(mcontext.GetOpUserID(ctx), config.Config.Manager.UserID) { return nil } if utils.IsContain(mcontext.GetOpUserID(ctx), config.Config.IMAdmin.UserID) { @@ -67,7 +66,7 @@ func CheckIMAdmin(ctx context.Context) error { if utils.IsContain(mcontext.GetOpUserID(ctx), config.Config.IMAdmin.UserID) { return nil } - if utils.IsContain(mcontext.GetOpUserID(ctx), config.Config.Manager.UserID) { + if len(config.Config.Manager.UserID) > 0 && utils.IsContain(mcontext.GetOpUserID(ctx), config.Config.Manager.UserID) { return nil } return errs.ErrNoPermission.Wrap(fmt.Sprintf("user %s is not CheckIMAdmin userID", mcontext.GetOpUserID(ctx))) @@ -78,7 +77,7 @@ func ParseRedisInterfaceToken(redisToken any) (*tokenverify.Claims, error) { } func IsManagerUserID(opUserID string) bool { - return utils.IsContain(opUserID, config.Config.Manager.UserID) || utils.IsContain(opUserID, config.Config.IMAdmin.UserID) + return (len(config.Config.Manager.UserID) > 0 && utils.IsContain(opUserID, config.Config.Manager.UserID)) || utils.IsContain(opUserID, config.Config.IMAdmin.UserID) } func WsVerifyToken(token, userID string, platformID int) error {