| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- package BaseCtrl
- import (
- "forward-core/Models"
- "github.com/astaxie/beego"
- "github.com/astaxie/beego/logs"
- )
- var (
- ConsoleLoginUrl string = "/login"
- )
- type ConsoleCtrl struct {
- beego.Controller
- LoginUser *Models.LoginUser
- }
- func (c *ConsoleCtrl) Prepare() {
- reqUrl := c.Ctx.Request.RequestURI
- logs.Debug("执行Prepare,当前reqUrl:", reqUrl)
- if ConsoleLoginUrl == reqUrl {
- //如果是登录地址,则不校验
- return
- }
- //开始访问每个action前,执行登录和权限检查
- userInfo := c.GetUserInfo()
- if userInfo == nil {
- //未登录
- c.Ctx.Redirect(302, ConsoleLoginUrl)
- }
- c.LoginUser = userInfo
- }
- //判断用户是否登录.
- func (c *ConsoleCtrl) isUserLoggedIn() bool {
- return c.LoginUser != nil && c.LoginUser.UserId > 0
- }
- func (c *ConsoleCtrl) StoreUserInfo(loginUser *Models.LoginUser) {
- c.SetSession("userInfo", loginUser)
- }
- func (c *ConsoleCtrl) GetUserInfo() *Models.LoginUser {
- userInfo := c.GetSession("userInfo")
- if userInfo == nil {
- return nil
- }
- return userInfo.(*Models.LoginUser)
- }
- func (c *ConsoleCtrl) ClearUserInfo() {
- c.DelSession("userInfo")
- c.LoginUser = nil
- }
|