Skip to content

Commit b201e0d

Browse files
authored
feat: make admin path configurable (#322)
1 parent a7249f3 commit b201e0d

File tree

8 files changed

+19
-4
lines changed

8 files changed

+19
-4
lines changed

conf/config.dev.yaml

+2-1
Original file line numberDiff line numberDiff line change
@@ -28,4 +28,5 @@ mysql:
2828
sonic:
2929
mode: "development"
3030
work_dir: "./" # 不填默认为当前路径,用来存放日志文件、数据库文件、模板、上传的附件等(The default is the current directory. Used to store log files, database files, templates, upload files)
31-
log_dir: "./logs" # 不填则使用work_dir 路径下的log路径 (If it is empty, use the "log" path under work_dir)
31+
log_dir: "./logs" # 不填则使用work_dir 路径下的log路径 (If it is empty, use the "log" path under work_dir)
32+
admin_url_path: admin_random

config/config.go

+2
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@ func NewConfig() *Config {
3030
viper.SetConfigName("config")
3131
}
3232

33+
viper.SetDefault("sonic.admin_url_path", "admin")
34+
3335
conf := &Config{}
3436
if err := viper.ReadInConfig(); err != nil {
3537
panic(err)

config/model.go

+1
Original file line numberDiff line numberDiff line change
@@ -49,4 +49,5 @@ type Sonic struct {
4949
TemplateDir string `mapstructure:"template_dir"`
5050
ThemeDir string
5151
AdminResourcesDir string
52+
AdminURLPath string `mapstructure:"admin_url_path"`
5253
}

event/listener/start.go

+6-1
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,12 @@ func (s *StartListener) printStartInfo(ctx context.Context) error {
8686
site := logger.BlueBold + "Sonic started at " + blogURL + logger.Reset
8787
log.Info(site)
8888
fmt.Println(site)
89-
adminSite := logger.BlueBold + "Sonic admin started at " + blogURL + "/admin" + logger.Reset
89+
90+
adminURLPath, err := s.optionService.GetAdminURLPath(ctx)
91+
if err != nil {
92+
return err
93+
}
94+
adminSite := logger.BlueBold + "Sonic admin started at " + blogURL + "/" + adminURLPath + logger.Reset
9095
log.Info(adminSite)
9196
fmt.Println(adminSite)
9297
return nil

handler/content/view.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,8 @@ func (v *ViewHandler) Install(ctx *gin.Context) {
6060
if isInstall {
6161
return
6262
}
63-
ctx.Redirect(http.StatusTemporaryRedirect, "admin/#install")
63+
adminURLPath, _ := v.OptionService.GetAdminURLPath(ctx)
64+
ctx.Redirect(http.StatusTemporaryRedirect, adminURLPath+"/#install")
6465
}
6566

6667
func (v *ViewHandler) Logo(ctx *gin.Context) (interface{}, error) {

handler/router.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ func (s *Server) RegisterRouters() {
3636
})
3737
{
3838
staticRouter := router.Group("/")
39-
staticRouter.StaticFS("admin", gin.Dir(s.Config.Sonic.AdminResourcesDir, false))
39+
staticRouter.StaticFS(s.Config.Sonic.AdminURLPath, gin.Dir(s.Config.Sonic.AdminResourcesDir, false))
4040
staticRouter.StaticFS("/css", gin.Dir(filepath.Join(s.Config.Sonic.AdminResourcesDir, "css"), false))
4141
staticRouter.StaticFS("/js", gin.Dir(filepath.Join(s.Config.Sonic.AdminResourcesDir, "js"), false))
4242
staticRouter.StaticFS("/images", gin.Dir(filepath.Join(s.Config.Sonic.AdminResourcesDir, "images"), false))

service/impl/option.go

+4
Original file line numberDiff line numberDiff line change
@@ -469,3 +469,7 @@ func (o *optionServiceImpl) GetAttachmentType(ctx context.Context) consts.Attach
469469
return consts.AttachmentTypeLocal
470470
}
471471
}
472+
473+
func (o *optionServiceImpl) GetAdminURLPath(ctx context.Context) (string, error) {
474+
return o.Config.Sonic.AdminURLPath, nil
475+
}

service/option.go

+1
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ type OptionService interface {
3232
GetLinkPrefix(ctx context.Context) (string, error)
3333
GetSheetPrefix(ctx context.Context) (string, error)
3434
GetAttachmentType(ctx context.Context) consts.AttachmentType
35+
GetAdminURLPath(ctx context.Context) (string, error)
3536
}
3637

3738
type ClientOptionService interface {

0 commit comments

Comments
 (0)