Skip to content

Commit 3aa703d

Browse files
committed
fix:1、修复匿名访问判断错误的BUG
2、重构配置文件自动加载逻辑
1 parent 4d59df6 commit 3aa703d

17 files changed

+301
-256
lines changed

commands/command.go

Lines changed: 19 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ import (
2525
"github.com/lifei6671/mindoc/models"
2626
"github.com/lifei6671/mindoc/utils/filetil"
2727
"github.com/astaxie/beego/cache/redis"
28+
"github.com/howeyc/fsnotify"
2829
)
2930

3031
// RegisterDataBase 注册数据库
@@ -55,6 +56,7 @@ func RegisterDataBase() {
5556
beego.Error("注册默认数据库失败->", err)
5657
os.Exit(1)
5758
}
59+
5860
} else if strings.EqualFold(adapter, "sqlite3") {
5961

6062
database := beego.AppConfig.String("db_database")
@@ -401,37 +403,37 @@ func RegisterCache() {
401403
//自动加载配置文件.修改了监听端口号和数据库配置无法自动生效.
402404
func RegisterAutoLoadConfig() {
403405
if conf.AutoLoadDelay > 0 {
404-
ticker := time.NewTicker(time.Second * time.Duration(conf.AutoLoadDelay))
405406

407+
watcher, err := fsnotify.NewWatcher()
408+
409+
if err != nil {
410+
beego.Error("创建配置文件监控器失败 ->",err)
411+
}
406412
go func() {
407-
f,err := os.Stat(conf.ConfigurationFile)
408-
if err != nil {
409-
beego.Error("读取配置文件时出错 ->",err)
410-
return
411-
}
412-
modTime := f.ModTime()
413413
for {
414414
select {
415-
case <-ticker.C:
416-
f,err := os.Stat(conf.ConfigurationFile)
417-
if err != nil {
418-
beego.Error("读取配置文件时出错 ->",err)
419-
break
420-
}
421-
if modTime != f.ModTime() {
415+
case ev := <-watcher.Event:
416+
//如果是修改了配置文件
417+
if ev.IsModify() {
422418
if err := beego.LoadAppConfig("ini", conf.ConfigurationFile); err != nil {
423419
beego.Error("An error occurred ->", err)
424420
break
425421
}
426-
modTime = f.ModTime()
427422
RegisterCache()
428-
429423
RegisterLogger("")
430-
beego.Info("配置文件已加载")
424+
beego.Info("配置文件已加载 ->", conf.ConfigurationFile)
431425
}
426+
case err := <-watcher.Error:
427+
beego.Error("配置文件监控器错误 ->", err)
432428
}
433429
}
434430
}()
431+
432+
err = watcher.Watch(conf.ConfigurationFile)
433+
434+
if err != nil {
435+
beego.Error("监控配置文件失败 ->",err)
436+
}
435437
}
436438
}
437439

controllers/BaseController.go

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -67,10 +67,9 @@ func (c *BaseController) Prepare() {
6767
for _, item := range options {
6868
c.Data[item.OptionName] = item.OptionValue
6969
c.Option[item.OptionName] = item.OptionValue
70-
71-
c.EnableAnonymous = strings.EqualFold(item.OptionName, "ENABLE_ANONYMOUS") && item.OptionValue == "true"
72-
c.EnableDocumentHistory = strings.EqualFold(item.OptionName, "ENABLE_DOCUMENT_HISTORY") && item.OptionValue == "true"
7370
}
71+
c.EnableAnonymous = strings.EqualFold(c.Option["ENABLE_ANONYMOUS"], "true")
72+
c.EnableDocumentHistory = strings.EqualFold(c.Option["ENABLE_DOCUMENT_HISTORY"],"true")
7473
}
7574
c.Data["HighlightStyle"] = beego.AppConfig.DefaultString("highlight_style","github")
7675

0 commit comments

Comments
 (0)