Kaydet (Commit) f1761e3f authored tarafından Tim Graham's avatar Tim Graham

Refs #21648 -- Removed is_admin_site option from password_reset() view.

Per deprecation timeline.
üst fd6a299c
...@@ -17,9 +17,7 @@ from django.core.urlresolvers import reverse ...@@ -17,9 +17,7 @@ from django.core.urlresolvers import reverse
from django.http import HttpResponseRedirect, QueryDict from django.http import HttpResponseRedirect, QueryDict
from django.shortcuts import resolve_url from django.shortcuts import resolve_url
from django.template.response import TemplateResponse from django.template.response import TemplateResponse
from django.utils.deprecation import ( from django.utils.deprecation import RemovedInDjango20Warning
RemovedInDjango20Warning, RemovedInDjango110Warning,
)
from django.utils.encoding import force_text from django.utils.encoding import force_text
from django.utils.http import is_safe_url, urlsafe_base64_decode from django.utils.http import is_safe_url, urlsafe_base64_decode
from django.utils.six.moves.urllib.parse import urlparse, urlunparse from django.utils.six.moves.urllib.parse import urlparse, urlunparse
...@@ -166,7 +164,7 @@ def redirect_to_login(next, login_url=None, ...@@ -166,7 +164,7 @@ def redirect_to_login(next, login_url=None,
@deprecate_current_app @deprecate_current_app
@csrf_protect @csrf_protect
def password_reset(request, is_admin_site=False, def password_reset(request,
template_name='registration/password_reset_form.html', template_name='registration/password_reset_form.html',
email_template_name='registration/password_reset_email.html', email_template_name='registration/password_reset_email.html',
subject_template_name='registration/password_reset_subject.txt', subject_template_name='registration/password_reset_subject.txt',
...@@ -194,14 +192,6 @@ def password_reset(request, is_admin_site=False, ...@@ -194,14 +192,6 @@ def password_reset(request, is_admin_site=False,
'html_email_template_name': html_email_template_name, 'html_email_template_name': html_email_template_name,
'extra_email_context': extra_email_context, 'extra_email_context': extra_email_context,
} }
if is_admin_site:
warnings.warn(
"The is_admin_site argument to "
"django.contrib.auth.views.password_reset() is deprecated "
"and will be removed in Django 1.10.",
RemovedInDjango110Warning, 3
)
opts = dict(opts, domain_override=request.get_host())
form.save(**opts) form.save(**opts)
return HttpResponseRedirect(post_reset_redirect) return HttpResponseRedirect(post_reset_redirect)
else: else:
......
...@@ -1219,7 +1219,7 @@ implementation details see :ref:`using-the-views`. ...@@ -1219,7 +1219,7 @@ implementation details see :ref:`using-the-views`.
The ``current_app`` parameter is deprecated and will be removed in The ``current_app`` parameter is deprecated and will be removed in
Django 2.0. Callers should set ``request.current_app`` instead. Django 2.0. Callers should set ``request.current_app`` instead.
.. function:: password_reset(request, is_admin_site=False, template_name='registration/password_reset_form.html', email_template_name='registration/password_reset_email.html', subject_template_name='registration/password_reset_subject.txt', password_reset_form=PasswordResetForm, token_generator=default_token_generator, post_reset_redirect=None, from_email=None, current_app=None, extra_context=None, html_email_template_name=None, extra_email_context=None) .. function:: password_reset(request, template_name='registration/password_reset_form.html', email_template_name='registration/password_reset_email.html', subject_template_name='registration/password_reset_subject.txt', password_reset_form=PasswordResetForm, token_generator=default_token_generator, post_reset_redirect=None, from_email=None, current_app=None, extra_context=None, html_email_template_name=None, extra_email_context=None)
Allows a user to reset their password by generating a one-time use link Allows a user to reset their password by generating a one-time use link
that can be used to reset the password, and sending that link to the that can be used to reset the password, and sending that link to the
...@@ -1283,11 +1283,6 @@ implementation details see :ref:`using-the-views`. ...@@ -1283,11 +1283,6 @@ implementation details see :ref:`using-the-views`.
* ``extra_email_context``: A dictionary of context data that will available * ``extra_email_context``: A dictionary of context data that will available
in the email template. in the email template.
.. deprecated:: 1.8
The ``is_admin_site`` argument is deprecated and will be removed in
Django 1.10.
.. deprecated:: 1.9 .. deprecated:: 1.9
The ``current_app`` parameter is deprecated and will be removed in The ``current_app`` parameter is deprecated and will be removed in
......
...@@ -24,11 +24,8 @@ from django.core.urlresolvers import NoReverseMatch, reverse, reverse_lazy ...@@ -24,11 +24,8 @@ from django.core.urlresolvers import NoReverseMatch, reverse, reverse_lazy
from django.db import connection from django.db import connection
from django.http import HttpRequest, QueryDict from django.http import HttpRequest, QueryDict
from django.middleware.csrf import CsrfViewMiddleware, get_token from django.middleware.csrf import CsrfViewMiddleware, get_token
from django.test import ( from django.test import TestCase, modify_settings, override_settings
TestCase, ignore_warnings, modify_settings, override_settings,
)
from django.test.utils import patch_logger from django.test.utils import patch_logger
from django.utils.deprecation import RemovedInDjango110Warning
from django.utils.encoding import force_text from django.utils.encoding import force_text
from django.utils.http import urlquote from django.utils.http import urlquote
from django.utils.six.moves.urllib.parse import ParseResult, urlparse from django.utils.six.moves.urllib.parse import ParseResult, urlparse
...@@ -209,19 +206,6 @@ class PasswordResetTest(AuthViewsTestCase): ...@@ -209,19 +206,6 @@ class PasswordResetTest(AuthViewsTestCase):
self.assertEqual(len(mail.outbox), 1) self.assertEqual(len(mail.outbox), 1)
self.assertEqual("staffmember@example.com", mail.outbox[0].from_email) self.assertEqual("staffmember@example.com", mail.outbox[0].from_email)
@ignore_warnings(category=RemovedInDjango110Warning)
@override_settings(ALLOWED_HOSTS=['adminsite.com'])
def test_admin_reset(self):
"If the reset view is marked as being for admin, the HTTP_HOST header is used for a domain override."
response = self.client.post('/admin_password_reset/',
{'email': 'staffmember@example.com'},
HTTP_HOST='adminsite.com'
)
self.assertEqual(response.status_code, 302)
self.assertEqual(len(mail.outbox), 1)
self.assertIn("http://adminsite.com", mail.outbox[0].body)
self.assertEqual(settings.DEFAULT_FROM_EMAIL, mail.outbox[0].from_email)
# Skip any 500 handler action (like sending more mail...) # Skip any 500 handler action (like sending more mail...)
@override_settings(DEBUG_PROPAGATE_EXCEPTIONS=True) @override_settings(DEBUG_PROPAGATE_EXCEPTIONS=True)
def test_poisoned_http_host(self): def test_poisoned_http_host(self):
......
...@@ -85,7 +85,6 @@ urlpatterns = auth_urlpatterns + [ ...@@ -85,7 +85,6 @@ urlpatterns = auth_urlpatterns + [
dict(post_reset_redirect='password_reset')), dict(post_reset_redirect='password_reset')),
url(r'^password_change/custom/$', views.password_change, dict(post_change_redirect='/custom/')), url(r'^password_change/custom/$', views.password_change, dict(post_change_redirect='/custom/')),
url(r'^password_change/custom/named/$', views.password_change, dict(post_change_redirect='password_reset')), url(r'^password_change/custom/named/$', views.password_change, dict(post_change_redirect='password_reset')),
url(r'^admin_password_reset/$', views.password_reset, dict(is_admin_site=True)),
url(r'^login_required/$', login_required(views.password_reset)), url(r'^login_required/$', login_required(views.password_reset)),
url(r'^login_required_login_url/$', login_required(views.password_reset, login_url='/somewhere/')), url(r'^login_required_login_url/$', login_required(views.password_reset, login_url='/somewhere/')),
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment