default_allow_sql setting, closes #1409

Refs #1410
This commit is contained in:
Simon Willison 2023-01-04 16:51:11 -08:00
commit c41278b46f
8 changed files with 61 additions and 4 deletions

View file

@ -141,6 +141,11 @@ SETTINGS = (
True,
"Allow users to create and use signed API tokens",
),
Setting(
"default_allow_sql",
True,
"Allow anyone to run arbitrary SQL queries",
),
Setting(
"max_signed_tokens_ttl",
0,

View file

@ -69,9 +69,15 @@ def permission_allowed_default(datasette, actor, action, resource):
return result
# Check custom permissions: blocks
return await _resolve_metadata_permissions_blocks(
result = await _resolve_metadata_permissions_blocks(
datasette, actor, action, resource
)
if result is not None:
return result
# --setting default_allow_sql
if action == "execute-sql" and not datasette.setting("default_allow_sql"):
return False
return inner