package controller import ( "net/http" "x-ui/logger" "x-ui/web/locale" "x-ui/web/session" "github.com/gin-gonic/gin" ) type BaseController struct{} func (a *BaseController) checkLogin(c *gin.Context) { if !session.IsLogin(c) { if isAjax(c) { pureJsonMsg(c, http.StatusUnauthorized, false, I18nWeb(c, "pages.login.loginAgain")) } else { c.Redirect(http.StatusTemporaryRedirect, c.GetString("base_path")) } c.Abort() } else { c.Next() } } func I18nWeb(c *gin.Context, name string, params ...string) string { anyfunc, funcExists := c.Get("I18n") if !funcExists { logger.Warning("I18n function not exists in gin context!") return "" } i18nFunc, _ := anyfunc.(func(i18nType locale.I18nType, key string, keyParams ...string) string) msg := i18nFunc(locale.Web, name, params...) return msg }