-
-
Notifications
You must be signed in to change notification settings - Fork 813
Closed
Milestone
Description
A plugin hook that adds more named permissions to the list which is initially populated here:
datasette/datasette/permissions.py
Lines 1 to 19 in e539c1c
| 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), | |
| ) |
Originally imagined this hook in this comment:
I need this for a few reasons:
- "permissions" propery in metadata for configuring arbitrary permissions #1636
- Needs it in order to validate that permissions defined in
metadata.jsonare set in the right place (don't set an instance permissions at table level for example)
- Needs it in order to validate that permissions defined in
datasette create-tokenability to create tokens with a reduced set of permissions #1855- Needs it to be able to register additional abbreviations for use in signed cookies
- And for validation when you use
datasette create-tokenand pass in extra permissions
- The https://latest.datasette.io/-/permissions debug interface needs it to add extra debug options to the
<select>
Reactions are currently unavailable