Fixed script prefixes in absolute URLs

This commit is contained in:
Raphael Michel
2015-06-18 15:33:40 +02:00
parent 32a9d9709b
commit 8b3eb14d73
6 changed files with 20 additions and 12 deletions

View File

@@ -1,5 +1,9 @@
from urllib.parse import urljoin
from django.conf import settings from django.conf import settings
from django.core.urlresolvers import reverse
def build_absolute_uri(url): def build_absolute_uri(urlname, args=None, kwargs=None):
return settings.SITE_URL + url # Pass prefix='' as a possible SCRIPT_PREFIX (if pretix runs in a subdirectory)
# is included in SITE_URL _and_ is added by reverse.
return urljoin(settings.SITE_URL, reverse(urlname, args, kwargs, prefix=''))

View File

@@ -89,8 +89,8 @@ class Paypal(BasePaymentProvider):
"payment_method": "paypal", "payment_method": "paypal",
}, },
"redirect_urls": { "redirect_urls": {
"return_url": build_absolute_uri(reverse('plugins:paypal:return')), "return_url": build_absolute_uri('plugins:paypal:return'),
"cancel_url": build_absolute_uri(reverse('plugins:paypal:abort')), "cancel_url": build_absolute_uri('plugins:paypal:abort'),
}, },
"transactions": [ "transactions": [
{ {

View File

@@ -71,12 +71,12 @@ def retry(request, order):
"payment_method": "paypal", "payment_method": "paypal",
}, },
"redirect_urls": { "redirect_urls": {
"return_url": build_absolute_uri(reverse('plugins:paypal:retry', kwargs={ "return_url": build_absolute_uri('plugins:paypal:retry', kwargs={
'order': order.code 'order': order.code
})), }),
"cancel_url": build_absolute_uri(reverse('plugins:paypal:retry', kwargs={ "cancel_url": build_absolute_uri('plugins:paypal:retry', kwargs={
'order': order.code 'order': order.code
})), }),
}, },
"transactions": [ "transactions": [
{ {

View File

@@ -40,7 +40,7 @@ class Stripe(BasePaymentProvider):
return "<div class='alert alert-info'>%s<br /><code>%s</code></div>" % ( return "<div class='alert alert-info'>%s<br /><code>%s</code></div>" % (
_('Please configure a <a href="https://dashboard.stripe.com/account/webhooks">Stripe Webhook</a> to ' _('Please configure a <a href="https://dashboard.stripe.com/account/webhooks">Stripe Webhook</a> to '
'the following endpoint in order to automatically cancel orders when a charges are refunded externally.'), 'the following endpoint in order to automatically cancel orders when a charges are refunded externally.'),
build_absolute_uri(reverse('plugins:stripe:webhook')) build_absolute_uri('plugins:stripe:webhook')
) )
def checkout_is_valid_session(self, request): def checkout_is_valid_session(self, request):

View File

@@ -305,7 +305,11 @@ class OrderConfirm(EventViewMixin, CartDisplayMixin, EventLoginRequiredMixin, Ch
{ {
'user': request.user, 'order': order, 'user': request.user, 'order': order,
'event': request.event, 'event': request.event,
'url': build_absolute_uri(self.get_order_url(order)), 'url': build_absolute_uri('presale:event.order', kwargs={
'event': self.request.event.slug,
'organizer': self.request.event.organizer.slug,
'order': order.code,
}),
'payment': self.payment_provider.order_pending_mail_render(order) 'payment': self.payment_provider.order_pending_mail_render(order)
}, },
request.event request.event

View File

@@ -188,10 +188,10 @@ class EventForgot(EventViewMixin, TemplateView):
{ {
'user': user, 'user': user,
'event': self.request.event, 'event': self.request.event,
'url': build_absolute_uri(reverse('presale:event.forgot.recover', kwargs={ 'url': build_absolute_uri('presale:event.forgot.recover', kwargs={
'event': self.request.event.slug, 'event': self.request.event.slug,
'organizer': self.request.event.organizer.slug, 'organizer': self.request.event.organizer.slug,
}) + '?token=' + self.generate_token(user)), }) + '?token=' + self.generate_token(user),
}, },
self.request.event self.request.event
) )