// Package reqcontext provides a shared context key and helpers for storing // the authenticated user in a request context. It lives in its own package so // that both httpapi (middleware) and httpapi/manage (handlers) can import it // without creating an import cycle. package reqcontext import ( "context" "git.az-it.net/az/morz-infoboard/server/backend/internal/store" ) // SessionCookieName ist der HTTP-Cookie-Name für Sitzungen. // Er wird in middleware.go (RequireAuth) und manage/auth.go (Login/Logout) // verwendet und hier zentral definiert, um Duplizierung zu vermeiden. const SessionCookieName = "morz_session" type contextKey int const contextKeyUser contextKey = 0 // WithUser returns a new context that carries u. func WithUser(ctx context.Context, u *store.User) context.Context { return context.WithValue(ctx, contextKeyUser, u) } // UserFromContext returns the *store.User stored in ctx, or nil if none. func UserFromContext(ctx context.Context) *store.User { u, _ := ctx.Value(contextKeyUser).(*store.User) return u }