From 4c43e85d89095e239ce6a2250514be1b177f211e Mon Sep 17 00:00:00 2001 From: LinkinStars Date: Wed, 24 Jul 2024 10:57:11 +0800 Subject: [PATCH] =?UTF-8?q?feat(email):=20add=20mask=20for=20email=20confi?= =?UTF-8?q?g=CB=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/base/constant/site_info.go | 4 ++++ internal/service/export/email_service.go | 4 ++-- internal/service/siteinfo/siteinfo_service.go | 11 +++++++++++ 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/internal/base/constant/site_info.go b/internal/base/constant/site_info.go index de6f4183..0509c359 100644 --- a/internal/base/constant/site_info.go +++ b/internal/base/constant/site_info.go @@ -44,3 +44,7 @@ const ( ColorSchemeDark = "dark" ColorSchemeSystem = "system" ) + +const ( + EmailConfigKey = "email.config" +) diff --git a/internal/service/export/email_service.go b/internal/service/export/email_service.go index ae5d337a..1ed1b784 100644 --- a/internal/service/export/email_service.go +++ b/internal/service/export/email_service.go @@ -328,7 +328,7 @@ func (es *EmailService) NewQuestionTemplate(ctx context.Context, raw *schema.New } func (es *EmailService) GetEmailConfig(ctx context.Context) (ec *EmailConfig, err error) { - emailConf, err := es.configService.GetStringValue(ctx, "email.config") + emailConf, err := es.configService.GetStringValue(ctx, constant.EmailConfigKey) if err != nil { return nil, err } @@ -344,5 +344,5 @@ func (es *EmailService) GetEmailConfig(ctx context.Context) (ec *EmailConfig, er // SetEmailConfig set email config func (es *EmailService) SetEmailConfig(ctx context.Context, ec *EmailConfig) (err error) { data, _ := json.Marshal(ec) - return es.configService.UpdateConfig(ctx, "email.config", string(data)) + return es.configService.UpdateConfig(ctx, constant.EmailConfigKey, string(data)) } diff --git a/internal/service/siteinfo/siteinfo_service.go b/internal/service/siteinfo/siteinfo_service.go index 74027ec2..e1998efb 100644 --- a/internal/service/siteinfo/siteinfo_service.go +++ b/internal/service/siteinfo/siteinfo_service.go @@ -23,6 +23,7 @@ import ( "context" "encoding/json" "fmt" + "strings" "github.com/apache/incubator-answer/internal/base/constant" "github.com/apache/incubator-answer/internal/base/handler" @@ -257,14 +258,24 @@ func (s *SiteInfoService) GetSMTPConfig(ctx context.Context) (resp *schema.GetSM } resp = &schema.GetSMTPConfigResp{} _ = copier.Copy(resp, emailConfig) + resp.SMTPPassword = strings.Repeat("*", len(resp.SMTPPassword)) return resp, nil } // UpdateSMTPConfig get smtp config func (s *SiteInfoService) UpdateSMTPConfig(ctx context.Context, req *schema.UpdateSMTPConfigReq) (err error) { + emailConfig, err := s.emailService.GetEmailConfig(ctx) + if err != nil { + return err + } + ec := &export.EmailConfig{} _ = copier.Copy(ec, req) + if len(ec.SMTPPassword) > 0 && ec.SMTPPassword == strings.Repeat("*", len(ec.SMTPPassword)) { + ec.SMTPPassword = emailConfig.SMTPPassword + } + err = s.emailService.SetEmailConfig(ctx, ec) if err != nil { return err