Improve session inheritation

This commit is contained in:
Raphael Michel
2017-01-05 12:15:38 +01:00
parent d3f21353ca
commit 0998814e69
3 changed files with 14 additions and 3 deletions

View File

@@ -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)

View File

@@ -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.'))

View File

@@ -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'))