Ticket #5394: configurable-redirect-field-name.diff
| File configurable-redirect-field-name.diff, 3.8 kB (added by Petr Marhoun <petr.marhoun@gmail.com>, 1 year ago) |
|---|
-
django/conf/global_settings.py
old new 328 328 329 329 LOGIN_REDIRECT_URL = '/accounts/profile/' 330 330 331 REDIRECT_FIELD_NAME = 'next' 332 331 333 ########### 332 334 # TESTING # 333 335 ########### -
django/contrib/auth/__init__.py
old new 3 3 4 4 SESSION_KEY = '_auth_user_id' 5 5 BACKEND_SESSION_KEY = '_auth_user_backend' 6 REDIRECT_FIELD_NAME = 'next'7 6 8 7 def load_backend(path): 9 8 i = path.rfind('.') -
django/contrib/auth/decorators.py
old new 1 from django.contrib.auth import REDIRECT_FIELD_NAME2 1 from django.http import HttpResponseRedirect 3 2 from urllib import quote 4 3 … … 8 7 redirecting to the log-in page if necessary. The test should be a callable 9 8 that takes the user object and returns True if the user passes. 10 9 """ 10 from django.conf import settings 11 11 if not login_url: 12 from django.conf import settings13 12 login_url = settings.LOGIN_URL 14 13 def _dec(view_func): 15 14 def _checklogin(request, *args, **kwargs): 16 15 if test_func(request.user): 17 16 return view_func(request, *args, **kwargs) 18 return HttpResponseRedirect('%s?%s=%s' % (login_url, REDIRECT_FIELD_NAME, quote(request.get_full_path())))17 return HttpResponseRedirect('%s?%s=%s' % (login_url, settings.REDIRECT_FIELD_NAME, quote(request.get_full_path()))) 19 18 _checklogin.__doc__ = view_func.__doc__ 20 19 _checklogin.__dict__ = view_func.__dict__ 21 20 -
django/contrib/auth/views.py
old new 6 6 from django.contrib.sites.models import Site, RequestSite 7 7 from django.http import HttpResponseRedirect 8 8 from django.contrib.auth.decorators import login_required 9 from django.contrib.auth import REDIRECT_FIELD_NAME10 9 from django.utils.translation import ugettext as _ 11 10 12 11 def login(request, template_name='registration/login.html'): 13 12 "Displays the login form and handles the login action." 14 13 manipulator = AuthenticationForm(request) 15 redirect_to = request.REQUEST.get(REDIRECT_FIELD_NAME, '') 14 from django.conf import settings 15 redirect_to = request.REQUEST.get(settings.REDIRECT_FIELD_NAME, '') 16 16 if request.POST: 17 17 errors = manipulator.get_validation_errors(request.POST) 18 18 if not errors: 19 19 # Light security check -- make sure redirect_to isn't garbage. 20 20 if not redirect_to or '//' in redirect_to or ' ' in redirect_to: 21 from django.conf import settings22 21 redirect_to = settings.LOGIN_REDIRECT_URL 23 22 from django.contrib.auth import login 24 23 login(request, manipulator.get_user()) … … 35 34 36 35 return render_to_response(template_name, { 37 36 'form': oldforms.FormWrapper(manipulator, request.POST, errors), 38 REDIRECT_FIELD_NAME: redirect_to,37 settings.REDIRECT_FIELD_NAME: redirect_to, 39 38 'site_name': current_site.name, 40 39 }, context_instance=RequestContext(request)) 41 40 … … 61 60 if not login_url: 62 61 from django.conf import settings 63 62 login_url = settings.LOGIN_URL 64 return HttpResponseRedirect('%s?%s=%s' % (login_url, REDIRECT_FIELD_NAME, next))63 return HttpResponseRedirect('%s?%s=%s' % (login_url, settings.REDIRECT_FIELD_NAME, next)) 65 64 66 65 def password_reset(request, is_admin_site=False, template_name='registration/password_reset_form.html', 67 66 email_template_name='registration/password_reset_email.html'):
