From a14cee5cce616a5490f64f1aa71ba9106c3e3270 Mon Sep 17 00:00:00 2001 From: Sajith Sasidharan Date: Thu, 9 Apr 2020 15:09:58 -0400 Subject: [PATCH] Remove nevow from allmydata.web.root.IncidentReporter This change calls for an explanation: - `RenderMixin` doesn't seem to be adding anything here, so it is gone. - The web browser was unhappy without a charset in the response (Firefox 74 was anyway), so `content-type` header also gets a `charset=UTF-8`. - Returning a Unicode string made nevow appserver unhappy, so it is just a `str`. The precise error message was: exceptions.TypeError: ('Could not adapt', u'An incident report has been saved to logs/incidents/ in the node directory.', ) Fixes: ticket:3294 --- newsfragments/3294.minor | 0 src/allmydata/web/root.py | 13 +++++++------ 2 files changed, 7 insertions(+), 6 deletions(-) create mode 100644 newsfragments/3294.minor diff --git a/newsfragments/3294.minor b/newsfragments/3294.minor new file mode 100644 index 000000000..e69de29bb diff --git a/src/allmydata/web/root.py b/src/allmydata/web/root.py index 8726cb00f..95c80994e 100644 --- a/src/allmydata/web/root.py +++ b/src/allmydata/web/root.py @@ -28,7 +28,7 @@ from allmydata.web.common import ( WebError, get_arg, MultiFormatPage, - RenderMixin, + MultiFormatResource, get_format, get_mutable_type, render_time_delta, @@ -169,14 +169,15 @@ class FileHandler(rend.Page): raise WebError("/file must be followed by a file-cap and a name", http.NOT_FOUND) -class IncidentReporter(RenderMixin, rend.Page): - def render_POST(self, ctx): - req = IRequest(ctx) +class IncidentReporter(MultiFormatResource): + """Handler for /report_incident POST request""" + + def render(self, req): log.msg(format="User reports incident through web page: %(details)s", details=get_arg(req, "details", ""), level=log.WEIRD, umid="LkD9Pw") - req.setHeader("content-type", "text/plain") - return "An incident report has been saved to logs/incidents/ in the node directory." + req.setHeader("content-type", "text/plain; charset=UTF-8") + return b"An incident report has been saved to logs/incidents/ in the node directory." SPACE = u"\u00A0"*2