From b73e4173a3c1e69e02ad6b4e3b43e425e57a5be9 Mon Sep 17 00:00:00 2001 From: MHSanaei Date: Thu, 9 Feb 2023 22:48:06 +0330 Subject: 3x-ui --- web/session/session.go | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 web/session/session.go (limited to 'web/session/session.go') diff --git a/web/session/session.go b/web/session/session.go new file mode 100644 index 00000000..2dfe94b6 --- /dev/null +++ b/web/session/session.go @@ -0,0 +1,46 @@ +package session + +import ( + "encoding/gob" + "github.com/gin-contrib/sessions" + "github.com/gin-gonic/gin" + "x-ui/database/model" +) + +const ( + loginUser = "LOGIN_USER" +) + +func init() { + gob.Register(model.User{}) +} + +func SetLoginUser(c *gin.Context, user *model.User) error { + s := sessions.Default(c) + s.Set(loginUser, user) + return s.Save() +} + +func GetLoginUser(c *gin.Context) *model.User { + s := sessions.Default(c) + obj := s.Get(loginUser) + if obj == nil { + return nil + } + user := obj.(model.User) + return &user +} + +func IsLogin(c *gin.Context) bool { + return GetLoginUser(c) != nil +} + +func ClearSession(c *gin.Context) { + s := sessions.Default(c) + s.Clear() + s.Options(sessions.Options{ + Path: "/", + MaxAge: -1, + }) + s.Save() +} -- cgit v1.2.3