Merge pull request #997 from gasman/password-reset-url

Use BASE_URL in password reset email if available - fixes #841
pull/999/head
Dan Braghis 2015-02-17 14:12:52 +00:00
commit 3f3f5cee15
3 zmienionych plików z 40 dodań i 2 usunięć

Wyświetl plik

@ -1,3 +1,3 @@
{% load i18n %}
{% load i18n wagtailadmin_tags %}{% base_url_setting as base_url %}
{% trans "Please follow the link below to reset your password" %}
{{ protocol }}://{{ domain }}{% url 'wagtailadmin_password_reset_confirm' uidb64=uid token=token %}
{% if base_url %}{{ base_url }}{% else %}{{ protocol }}://{{ domain }}{% endif %}{% url 'wagtailadmin_password_reset_confirm' uidb64=uid token=token %}

Wyświetl plik

@ -134,6 +134,11 @@ def usage_count_enabled():
return getattr(settings, 'WAGTAIL_USAGE_COUNT_ENABLED', False)
@register.assignment_tag
def base_url_setting():
return getattr(settings, 'BASE_URL', None)
class EscapeScriptNode(template.Node):
TAG_NAME = 'escapescript'
SCRIPT_RE = re.compile(r'<(-*)/script>')

Wyświetl plik

@ -0,0 +1,33 @@
from django.test import TestCase, override_settings
from django.core import mail
from wagtail.tests.utils import WagtailTestUtils
from wagtail.wagtailcore.models import Site
class TestUserPasswordReset(TestCase, WagtailTestUtils):
fixtures = ['test.json']
# need to clear urlresolver caches before/after tests, because we override ROOT_URLCONF
# in some tests here
def setUp(self):
from django.core.urlresolvers import clear_url_caches
clear_url_caches()
def tearDown(self):
from django.core.urlresolvers import clear_url_caches
clear_url_caches()
@override_settings(ROOT_URLCONF="wagtail.wagtailadmin.urls")
def test_email_found_default_url(self):
response = self.client.post('/password_reset/', {'email': 'siteeditor@example.com'})
self.assertEqual(response.status_code, 302)
self.assertEqual(len(mail.outbox), 1)
self.assertIn("testserver", mail.outbox[0].body)
@override_settings(ROOT_URLCONF="wagtail.wagtailadmin.urls", BASE_URL='http://mysite.com')
def test_email_found_base_url(self):
response = self.client.post('/password_reset/', {'email': 'siteeditor@example.com'})
self.assertEqual(response.status_code, 302)
self.assertEqual(len(mail.outbox), 1)
self.assertIn("mysite.com", mail.outbox[0].body)