package handlers import ( "net/http" "github.com/go-chi/chi" "sneak.berlin/go/webhooker/internal/database" ) // HandleProfile returns a handler for the user profile page func (h *Handlers) HandleProfile() http.HandlerFunc { return func(w http.ResponseWriter, r *http.Request) { sessionUserID, sessionUsername, ok := h.profileOwnerOrDeny(w, r) if !ok { return } h.renderProfile(w, r, sessionUserID, sessionUsername, "", "") } } // HandlePasswordChange returns a handler that lets an authenticated // user change their own password. It is served by the CSRF- and // auth-protected POST /password route under /user/{username}. func (h *Handlers) HandlePasswordChange() http.HandlerFunc { return func(w http.ResponseWriter, r *http.Request) { sessionUserID, sessionUsername, ok := h.profileOwnerOrDeny(w, r) if !ok { return } // Limit request body to prevent memory exhaustion. r.Body = http.MaxBytesReader(w, r.Body, 1<