mirror of
https://github.com/pretix/pretix.git
synced 2026-11-11 01:27:08 +00:00
Merge branch 'ticketoutputpdf-security' into 'master'
[SECURITY] Fix missing permission check for ticket layout API (CVE-2026-125744) See merge request pretix/pretix!60
This commit is contained in:
commit
ae95df7ea2
2 files changed
+20
No files matched your search
@@ -123,6 +123,7 @@ class TicketLayoutViewSet(viewsets.ModelViewSet):
|
||||
serializer_class = TicketLayoutSerializer
|
||||
queryset = TicketLayout.objects.none()
|
||||
lookup_field = 'id'
|
||||
write_permission = 'event.settings.general:write'
|
||||
|
||||
def get_queryset(self):
|
||||
return self.request.event.ticket_layouts.all()
|
||||
|
||||
@@ -356,3 +356,22 @@ def test_renderer_batch_invalid(env, token_client, position):
|
||||
)
|
||||
assert resp.status_code == 400
|
||||
assert resp.data == {"parts": ["Please do not submit more than 1000 parts."]}
|
||||
|
||||
|
||||
@pytest.mark.django_db
|
||||
def test_api_permission(env, token_client):
|
||||
t = env[0].organizer.teams.get()
|
||||
t.limit_event_permissions = {"event.orders:read": True}
|
||||
t.all_event_permissions = False
|
||||
t.save()
|
||||
resp = token_client.patch(
|
||||
'/api/v1/organizers/{}/events/{}/ticketlayouts/{}/'.format(env[0].slug, env[0].slug, env[1].pk),
|
||||
{
|
||||
"name": "Bar",
|
||||
"layout": [
|
||||
{"type": "barcodearea", "left": "7.00", "bottom": "11.15", "size": "45.00", "content": "secret"}
|
||||
]
|
||||
},
|
||||
format='json'
|
||||
)
|
||||
assert resp.status_code == 403
|
||||
Reference in new issue
Block a user