diff --git a/datasette/templates/database.html b/datasette/templates/database.html index eaebfdf7..dfafc049 100644 --- a/datasette/templates/database.html +++ b/datasette/templates/database.html @@ -60,7 +60,7 @@

Queries

{% endif %} diff --git a/tests/test_permissions.py b/tests/test_permissions.py index 21014a25..e66b9291 100644 --- a/tests/test_permissions.py +++ b/tests/test_permissions.py @@ -22,6 +22,26 @@ def test_view_query(allow, expected_anon, expected_auth): assert expected_auth == auth_response.status +def test_query_list_respects_view_query(): + with make_app_client( + metadata={ + "databases": { + "fixtures": { + "queries": {"q": {"sql": "select 1 + 1", "allow": {"id": "root"}}} + } + } + } + ) as client: + html_fragment = '
  • q 🔒
  • ' + anon_response = client.get("/fixtures") + assert html_fragment not in anon_response.text + assert '"/fixtures/q"' not in anon_response.text + auth_response = client.get( + "/fixtures", cookies={"ds_actor": client.ds.sign({"id": "root"}, "actor")} + ) + assert html_fragment in auth_response.text + + @pytest.mark.parametrize( "allow,expected_anon,expected_auth", [(None, 200, 200), ({}, 403, 403), ({"id": "root"}, 403, 200),],