1
0
Fork 0
mirror of https://github.com/retspen/webvirtcloud synced 2026-11-08 19:26:48 +00:00
webvirtcloud/templates/403_csrf.html
catborise 10eb0d1c2e feat: error pages that say what happened and what to do
The 403, 404 and 500 pages said "Oops!" and one generic sentence; a bad
request and a failed CSRF check fell back to Django's plain pages.

Every error page now shares templates/error.html: a card with the status
in a coloured badge with an icon, a heading in plain words, what happened
and what to do, and Back and Home buttons. It uses only theme-defined
Bootstrap classes, so it reads in the light and dark themes alike.

- 400: the request was not accepted; a new address belongs in ALLOWED_HOSTS.
- 403: the account lacks the permission; ask an administrator.
- 403 CSRF: the form's security check failed; reload and submit again,
  and where to look when it happens on every form.
- 404: the path, and that the object may be gone or hidden from the account.
- 500: a libvirt failure on a page says the host's data could not be
  loaded, under libvirt's message; any other failure says it was logged
  and shows the time to give an administrator.
2026-10-29 17:52:16 +03:00

14 lines
910 B
HTML

{% extends "error.html" %}
{% load i18n %}
{% block title %}{% trans "Form could not be submitted" %}{% endblock %}
{% block code %}403{% endblock %}
{% block status_classes %}text-bg-warning{% endblock %}
{% block icon %}bi-shield-exclamation{% endblock %}
{% block heading %}{% trans "Form could not be submitted" %}{% endblock %}
{% block text %}
<p class="mb-3">{% trans "This submission was rejected because its security check failed. It usually happens when the page was open for a long time, or after signing in or out in another tab." %}</p>
<p class="fw-semibold mb-3">{% trans "Go back, reload the page and submit the form again." %}</p>
<p class="small text-body-secondary border-top pt-3 mb-0">{% trans "If it happens on every form, the browser may block cookies, or the panel's proxy or address settings may be wrong. The reason is written to the panel's log." %}</p>
{% endblock %}