ConsoleCtrl.go 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. package BaseCtrl
  2. import (
  3. "forward-core/Models"
  4. "github.com/astaxie/beego"
  5. "github.com/astaxie/beego/logs"
  6. )
  7. var (
  8. ConsoleLoginUrl string = "/login"
  9. )
  10. type ConsoleCtrl struct {
  11. beego.Controller
  12. LoginUser *Models.LoginUser
  13. }
  14. func (c *ConsoleCtrl) Prepare() {
  15. reqUrl := c.Ctx.Request.RequestURI
  16. logs.Debug("执行Prepare,当前reqUrl:", reqUrl)
  17. if ConsoleLoginUrl == reqUrl {
  18. //如果是登录地址,则不校验
  19. return
  20. }
  21. //开始访问每个action前,执行登录和权限检查
  22. userInfo := c.GetUserInfo()
  23. if userInfo == nil {
  24. //未登录
  25. c.Ctx.Redirect(302, ConsoleLoginUrl)
  26. }
  27. c.LoginUser = userInfo
  28. }
  29. //判断用户是否登录.
  30. func (c *ConsoleCtrl) isUserLoggedIn() bool {
  31. return c.LoginUser != nil && c.LoginUser.UserId > 0
  32. }
  33. func (c *ConsoleCtrl) StoreUserInfo(loginUser *Models.LoginUser) {
  34. c.SetSession("userInfo", loginUser)
  35. }
  36. func (c *ConsoleCtrl) GetUserInfo() *Models.LoginUser {
  37. userInfo := c.GetSession("userInfo")
  38. if userInfo == nil {
  39. return nil
  40. }
  41. return userInfo.(*Models.LoginUser)
  42. }
  43. func (c *ConsoleCtrl) ClearUserInfo() {
  44. c.DelSession("userInfo")
  45. c.LoginUser = nil
  46. }
粤ICP备19079148号