From f963e501b5c0c656eb1e765271c256914d1f861b Mon Sep 17 00:00:00 2001 From: chao <48119764+withchao@users.noreply.github.com> Date: Wed, 24 Apr 2024 16:46:38 +0800 Subject: [PATCH] feat: chat admin config (#509) --- config/share.yml | 4 +--- internal/api/admin/start.go | 2 +- internal/api/chat/start.go | 2 +- internal/rpc/admin/start.go | 14 +++++++------- pkg/common/config/config.go | 10 ++-------- 5 files changed, 12 insertions(+), 20 deletions(-) diff --git a/config/share.yml b/config/share.yml index 76e1b4427..2eed7bd71 100644 --- a/config/share.yml +++ b/config/share.yml @@ -9,8 +9,6 @@ openIM: adminUserID: imAdmin chatAdmin: - - adminID: chatAdmin - imUserID: imAdmin - nickname: chatAdmin + - "chatAdmin" #proxyHeader: "X-Forwarded-For" \ No newline at end of file diff --git a/internal/api/admin/start.go b/internal/api/admin/start.go index ce30a64b8..aef4602c3 100644 --- a/internal/api/admin/start.go +++ b/internal/api/admin/start.go @@ -55,7 +55,7 @@ func Start(ctx context.Context, index int, config *Config) error { base := util.Api{ ImUserID: config.Share.OpenIM.AdminUserID, ProxyHeader: config.Share.ProxyHeader, - ChatAdminUserID: config.Share.ChatAdmin[0].AdminID, + ChatAdminUserID: config.Share.ChatAdmin[0], } adminApi := New(chatClient, adminClient, im, &base) mwApi := chatmw.New(adminClient) diff --git a/internal/api/chat/start.go b/internal/api/chat/start.go index d5291c6ad..30ea80ffd 100644 --- a/internal/api/chat/start.go +++ b/internal/api/chat/start.go @@ -54,7 +54,7 @@ func Start(ctx context.Context, index int, config *Config) error { base := util.Api{ ImUserID: config.Share.OpenIM.AdminUserID, ProxyHeader: config.Share.ProxyHeader, - ChatAdminUserID: config.Share.ChatAdmin[0].AdminID, + ChatAdminUserID: config.Share.ChatAdmin[0], } adminApi := New(chatClient, adminClient, im, &base) mwApi := chatmw.New(adminClient) diff --git a/internal/rpc/admin/start.go b/internal/rpc/admin/start.go index 36ac9801a..8d46bf6f1 100644 --- a/internal/rpc/admin/start.go +++ b/internal/rpc/admin/start.go @@ -59,7 +59,7 @@ func Start(ctx context.Context, config *Config, client discovery.SvcDiscoveryReg Expires: time.Duration(config.RpcConfig.TokenPolicy.Expire) * time.Hour * 24, Secret: config.RpcConfig.Secret, } - if err := srv.initAdmin(ctx, config.Share.ChatAdmin); err != nil { + if err := srv.initAdmin(ctx, config.Share.ChatAdmin, config.Share.OpenIM.AdminUserID); err != nil { return err } pbadmin.RegisterAdminServer(server, &srv) @@ -72,17 +72,17 @@ type adminServer struct { Token *tokenverify.Token } -func (o *adminServer) initAdmin(ctx context.Context, users []config.AdminUser) error { - for _, user := range users { - if _, err := o.Database.GetAdmin(ctx, user.AdminID); err == nil { +func (o *adminServer) initAdmin(ctx context.Context, admins []string, imUserID string) error { + for _, account := range admins { + if _, err := o.Database.GetAdmin(ctx, account); err == nil { continue } else if !dbutil.IsDBNotFound(err) { return err } - sum := md5.Sum([]byte(user.AdminID)) + sum := md5.Sum([]byte(account)) a := admin.Admin{ - Account: user.AdminID, - UserID: user.IMUserID, + Account: account, + UserID: imUserID, Password: hex.EncodeToString(sum[:]), Level: constant.DefaultAdminLevel, CreateTime: time.Now(), diff --git a/pkg/common/config/config.go b/pkg/common/config/config.go index f08734c34..1412f0e4e 100644 --- a/pkg/common/config/config.go +++ b/pkg/common/config/config.go @@ -21,14 +21,8 @@ type Share struct { Secret string `mapstructure:"secret"` AdminUserID string `mapstructure:"adminUserID"` } `mapstructure:"openIM"` - ChatAdmin []AdminUser `mapstructure:"chatAdmin"` - ProxyHeader string `mapstructure:"proxyHeader"` -} - -type AdminUser struct { - AdminID string `mapstructure:"adminID"` - IMUserID string `mapstructure:"imUserID"` - Nickname string `mapstructure:"nickname"` + ChatAdmin []string `mapstructure:"chatAdmin"` + ProxyHeader string `mapstructure:"proxyHeader"` } type RpcRegisterName struct {