package middleware import ( "context" "net/http" "gitrepo.ru/neonxp/gorum/contextlib" "go.neonxp.ru/mux" "go.neonxp.ru/mux/middleware/session" ) func UserMiddleware() mux.Middleware { return func(h http.Handler) http.Handler { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { session := session.FromRequest(r) values := session.Values(r.Context()) user := values["user"] if user == nil { h.ServeHTTP(w, r) return } h.ServeHTTP(w, r.WithContext( context.WithValue(r.Context(), contextlib.UserKey, user), )) }) } }