diff --git a/src/pretix/control/views/dashboards.py b/src/pretix/control/views/dashboards.py index c29b3d2b1d..f59a84f326 100644 --- a/src/pretix/control/views/dashboards.py +++ b/src/pretix/control/views/dashboards.py @@ -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) diff --git a/src/pretix/presale/utils.py b/src/pretix/presale/utils.py index 37098352aa..681c6f8fbc 100644 --- a/src/pretix/presale/utils.py +++ b/src/pretix/presale/utils.py @@ -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.')) diff --git a/src/pretix/presale/views/event.py b/src/pretix/presale/views/event.py index b6fe8436df..8a112162e9 100644 --- a/src/pretix/presale/views/event.py +++ b/src/pretix/presale/views/event.py @@ -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'))