filter.go 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. package routers
  2. import (
  3. "github.com/astaxie/beego"
  4. "github.com/astaxie/beego/context"
  5. "github.com/lifei6671/mindoc/conf"
  6. "github.com/lifei6671/mindoc/models"
  7. "encoding/json"
  8. )
  9. func init() {
  10. var FilterUser = func(ctx *context.Context) {
  11. _, ok := ctx.Input.Session(conf.LoginSessionName).(models.Member)
  12. if !ok {
  13. if ctx.Input.IsAjax() {
  14. jsonData := make(map[string]interface{},3)
  15. jsonData["errcode"] = 403
  16. jsonData["message"] = "请登录后再操作"
  17. returnJSON, _ := json.Marshal(jsonData)
  18. ctx.ResponseWriter.Write(returnJSON)
  19. }else{
  20. ctx.Redirect(302, beego.URLFor("AccountController.Login"))
  21. }
  22. }
  23. }
  24. beego.InsertFilter("/manager",beego.BeforeRouter,FilterUser)
  25. beego.InsertFilter("/manager/*",beego.BeforeRouter,FilterUser)
  26. beego.InsertFilter("/setting",beego.BeforeRouter,FilterUser)
  27. beego.InsertFilter("/setting/*",beego.BeforeRouter,FilterUser)
  28. beego.InsertFilter("/book",beego.BeforeRouter,FilterUser)
  29. beego.InsertFilter("/book/*",beego.BeforeRouter,FilterUser)
  30. beego.InsertFilter("/api/*",beego.BeforeRouter,FilterUser)
  31. var FinishRouter = func(ctx *context.Context) {
  32. ctx.ResponseWriter.Header().Add("MinDoc-Version",conf.VERSION)
  33. ctx.ResponseWriter.Header().Add("MinDoc-Site","http://www.iminho.me")
  34. }
  35. beego.InsertFilter("/*",beego.BeforeRouter ,FinishRouter, false)
  36. }