Package django :: Package contrib :: Package auth :: Module views
[hide private]
[frames] | no frames]

Source Code for Module django.contrib.auth.views

  1  from django.contrib.auth.forms import AuthenticationForm 
  2  from django.contrib.auth.forms import PasswordResetForm, PasswordChangeForm 
  3  from django import oldforms 
  4  from django.shortcuts import render_to_response 
  5  from django.template import RequestContext 
  6  from django.contrib.sites.models import Site, RequestSite 
  7  from django.http import HttpResponseRedirect 
  8  from django.contrib.auth.decorators import login_required 
  9  from django.contrib.auth import REDIRECT_FIELD_NAME 
 10  from django.utils.translation import ugettext as _ 
 11   
12 -def login(request, template_name='registration/login.html', redirect_field_name=REDIRECT_FIELD_NAME):
13 "Displays the login form and handles the login action." 14 manipulator = AuthenticationForm(request) 15 redirect_to = request.REQUEST.get(redirect_field_name, '') 16 if request.POST: 17 errors = manipulator.get_validation_errors(request.POST) 18 if not errors: 19 # Light security check -- make sure redirect_to isn't garbage. 20 if not redirect_to or '//' in redirect_to or ' ' in redirect_to: 21 from django.conf import settings 22 redirect_to = settings.LOGIN_REDIRECT_URL 23 from django.contrib.auth import login 24 login(request, manipulator.get_user()) 25 request.session.delete_test_cookie() 26 return HttpResponseRedirect(redirect_to) 27 else: 28 errors = {} 29 request.session.set_test_cookie() 30 31 if Site._meta.installed: 32 current_site = Site.objects.get_current() 33 else: 34 current_site = RequestSite(request) 35 36 return render_to_response(template_name, { 37 'form': oldforms.FormWrapper(manipulator, request.POST, errors), 38 redirect_field_name: redirect_to, 39 'site_name': current_site.name, 40 }, context_instance=RequestContext(request))
41
42 -def logout(request, next_page=None, template_name='registration/logged_out.html'):
43 "Logs out the user and displays 'You are logged out' message." 44 from django.contrib.auth import logout 45 logout(request) 46 if next_page is None: 47 return render_to_response(template_name, {'title': _('Logged out')}, context_instance=RequestContext(request)) 48 else: 49 # Redirect to this page until the session has been cleared. 50 return HttpResponseRedirect(next_page or request.path)
51
52 -def logout_then_login(request, login_url=None):
53 "Logs out the user if he is logged in. Then redirects to the log-in page." 54 if not login_url: 55 from django.conf import settings 56 login_url = settings.LOGIN_URL 57 return logout(request, login_url)
58
59 -def redirect_to_login(next, login_url=None, redirect_field_name=REDIRECT_FIELD_NAME):
60 "Redirects the user to the login page, passing the given 'next' page" 61 if not login_url: 62 from django.conf import settings 63 login_url = settings.LOGIN_URL 64 return HttpResponseRedirect('%s?%s=%s' % (login_url, redirect_field_name, next))
65
66 -def password_reset(request, is_admin_site=False, template_name='registration/password_reset_form.html', 67 email_template_name='registration/password_reset_email.html'):
68 new_data, errors = {}, {} 69 form = PasswordResetForm() 70 if request.POST: 71 new_data = request.POST.copy() 72 errors = form.get_validation_errors(new_data) 73 if not errors: 74 if is_admin_site: 75 form.save(domain_override=request.META['HTTP_HOST']) 76 else: 77 form.save(email_template_name=email_template_name) 78 return HttpResponseRedirect('%sdone/' % request.path) 79 return render_to_response(template_name, {'form': oldforms.FormWrapper(form, new_data, errors)}, 80 context_instance=RequestContext(request))
81
82 -def password_reset_done(request, template_name='registration/password_reset_done.html'):
83 return render_to_response(template_name, context_instance=RequestContext(request))
84
85 -def password_change(request, template_name='registration/password_change_form.html'):
86 new_data, errors = {}, {} 87 form = PasswordChangeForm(request.user) 88 if request.POST: 89 new_data = request.POST.copy() 90 errors = form.get_validation_errors(new_data) 91 if not errors: 92 form.save(new_data) 93 return HttpResponseRedirect('%sdone/' % request.path) 94 return render_to_response(template_name, {'form': oldforms.FormWrapper(form, new_data, errors)}, 95 context_instance=RequestContext(request))
96 password_change = login_required(password_change) 97
98 -def password_change_done(request, template_name='registration/password_change_done.html'):
99 return render_to_response(template_name, context_instance=RequestContext(request))
100