/-/actor.json no longer requires view-instance, closes #1945

This commit is contained in:
Simon Willison 2022-12-12 20:11:51 -08:00
commit c6a811237c
3 changed files with 38 additions and 3 deletions

View file

@ -1262,7 +1262,9 @@ class Datasette:
r"/-/databases(\.(?P<format>json))?$",
)
add_route(
JsonDataView.as_view(self, "actor.json", self._actor, needs_request=True),
JsonDataView.as_view(
self, "actor.json", self._actor, needs_request=True, permission=None
),
r"/-/actor(\.(?P<format>json))?$",
)
add_route(

View file

@ -10,15 +10,24 @@ import urllib
class JsonDataView(BaseView):
name = "json_data"
def __init__(self, datasette, filename, data_callback, needs_request=False):
def __init__(
self,
datasette,
filename,
data_callback,
needs_request=False,
permission="view-instance",
):
self.ds = datasette
self.filename = filename
self.data_callback = data_callback
self.needs_request = needs_request
self.permission = permission
async def get(self, request):
as_format = request.url_vars["format"]
await self.ds.ensure_permissions(request.actor, ["view-instance"])
if self.permission:
await self.ds.ensure_permissions(request.actor, [self.permission])
if self.needs_request:
data = self.data_callback(request)
else: