diff --git a/mamweb/settings_common.py b/mamweb/settings_common.py index 03724d3d..36b39296 100644 --- a/mamweb/settings_common.py +++ b/mamweb/settings_common.py @@ -54,6 +54,9 @@ LOGIN_REDIRECT_URL = 'profil' SESSION_EXPIRE_AT_BROWSER_CLOSE = True DOBA_ODHLASENI_PRI_ZASKRTNUTI_NEODHLASOVAT = 365 * 24 * 3600 # rok +# View pro chybu s CSRF tokenem (např. se sušenkami) +CSRF_FAILURE_VIEW = 'various.views.csrf_error' + # Modules configuration AUTHENTICATION_BACKENDS = ( diff --git a/mamweb/templates/500.html b/mamweb/templates/500.html index 7fc267fe..67085a8f 100644 --- a/mamweb/templates/500.html +++ b/mamweb/templates/500.html @@ -4,7 +4,9 @@ {% block errorheading %}
{# Meníčko nedostaneme, protože dostáváme prázdný kontext. Tak alespoň ať se O-JO-JO-JO-JOJ neschovává pod ním #} + {% block nadpis1a %} O-jo-jo-jo-joj + {% endblock %} {% endblock %} {% block errortext %} diff --git a/various/static/various/img/zere_kostku.svg b/various/static/various/img/zere_kostku.svg new file mode 100644 index 00000000..bac31662 --- /dev/null +++ b/various/static/various/img/zere_kostku.svg @@ -0,0 +1,87 @@ + + + + + + + + + + + + + + + + + + diff --git a/various/templates/various/403_csrf.html b/various/templates/various/403_csrf.html new file mode 100644 index 00000000..ff2f0cf9 --- /dev/null +++ b/various/templates/various/403_csrf.html @@ -0,0 +1,19 @@ +{#{% extends "error_base.html" %} Z toho nedědíme, protože se nemá přecházet na titulní stránku. #} +{% extends "base.html" %} + +{% load static %} + +{% block content %} + +

{% block nadpis1a %}O-jo-jo-jo-joj{% endblock nadpis1a %}

+ +

+ Problém se sušenkami či něčím podobným. Zkuste to prosím znovu: {{ url }}. Případně můžete přejít na titulní stránku. +

+ +

Pokud problém přetrvává obraťte se na nás přes e-mail: mailto:mam@matfyz.cz a pošlete nám následující popis chyby: {{ reason }}

+ + + + +{% endblock %} diff --git a/various/views.py b/various/views.py index 91ea44a2..7bc3fccd 100644 --- a/various/views.py +++ b/various/views.py @@ -1,3 +1,13 @@ +from django.http import HttpResponseForbidden from django.shortcuts import render # Create your views here. + + +def csrf_error(request, reason): + """ Jednoduchý „template_view“ (třída to být nemůže) pro CSRF chyby """ + return render( + request, 'various/403_csrf.html', + {"url": request.META["HTTP_REFERER"], "reason": reason}, + status=HttpResponseForbidden.status_code, + )