feat(email): add mask for email configˆ

This commit is contained in:
LinkinStars
2024-07-24 10:57:11 +08:00
parent 2820efc454
commit 4c43e85d89
3 changed files with 17 additions and 2 deletions
+4
View File
@@ -44,3 +44,7 @@ const (
ColorSchemeDark = "dark"
ColorSchemeSystem = "system"
)
const (
EmailConfigKey = "email.config"
)
+2 -2
View File
@@ -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))
}
@@ -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