Fixed #71 -- Consistent building of absolute URIs

This commit is contained in:
Raphael Michel
2015-06-16 23:04:10 +02:00
parent ed8b983f19
commit 7f6e89213f
6 changed files with 18 additions and 8 deletions

View File

@@ -0,0 +1,5 @@
from django.conf import settings
def build_absolute_uri(url):
return settings.SITE_URL + url

View File

@@ -12,6 +12,7 @@ import paypalrestsdk
from pretix.base.models import Quota from pretix.base.models import Quota
from pretix.base.services.orders import mark_order_paid from pretix.base.services.orders import mark_order_paid
from pretix.base.payment import BasePaymentProvider from pretix.base.payment import BasePaymentProvider
from pretix.helpers.urls import build_absolute_uri
logger = logging.getLogger('pretix.plugins.paypal') logger = logging.getLogger('pretix.plugins.paypal')
@@ -88,8 +89,8 @@ class Paypal(BasePaymentProvider):
"payment_method": "paypal", "payment_method": "paypal",
}, },
"redirect_urls": { "redirect_urls": {
"return_url": request.build_absolute_uri(reverse('plugins:paypal:return')), "return_url": build_absolute_uri(reverse('plugins:paypal:return')),
"cancel_url": request.build_absolute_uri(reverse('plugins:paypal:abort')), "cancel_url": build_absolute_uri(reverse('plugins:paypal:abort')),
}, },
"transactions": [ "transactions": [
{ {

View File

@@ -7,6 +7,7 @@ import paypalrestsdk
from pretix.base.models import Event, Order from pretix.base.models import Event, Order
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
from django.utils.translation import ugettext as __ from django.utils.translation import ugettext as __
from pretix.helpers.urls import build_absolute_uri
from pretix.plugins.paypal.payment import Paypal from pretix.plugins.paypal.payment import Paypal
@@ -70,10 +71,10 @@ def retry(request, order):
"payment_method": "paypal", "payment_method": "paypal",
}, },
"redirect_urls": { "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 '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 'order': order.code
})), })),
}, },

View File

@@ -9,6 +9,7 @@ from django.utils.translation import ugettext_lazy as _
from django import forms from django import forms
from pretix.base.models import Quota from pretix.base.models import Quota
from pretix.base.services.orders import mark_order_paid from pretix.base.services.orders import mark_order_paid
from pretix.helpers.urls import build_absolute_uri
import stripe import stripe
from pretix.base.payment import BasePaymentProvider from pretix.base.payment import BasePaymentProvider
@@ -39,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.'),
request.build_absolute_uri(reverse('plugins:stripe:webhook')) build_absolute_uri(reverse('plugins:stripe:webhook'))
) )
def checkout_is_valid_session(self, request): def checkout_is_valid_session(self, request):

View File

@@ -13,6 +13,7 @@ from django.utils.translation import ugettext_lazy as _
from pretix.base.services.mail import mail from pretix.base.services.mail import mail
from pretix.base.models import CartPosition, QuestionAnswer, Quota, Order, OrderPosition from pretix.base.models import CartPosition, QuestionAnswer, Quota, Order, OrderPosition
from pretix.base.signals import register_payment_providers 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.forms.checkout import QuestionsForm
from pretix.presale.views import EventViewMixin, CartDisplayMixin, EventLoginRequiredMixin from pretix.presale.views import EventViewMixin, CartDisplayMixin, EventLoginRequiredMixin
@@ -304,7 +305,7 @@ class OrderConfirm(EventViewMixin, CartDisplayMixin, EventLoginRequiredMixin, Ch
{ {
'user': request.user, 'order': order, 'user': request.user, 'order': order,
'event': request.event, '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) 'payment': self.payment_provider.order_pending_mail_render(order)
}, },
request.event request.event

View File

@@ -14,6 +14,7 @@ from django.utils.translation import ugettext_lazy as _
from django.conf import settings from django.conf import settings
from pretix.base.services.mail import mail from pretix.base.services.mail import mail
from pretix.base.models import User from pretix.base.models import User
from pretix.helpers.urls import build_absolute_uri
from pretix.presale.forms.auth import GlobalRegistrationForm, LocalRegistrationForm, PasswordForgotForm, \ from pretix.presale.forms.auth import GlobalRegistrationForm, LocalRegistrationForm, PasswordForgotForm, \
PasswordRecoverForm PasswordRecoverForm
from pretix.presale.forms.auth import LoginForm from pretix.presale.forms.auth import LoginForm
@@ -187,10 +188,10 @@ class EventForgot(EventViewMixin, TemplateView):
{ {
'user': user, 'user': user,
'event': self.request.event, '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, '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
) )