more helpful CSRF failure view, add CSRF settings to settings.py
without this, users get a rather unhelpful/misleading response after clicking "Login" if they don't have cookies enabled.
This commit is contained in:
parent
a8cc003fe1
commit
3a919c242d
@ -237,3 +237,30 @@ Disallow: /nic/update/
|
|||||||
Disallow: /overview/
|
Disallow: /overview/
|
||||||
"""
|
"""
|
||||||
return HttpResponse(content, content_type="text/plain")
|
return HttpResponse(content, content_type="text/plain")
|
||||||
|
|
||||||
|
|
||||||
|
def CsrfFailureView(request, reason):
|
||||||
|
"""
|
||||||
|
Django's CSRF middleware's builtin view doesn't tell the user that he needs to have cookies enabled.
|
||||||
|
|
||||||
|
:param request: django request object
|
||||||
|
:return: HttpResponse object
|
||||||
|
"""
|
||||||
|
if reason == "CSRF cookie not set.":
|
||||||
|
content ="""\
|
||||||
|
This site needs cookies (for CSRF protection, for keeping your session after login).
|
||||||
|
|
||||||
|
Please enable cookies in your browser (or otherwise make sure the CSRF cookie can be set).
|
||||||
|
""" % dict(reason=reason)
|
||||||
|
status = 200
|
||||||
|
else:
|
||||||
|
content = """\
|
||||||
|
%(reason)s
|
||||||
|
|
||||||
|
CSRF verification failure.
|
||||||
|
|
||||||
|
Either you are trying to access this site in 'unusual' ways (then please stop doing that), or
|
||||||
|
you found an issue in the code (then please file an issue for this and tell how you got here).
|
||||||
|
""" % dict(reason=reason)
|
||||||
|
status = 403
|
||||||
|
return HttpResponse(content, status=status, content_type="text/plain")
|
||||||
|
@ -205,6 +205,15 @@ ACCOUNT_ACTIVATION_DAYS = 7
|
|||||||
|
|
||||||
LOGIN_REDIRECT_URL = '/overview/'
|
LOGIN_REDIRECT_URL = '/overview/'
|
||||||
|
|
||||||
|
CSRF_FAILURE_VIEW = 'nsupdate.main.views.CsrfFailureView'
|
||||||
|
|
||||||
|
# Settings for CSRF cookie.
|
||||||
|
CSRF_COOKIE_NAME = 'csrftoken'
|
||||||
|
CSRF_COOKIE_DOMAIN = None
|
||||||
|
CSRF_COOKIE_PATH = '/'
|
||||||
|
CSRF_COOKIE_SECURE = False
|
||||||
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
from .local_settings import *
|
from .local_settings import *
|
||||||
except ImportError:
|
except ImportError:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user