mirror of
https://github.com/pretix/pretix.git
synced 2026-05-07 15:34:02 +00:00
Improve session inheritation
This commit is contained in:
@@ -184,6 +184,7 @@ def event_index(request, organizer, event):
|
||||
s['pretix_event_access_{}'.format(request.event.pk)] = request.session.session_key
|
||||
s.create()
|
||||
ctx['new_session'] = s.session_key
|
||||
request.session['event_access'] = True
|
||||
|
||||
for a in ctx['actions']:
|
||||
a.display = a.display(request)
|
||||
|
||||
@@ -73,7 +73,12 @@ def _detect_event(request, require_live=True):
|
||||
)
|
||||
if not can_access and 'pretix_event_access_{}'.format(request.event.pk) in request.session:
|
||||
sparent = SessionStore(request.session.get('pretix_event_access_{}'.format(request.event.pk)))
|
||||
can_access = sparent.exists(request.session.get('pretix_event_access_{}'.format(request.event.pk)))
|
||||
try:
|
||||
parentdata = sparent.load()
|
||||
except:
|
||||
pass
|
||||
else:
|
||||
can_access = 'event_access' in parentdata
|
||||
|
||||
if not can_access:
|
||||
raise PermissionDenied(_('The selected ticket shop is currently not available.'))
|
||||
|
||||
@@ -118,10 +118,15 @@ class EventAuth(View):
|
||||
raise PermissionDenied(_('Please go back and try again.'))
|
||||
|
||||
parent = data.get('pretix_event_access_{}'.format(request.event.pk))
|
||||
sparent = SessionStore(parent)
|
||||
|
||||
if not sparent.exists(parent):
|
||||
sparent = SessionStore(parent)
|
||||
try:
|
||||
parentdata = sparent.load()
|
||||
except:
|
||||
raise PermissionDenied(_('Please go back and try again.'))
|
||||
else:
|
||||
if 'event_access' not in parentdata:
|
||||
raise PermissionDenied(_('Please go back and try again.'))
|
||||
|
||||
request.session['pretix_event_access_{}'.format(request.event.pk)] = parent
|
||||
return redirect(eventreverse(request.event, 'presale:event.index'))
|
||||
|
||||
Reference in New Issue
Block a user