From 8540f4760d3220da4ea9c3821ec0623603f7bde8 Mon Sep 17 00:00:00 2001 From: hawklin2017 <32898629+hawklin2017@users.noreply.github.com> Date: Wed, 22 Apr 2026 14:52:46 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=9F=E8=AE=A1=E5=9C=A8=E7=BA=BF=E4=BA=BA?= =?UTF-8?q?=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/api/router.go | 2 +- internal/api/user.go | 16 +++++++++++----- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/internal/api/router.go b/internal/api/router.go index 16aa2dc98..f3409ed99 100644 --- a/internal/api/router.go +++ b/internal/api/router.go @@ -132,7 +132,7 @@ func newGinRouter(ctx context.Context, client discovery.SvcDiscoveryRegistry, co r.Use(gzip.Gzip(gzip.BestSpeed)) } r.Use(prommetricsGin(), gin.RecoveryWithWriter(gin.DefaultErrorWriter, mw.GinPanicErr), mw.CorsHandler(), mw.GinParseOperationID(), GinParseToken(rpcli.NewAuthClient(authConn))) - u := NewUserApi(user.NewUserClient(userConn), client, config.Share.RpcRegisterName) + u := NewUserApi(user.NewUserClient(userConn), client, config.Share.RpcRegisterName, config.Share.IMAdminUserID) m := NewMessageApi(msg.NewMsgClient(msgConn), rpcli.NewUserClient(userConn), config.Share.IMAdminUserID) cp := NewCaptchaApi(pbcaptcha.NewCaptchaClient(captchaConn)) bl := NewUserGlobalBlackApi(blacklistCtrl, userDB, config.Share.IMAdminUserID, rpcli.NewAuthClient(authConn)) diff --git a/internal/api/user.go b/internal/api/user.go index a457597ff..356251406 100644 --- a/internal/api/user.go +++ b/internal/api/user.go @@ -16,6 +16,7 @@ package api import ( "github.com/gin-gonic/gin" + "github.com/openimsdk/open-im-server/v3/pkg/authverify" "github.com/openimsdk/open-im-server/v3/pkg/common/config" "github.com/openimsdk/protocol/constant" "github.com/openimsdk/protocol/msggateway" @@ -28,9 +29,10 @@ import ( ) type UserApi struct { - Client user.UserClient - discov discovery.SvcDiscoveryRegistry - config config.RpcRegisterName + Client user.UserClient + discov discovery.SvcDiscoveryRegistry + config config.RpcRegisterName + imAdminUserID []string } type GetSelfLoginPlatformsResp struct { @@ -47,8 +49,8 @@ type GetOnlineUserCountResp struct { OnlineUserCount int64 `json:"onlineUserCount"` } -func NewUserApi(client user.UserClient, discov discovery.SvcDiscoveryRegistry, config config.RpcRegisterName) UserApi { - return UserApi{Client: client, discov: discov, config: config} +func NewUserApi(client user.UserClient, discov discovery.SvcDiscoveryRegistry, config config.RpcRegisterName, imAdminUserID []string) UserApi { + return UserApi{Client: client, discov: discov, config: config, imAdminUserID: imAdminUserID} } func (u *UserApi) UserRegister(c *gin.Context) { @@ -146,6 +148,10 @@ func (u *UserApi) UserRegisterCount(c *gin.Context) { // GetOnlineUserCount Get current online user count. func (u *UserApi) GetOnlineUserCount(c *gin.Context) { + if err := authverify.CheckAdmin(c, u.imAdminUserID); err != nil { + apiresp.GinError(c, err) + return + } cursor := uint64(0) var count int64 for {