diff --git a/datasette/permissions.py b/datasette/permissions.py new file mode 100644 index 00000000..91c9e774 --- /dev/null +++ b/datasette/permissions.py @@ -0,0 +1,19 @@ +import collections + +Permission = collections.namedtuple( + "Permission", ("name", "abbr", "takes_database", "takes_table", "default") +) + +PERMISSIONS = ( + Permission("view-instance", "vi", False, False, True), + Permission("view-database", "vd", True, False, True), + Permission("view-database-download", "vdd", True, False, True), + Permission("view-table", "vt", True, True, True), + Permission("view-query", "vq", True, True, True), + Permission("insert-row", "ir", True, True, False), + Permission("delete-row", "dr", True, True, False), + Permission("drop-table", "dt", True, True, False), + Permission("execute-sql", "es", True, False, True), + Permission("permissions-debug", "pd", False, False, False), + Permission("debug-menu", "dm", False, False, False), +) diff --git a/datasette/templates/permissions_debug.html b/datasette/templates/permissions_debug.html index b0f50f0e..36a12acc 100644 --- a/datasette/templates/permissions_debug.html +++ b/datasette/templates/permissions_debug.html @@ -19,11 +19,97 @@ .check-action, .check-when, .check-result { font-size: 1.3em; } +textarea { + height: 10em; + width: 95%; + box-sizing: border-box; + padding: 0.5em; + border: 2px dotted black; +} +.two-col { + display: inline-block; + width: 48%; +} +.two-col label { + width: 48%; +} +@media only screen and (max-width: 576px) { + .two-col { + width: 100%; + } +} {% endblock %} {% block content %} +
This tool lets you simulate an actor and a permission check for that actor.
+ + + + +