diff --git a/src/pretix/helpers/urls.py b/src/pretix/helpers/urls.py new file mode 100644 index 0000000000..ec9087f452 --- /dev/null +++ b/src/pretix/helpers/urls.py @@ -0,0 +1,5 @@ +from django.conf import settings + + +def build_absolute_uri(url): + return settings.SITE_URL + url diff --git a/src/pretix/plugins/paypal/payment.py b/src/pretix/plugins/paypal/payment.py index 33d4d4d1a1..0939f79dc5 100644 --- a/src/pretix/plugins/paypal/payment.py +++ b/src/pretix/plugins/paypal/payment.py @@ -12,6 +12,7 @@ import paypalrestsdk from pretix.base.models import Quota from pretix.base.services.orders import mark_order_paid from pretix.base.payment import BasePaymentProvider +from pretix.helpers.urls import build_absolute_uri logger = logging.getLogger('pretix.plugins.paypal') @@ -88,8 +89,8 @@ class Paypal(BasePaymentProvider): "payment_method": "paypal", }, "redirect_urls": { - "return_url": request.build_absolute_uri(reverse('plugins:paypal:return')), - "cancel_url": request.build_absolute_uri(reverse('plugins:paypal:abort')), + "return_url": build_absolute_uri(reverse('plugins:paypal:return')), + "cancel_url": build_absolute_uri(reverse('plugins:paypal:abort')), }, "transactions": [ { diff --git a/src/pretix/plugins/paypal/views.py b/src/pretix/plugins/paypal/views.py index e281edc089..ab9695e3c7 100644 --- a/src/pretix/plugins/paypal/views.py +++ b/src/pretix/plugins/paypal/views.py @@ -7,6 +7,7 @@ import paypalrestsdk from pretix.base.models import Event, Order from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext as __ +from pretix.helpers.urls import build_absolute_uri from pretix.plugins.paypal.payment import Paypal @@ -70,10 +71,10 @@ def retry(request, order): "payment_method": "paypal", }, "redirect_urls": { - "return_url": request.build_absolute_uri(reverse('plugins:paypal:retry', kwargs={ + "return_url": build_absolute_uri(reverse('plugins:paypal:retry', kwargs={ 'order': order.code })), - "cancel_url": request.build_absolute_uri(reverse('plugins:paypal:retry', kwargs={ + "cancel_url": build_absolute_uri(reverse('plugins:paypal:retry', kwargs={ 'order': order.code })), }, diff --git a/src/pretix/plugins/stripe/payment.py b/src/pretix/plugins/stripe/payment.py index 0ce2740436..f185fa9c85 100644 --- a/src/pretix/plugins/stripe/payment.py +++ b/src/pretix/plugins/stripe/payment.py @@ -9,6 +9,7 @@ from django.utils.translation import ugettext_lazy as _ from django import forms from pretix.base.models import Quota from pretix.base.services.orders import mark_order_paid +from pretix.helpers.urls import build_absolute_uri import stripe from pretix.base.payment import BasePaymentProvider @@ -39,7 +40,7 @@ class Stripe(BasePaymentProvider): return "
%s
%s
" % ( _('Please configure a Stripe Webhook to ' 'the following endpoint in order to automatically cancel orders when a charges are refunded externally.'), - request.build_absolute_uri(reverse('plugins:stripe:webhook')) + build_absolute_uri(reverse('plugins:stripe:webhook')) ) def checkout_is_valid_session(self, request): diff --git a/src/pretix/presale/views/checkout.py b/src/pretix/presale/views/checkout.py index 324e397f5f..f297c93a86 100644 --- a/src/pretix/presale/views/checkout.py +++ b/src/pretix/presale/views/checkout.py @@ -13,6 +13,7 @@ from django.utils.translation import ugettext_lazy as _ from pretix.base.services.mail import mail from pretix.base.models import CartPosition, QuestionAnswer, Quota, Order, OrderPosition from pretix.base.signals import register_payment_providers +from pretix.helpers.urls import build_absolute_uri from pretix.presale.forms.checkout import QuestionsForm from pretix.presale.views import EventViewMixin, CartDisplayMixin, EventLoginRequiredMixin @@ -304,7 +305,7 @@ class OrderConfirm(EventViewMixin, CartDisplayMixin, EventLoginRequiredMixin, Ch { 'user': request.user, 'order': order, 'event': request.event, - 'url': request.build_absolute_uri(self.get_order_url(order)), + 'url': build_absolute_uri(self.get_order_url(order)), 'payment': self.payment_provider.order_pending_mail_render(order) }, request.event diff --git a/src/pretix/presale/views/event.py b/src/pretix/presale/views/event.py index 75bdb77cc8..d295c4179c 100644 --- a/src/pretix/presale/views/event.py +++ b/src/pretix/presale/views/event.py @@ -14,6 +14,7 @@ from django.utils.translation import ugettext_lazy as _ from django.conf import settings from pretix.base.services.mail import mail from pretix.base.models import User +from pretix.helpers.urls import build_absolute_uri from pretix.presale.forms.auth import GlobalRegistrationForm, LocalRegistrationForm, PasswordForgotForm, \ PasswordRecoverForm from pretix.presale.forms.auth import LoginForm @@ -187,10 +188,10 @@ class EventForgot(EventViewMixin, TemplateView): { 'user': user, 'event': self.request.event, - 'url': settings.SITE_URL + reverse('presale:event.forgot.recover', kwargs={ + 'url': build_absolute_uri(reverse('presale:event.forgot.recover', kwargs={ 'event': self.request.event.slug, 'organizer': self.request.event.organizer.slug, - }) + '?token=' + self.generate_token(user), + }) + '?token=' + self.generate_token(user)), }, self.request.event )