package controllers import ( "main/config" "github.com/gin-contrib/sessions" "github.com/gin-contrib/sessions/cookie" "github.com/gin-gonic/gin" ) func CreateSessionsStore(r *gin.Engine) { store := cookie.NewStore([]byte(config.Cfg.CookieCryptKey), []byte(config.Cfg.CookieHMAC)) r.Use(sessions.Sessions(config.Cfg.SessionKey, store)) store.Options(sessions.Options{ Path: "/", // сессия действительна для всех путей MaxAge: config.Cfg.SessionTime * 60 * 60, // время жизни сессий в часах HttpOnly: true, // отключение доступа через js (так надо говорят) }) } // Возвращает уровень доступа из пользовательской сессии func AccessLvl(c *gin.Context) int { session := sessions.Default(c) var accessLvl int if session.Get("access_lvl") != nil { accessLvl = session.Get("access_lvl").(int) } else { accessLvl = 0 } return accessLvl }