New force_https_urls option, refs #333

This commit is contained in:
Simon Willison 2018-07-23 08:58:29 -07:00
commit f24b49a1a8
No known key found for this signature in database
GPG key ID: 17E2DEA2588B7F52
5 changed files with 44 additions and 11 deletions

View file

@ -142,6 +142,12 @@ class BaseView(RenderMixin):
return name, expected, None
def absolute_url(self, request, path):
url = urllib.parse.urljoin(request.url, path)
if url.startswith("http://") and self.ds.config["force_https_urls"]:
url = "https://" + url[len("http://"):]
return url
def get_templates(self, database, table=None):
assert NotImplemented

View file

@ -1,4 +1,3 @@
from collections import namedtuple
import sqlite3
import urllib
@ -564,9 +563,7 @@ class TableView(RowTableShared):
row["value"]
),
"count": row["count"],
"toggle_url": urllib.parse.urljoin(
request.url, toggle_path
),
"toggle_url": self.absolute_url(request, toggle_path),
"selected": selected,
})
except InterruptedError:
@ -650,8 +647,8 @@ class TableView(RowTableShared):
added_args["_sort_desc"] = sort_desc
else:
added_args = {"_next": next_value}
next_url = urllib.parse.urljoin(
request.url, path_with_replaced_args(request, added_args)
next_url = self.absolute_url(
request, path_with_replaced_args(request, added_args)
)
rows = rows[:page_size]
@ -702,8 +699,10 @@ class TableView(RowTableShared):
):
suggested_facets.append({
'name': facet_column,
'toggle_url': path_with_added_args(
request, {'_facet': facet_column}
'toggle_url': self.absolute_url(
request, path_with_added_args(
request, {"_facet": facet_column}
)
),
})
except InterruptedError: