package middleware import ( "context" "github.com/labstack/echo-contrib/session" "github.com/labstack/echo/v4" "gitrepo.ru/neonxp/gorum/contextlib" "gitrepo.ru/neonxp/gorum/models" ) func UserMiddleware() echo.MiddlewareFunc { return func(next echo.HandlerFunc) echo.HandlerFunc { return func(c echo.Context) error { sess, err := session.Get("session", c) if err != nil { return err } u, okSess := sess.Values["user"] if !okSess { return next(c) } user, okUser := u.(models.User) if !okUser { return next(c) } ctx := context.WithValue(c.Request().Context(), contextlib.UserKey, user) req := c.Request().WithContext(ctx) c.SetRequest(req) return next(c) } } }