Files
port-forward/forward-server/Controllers/BaseCtrl/ConsoleCtrl.go
T
2020-12-01 21:19:37 +08:00

63 lines
1.1 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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
}