kopia lustrzana https://github.com/simonw/datasette
Fix bug with breadcrumbs and request=None, closes #1849
rodzic
c7956eed77
commit
55f860c304
|
@ -639,15 +639,18 @@ class Datasette:
|
|||
|
||||
async def _crumb_items(self, request, table=None, database=None):
|
||||
crumbs = []
|
||||
actor = None
|
||||
if request:
|
||||
actor = request.actor
|
||||
# Top-level link
|
||||
if await self.permission_allowed(
|
||||
actor=request.actor, action="view-instance", default=True
|
||||
actor=actor, action="view-instance", default=True
|
||||
):
|
||||
crumbs.append({"href": self.urls.instance(), "label": "home"})
|
||||
# Database link
|
||||
if database:
|
||||
if await self.permission_allowed(
|
||||
actor=request.actor,
|
||||
actor=actor,
|
||||
action="view-database",
|
||||
resource=database,
|
||||
default=True,
|
||||
|
@ -662,7 +665,7 @@ class Datasette:
|
|||
if table:
|
||||
assert database, "table= requires database="
|
||||
if await self.permission_allowed(
|
||||
actor=request.actor,
|
||||
actor=actor,
|
||||
action="view-table",
|
||||
resource=(database, table),
|
||||
default=True,
|
||||
|
|
|
@ -125,3 +125,12 @@ async def test_datasette_ensure_permissions_check_visibility(
|
|||
visible, private = await ds.check_visibility(actor, permissions=permissions)
|
||||
assert visible == should_allow
|
||||
assert private == expected_private
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_datasette_render_template_no_request():
|
||||
# https://github.com/simonw/datasette/issues/1849
|
||||
ds = Datasette([], memory=True)
|
||||
await ds.invoke_startup()
|
||||
rendered = await ds.render_template("error.html")
|
||||
assert "Error " in rendered
|
||||
|
|
Ładowanie…
Reference in New Issue