Customer login: Fix issue with organizer-level domains

This commit is contained in:
Raphael Michel
2021-05-07 09:59:04 +02:00
parent b5fdba796b
commit 366395278e
2 changed files with 15 additions and 14 deletions

View File

@@ -63,7 +63,7 @@ class EventMiddleware:
if url.namespace != 'presale':
return self.get_response(request)
if 'organizer' in url.kwargs or 'event' in url.kwargs or getattr(request, 'event_domain', False):
if 'organizer' in url.kwargs or 'event' in url.kwargs or getattr(request, 'event_domain', False) or getattr(request, 'organizer_domain', False):
redirect = _detect_event(request, require_live=url.url_name not in self.NO_REQUIRE_LIVE_URLS)
if redirect:
return redirect

View File

@@ -171,21 +171,22 @@ def _detect_event(request, require_live=True, require_plugin=None):
path = "/" + request.get_full_path().split("/", 2)[-1]
return redirect(path)
request.event = request.organizer.events.using(db).get(
slug=url.kwargs['event'],
organizer=request.organizer,
)
request.organizer = request.organizer
if 'event' in url.kwargs:
request.event = request.organizer.events.using(db).get(
slug=url.kwargs['event'],
organizer=request.organizer,
)
# If this event has a custom domain, send the user there
domain = get_event_domain(request.event)
if domain:
if request.port and request.port not in (80, 443):
domain = '%s:%d' % (domain, request.port)
path = request.get_full_path().split("/", 2)[-1]
r = redirect(urljoin('%s://%s' % (request.scheme, domain), path))
r['Access-Control-Allow-Origin'] = '*'
return r
# If this event has a custom domain, send the user there
domain = get_event_domain(request.event)
if domain:
if request.port and request.port not in (80, 443):
domain = '%s:%d' % (domain, request.port)
path = request.get_full_path().split("/", 2)[-1]
r = redirect(urljoin('%s://%s' % (request.scheme, domain), path))
r['Access-Control-Allow-Origin'] = '*'
return r
else:
# We are on our main domain
if 'event' in url.kwargs and 'organizer' in url.kwargs: