urls.py 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. from django.conf.urls import patterns, url, include
  2. from django.contrib import admin
  3. from django.contrib.auth import context_processors
  4. from django.contrib.auth.forms import AuthenticationForm
  5. from django.contrib.auth.urls import urlpatterns
  6. from django.contrib.auth.views import password_reset, login
  7. from django.contrib.auth.decorators import login_required
  8. from django.contrib.messages.api import info
  9. from django.http import HttpResponse, HttpRequest
  10. from django.shortcuts import render_to_response
  11. from django.template import Template, RequestContext
  12. from django.views.decorators.cache import never_cache
  13. class CustomRequestAuthenticationForm(AuthenticationForm):
  14. def __init__(self, request, *args, **kwargs):
  15. assert isinstance(request, HttpRequest)
  16. super(CustomRequestAuthenticationForm, self).__init__(request, *args, **kwargs)
  17. @never_cache
  18. def remote_user_auth_view(request):
  19. "Dummy view for remote user tests"
  20. t = Template("Username is {{ user }}.")
  21. c = RequestContext(request, {})
  22. return HttpResponse(t.render(c))
  23. def auth_processor_no_attr_access(request):
  24. render_to_response('context_processors/auth_attrs_no_access.html',
  25. RequestContext(request, {}, processors=[context_processors.auth]))
  26. # *After* rendering, we check whether the session was accessed
  27. return render_to_response('context_processors/auth_attrs_test_access.html',
  28. {'session_accessed': request.session.accessed})
  29. def auth_processor_attr_access(request):
  30. render_to_response('context_processors/auth_attrs_access.html',
  31. RequestContext(request, {}, processors=[context_processors.auth]))
  32. return render_to_response('context_processors/auth_attrs_test_access.html',
  33. {'session_accessed': request.session.accessed})
  34. def auth_processor_user(request):
  35. return render_to_response('context_processors/auth_attrs_user.html',
  36. RequestContext(request, {}, processors=[context_processors.auth]))
  37. def auth_processor_perms(request):
  38. return render_to_response('context_processors/auth_attrs_perms.html',
  39. RequestContext(request, {}, processors=[context_processors.auth]))
  40. def auth_processor_perm_in_perms(request):
  41. return render_to_response('context_processors/auth_attrs_perm_in_perms.html',
  42. RequestContext(request, {}, processors=[context_processors.auth]))
  43. def auth_processor_messages(request):
  44. info(request, "Message 1")
  45. return render_to_response('context_processors/auth_attrs_messages.html',
  46. RequestContext(request, {}, processors=[context_processors.auth]))
  47. def userpage(request):
  48. pass
  49. def custom_request_auth_login(request):
  50. return login(request, authentication_form=CustomRequestAuthenticationForm)
  51. # special urls for auth test cases
  52. urlpatterns = urlpatterns + patterns('',
  53. (r'^logout/custom_query/$', 'django.contrib.auth.views.logout', dict(redirect_field_name='follow')),
  54. (r'^logout/next_page/$', 'django.contrib.auth.views.logout', dict(next_page='/somewhere/')),
  55. (r'^logout/next_page/named/$', 'django.contrib.auth.views.logout', dict(next_page='password_reset')),
  56. (r'^remote_user/$', remote_user_auth_view),
  57. (r'^password_reset_from_email/$', 'django.contrib.auth.views.password_reset', dict(from_email='staffmember@example.com')),
  58. (r'^password_reset/custom_redirect/$', 'django.contrib.auth.views.password_reset', dict(post_reset_redirect='/custom/')),
  59. (r'^password_reset/custom_redirect/named/$', 'django.contrib.auth.views.password_reset', dict(post_reset_redirect='password_reset')),
  60. (r'^password_reset/html_email_template/$', 'django.contrib.auth.views.password_reset', dict(html_email_template_name='registration/html_password_reset_email.html')),
  61. (r'^reset/custom/(?P<uidb64>[0-9A-Za-z_\-]+)/(?P<token>[0-9A-Za-z]{1,13}-[0-9A-Za-z]{1,20})/$',
  62. 'django.contrib.auth.views.password_reset_confirm',
  63. dict(post_reset_redirect='/custom/')),
  64. (r'^reset/custom/named/(?P<uidb64>[0-9A-Za-z_\-]+)/(?P<token>[0-9A-Za-z]{1,13}-[0-9A-Za-z]{1,20})/$',
  65. 'django.contrib.auth.views.password_reset_confirm',
  66. dict(post_reset_redirect='password_reset')),
  67. (r'^password_change/custom/$', 'django.contrib.auth.views.password_change', dict(post_change_redirect='/custom/')),
  68. (r'^password_change/custom/named/$', 'django.contrib.auth.views.password_change', dict(post_change_redirect='password_reset')),
  69. (r'^admin_password_reset/$', 'django.contrib.auth.views.password_reset', dict(is_admin_site=True)),
  70. (r'^login_required/$', login_required(password_reset)),
  71. (r'^login_required_login_url/$', login_required(password_reset, login_url='/somewhere/')),
  72. (r'^auth_processor_no_attr_access/$', auth_processor_no_attr_access),
  73. (r'^auth_processor_attr_access/$', auth_processor_attr_access),
  74. (r'^auth_processor_user/$', auth_processor_user),
  75. (r'^auth_processor_perms/$', auth_processor_perms),
  76. (r'^auth_processor_perm_in_perms/$', auth_processor_perm_in_perms),
  77. (r'^auth_processor_messages/$', auth_processor_messages),
  78. (r'^custom_request_auth_login/$', custom_request_auth_login),
  79. url(r'^userpage/(.+)/$', userpage, name="userpage"),
  80. # This line is only required to render the password reset with is_admin=True
  81. (r'^admin/', include(admin.site.urls)),
  82. )