From 2a96575b4d152d8c6d72b3d554161c6b74670efd Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Fri, 16 Jul 2021 13:30:21 +0200 Subject: [PATCH] Event-level domains: Fix customer logout --- .../pretixpresale/fragment_login_status.html | 4 ++-- src/pretix/presale/urls.py | 3 +++ src/pretix/presale/views/customer.py | 11 +++++++++-- 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/pretix/presale/templates/pretixpresale/fragment_login_status.html b/src/pretix/presale/templates/pretixpresale/fragment_login_status.html index f8a520b5a..1e558804a 100644 --- a/src/pretix/presale/templates/pretixpresale/fragment_login_status.html +++ b/src/pretix/presale/templates/pretixpresale/fragment_login_status.html @@ -9,13 +9,13 @@ title="{% trans "View user profile" %}" data-toggle="tooltip"> {{ request.customer.name|default:request.customer.email }} - {% else %} - + {% trans "Log in" %} {% endif %} diff --git a/src/pretix/presale/urls.py b/src/pretix/presale/urls.py index 84e16cab0..50ef7ab99 100644 --- a/src/pretix/presale/urls.py +++ b/src/pretix/presale/urls.py @@ -156,6 +156,9 @@ event_patterns = [ re_path(r'^widget/v1.css$', pretix.presale.views.widget.widget_css, name='event.widget.css'), re_path(r'^(?P\d+)/widget/product_list$', pretix.presale.views.widget.WidgetAPIProductList.as_view(), name='event.widget.productlist'), + + # Account management is done on org level, but we at least need a logout + re_path(r'^account/logout$', pretix.presale.views.customer.LogoutView.as_view(), name='organizer.customer.logout'), ] organizer_patterns = [ diff --git a/src/pretix/presale/views/customer.py b/src/pretix/presale/views/customer.py index 63b73bc23..1a1eca266 100644 --- a/src/pretix/presale/views/customer.py +++ b/src/pretix/presale/views/customer.py @@ -96,7 +96,11 @@ class LoginView(RedirectBackMixin, FormView): def get_success_url(self): url = self.get_redirect_url() - return url or eventreverse(self.request.organizer, 'presale:organizer.customer.profile', kwargs={}) + if getattr(self.request, 'event_domain', False): + default_url = '/' + else: + default_url = eventreverse(self.request.organizer, 'presale:organizer.customer.profile', kwargs={}) + return url or default_url def form_valid(self, form): """Security check complete. Log the user in.""" @@ -114,7 +118,10 @@ class LogoutView(View): return HttpResponseRedirect(next_page) def get_next_page(self): - next_page = eventreverse(self.request.organizer, 'presale:organizer.index', kwargs={}) + if getattr(self.request, 'event_domain', False): + next_page = '/' + else: + next_page = eventreverse(self.request.organizer, 'presale:organizer.index', kwargs={}) if (self.redirect_field_name in self.request.POST or self.redirect_field_name in self.request.GET):