From a95d9dda769744445ce6086e48af85377d7bc9ed Mon Sep 17 00:00:00 2001 From: "zhangwenbing.zwb" Date: Wed, 25 Oct 2023 20:43:11 +0800 Subject: [PATCH] feat: make admin path configurable --- config/config.go | 2 ++ config/model.go | 1 + event/listener/start.go | 7 ++++++- service/impl/option.go | 4 ++++ service/option.go | 1 + 5 files changed, 14 insertions(+), 1 deletion(-) diff --git a/config/config.go b/config/config.go index ec6ace9..7148dc9 100644 --- a/config/config.go +++ b/config/config.go @@ -30,6 +30,8 @@ func NewConfig() *Config { viper.SetConfigName("config") } + viper.SetDefault("sonic.admin_url_path", "admin") + conf := &Config{} if err := viper.ReadInConfig(); err != nil { panic(err) diff --git a/config/model.go b/config/model.go index 755fcfa..a25657c 100644 --- a/config/model.go +++ b/config/model.go @@ -49,4 +49,5 @@ type Sonic struct { TemplateDir string `mapstructure:"template_dir"` ThemeDir string AdminResourcesDir string + AdminUrlPath string `mapstructure:"admin_url_path"` } diff --git a/event/listener/start.go b/event/listener/start.go index 3cf1acf..209de4e 100644 --- a/event/listener/start.go +++ b/event/listener/start.go @@ -86,7 +86,12 @@ func (s *StartListener) printStartInfo(ctx context.Context) error { site := logger.BlueBold + "Sonic started at " + blogURL + logger.Reset log.Info(site) fmt.Println(site) - adminSite := logger.BlueBold + "Sonic admin started at " + blogURL + "/admin" + logger.Reset + + adminUrlPath, err := s.optionService.GetAdminUrlPath(ctx) + if err != nil { + return err + } + adminSite := logger.BlueBold + "Sonic admin started at " + blogURL + "/" + adminUrlPath + logger.Reset log.Info(adminSite) fmt.Println(adminSite) return nil diff --git a/service/impl/option.go b/service/impl/option.go index a313146..b2b96c1 100644 --- a/service/impl/option.go +++ b/service/impl/option.go @@ -469,3 +469,7 @@ func (o *optionServiceImpl) GetAttachmentType(ctx context.Context) consts.Attach return consts.AttachmentTypeLocal } } + +func (o *optionServiceImpl) GetAdminUrlPath(ctx context.Context) (string, error) { + return o.Config.Sonic.AdminUrlPath, nil +} diff --git a/service/option.go b/service/option.go index 028f49c..4a46fb5 100644 --- a/service/option.go +++ b/service/option.go @@ -32,6 +32,7 @@ type OptionService interface { GetLinkPrefix(ctx context.Context) (string, error) GetSheetPrefix(ctx context.Context) (string, error) GetAttachmentType(ctx context.Context) consts.AttachmentType + GetAdminUrlPath(ctx context.Context) (string, error) } type ClientOptionService interface {