filter.go 1.0 KB

1234567891011121314151617181920212223242526272829303132
  1. package routers
  2. import (
  3. "github.com/astaxie/beego"
  4. "github.com/astaxie/beego/context"
  5. "github.com/lifei6671/godoc/conf"
  6. "github.com/lifei6671/godoc/models"
  7. )
  8. func init() {
  9. var FilterUser = func(ctx *context.Context) {
  10. _, ok := ctx.Input.Session(conf.LoginSessionName).(models.Member)
  11. if !ok {
  12. ctx.Redirect(302, beego.URLFor("AccountController.Login"))
  13. }
  14. }
  15. beego.InsertFilter("/manager",beego.BeforeRouter,FilterUser)
  16. beego.InsertFilter("/manager/*",beego.BeforeRouter,FilterUser)
  17. beego.InsertFilter("/setting",beego.BeforeRouter,FilterUser)
  18. beego.InsertFilter("/setting/*",beego.BeforeRouter,FilterUser)
  19. beego.InsertFilter("/book",beego.BeforeRouter,FilterUser)
  20. beego.InsertFilter("/book/*",beego.BeforeRouter,FilterUser)
  21. beego.InsertFilter("/api/*",beego.BeforeRouter,FilterUser)
  22. var FinishRouter = func(ctx *context.Context) {
  23. ctx.ResponseWriter.Header().Add("MinDoc-Version",conf.Version())
  24. ctx.ResponseWriter.Header().Add("MinDoc-Site","http://www.iminho.me")
  25. }
  26. beego.InsertFilter("/*",beego.BeforeRouter ,FinishRouter, false)
  27. }