mirror of
https://github.com/tavenli/port-forward.git
synced 2024-04-21 12:42:13 +00:00
63 lines
1.1 KiB
Go
63 lines
1.1 KiB
Go
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
|
||
|
||
} |