From 66d9ab8a93393a27dfa35fcee7b265fc83e217d5 Mon Sep 17 00:00:00 2001 From: Stephan Porada <sporada@uni-bielefeld.de> Date: Tue, 9 Jul 2019 15:39:28 +0200 Subject: [PATCH] Add custom error pages --- app/main/errors.py | 32 ++++++++++++++++++++++++++++++++ app/templates/403.html.j2 | 9 +++++++++ app/templates/404.html.j2 | 9 +++++++++ app/templates/500.html.j2 | 9 +++++++++ 4 files changed, 59 insertions(+) create mode 100644 app/main/errors.py create mode 100644 app/templates/403.html.j2 create mode 100644 app/templates/404.html.j2 create mode 100644 app/templates/500.html.j2 diff --git a/app/main/errors.py b/app/main/errors.py new file mode 100644 index 00000000..fbd99b13 --- /dev/null +++ b/app/main/errors.py @@ -0,0 +1,32 @@ +from flask import render_template, request, jsonify +from . import main + + +@main.app_errorhandler(403) +def forbidden(e): + if request.accept_mimetypes.accept_json and \ + not request.accept_mimetypes.accept_html: + response = jsonify({'error': 'forbidden'}) + response.status_code = 403 + return response + return render_template('403.html.j2'), 403 + + +@main.app_errorhandler(404) +def page_not_found(e): + if request.accept_mimetypes.accept_json and \ + not request.accept_mimetypes.accept_html: + response = jsonify({'error': 'not found'}) + response.status_code = 404 + return response + return render_template('404.html.j2'), 404 + + +@main.app_errorhandler(500) +def internal_server_error(e): + if request.accept_mimetypes.accept_json and \ + not request.accept_mimetypes.accept_html: + response = jsonify({'error': 'internal server error'}) + response.status_code = 500 + return response + return render_template('500.html.j2'), 500 diff --git a/app/templates/403.html.j2 b/app/templates/403.html.j2 new file mode 100644 index 00000000..95c46fda --- /dev/null +++ b/app/templates/403.html.j2 @@ -0,0 +1,9 @@ +{% extends "base.html.j2" %} + +{% block title %}Opaque - Forbidden{% endblock %} + +{% block page_content %} +<div class="page-header"> + <h1>Forbidden</h1> +</div> +{% endblock %} diff --git a/app/templates/404.html.j2 b/app/templates/404.html.j2 new file mode 100644 index 00000000..75f18cd5 --- /dev/null +++ b/app/templates/404.html.j2 @@ -0,0 +1,9 @@ +{% extends "base.html.j2" %} + +{% block title %}Opaque - Page Not Found{% endblock %} + +{% block page_content %} +<div class="page-header"> + <h1>Not Found</h1> +</div> +{% endblock %} diff --git a/app/templates/500.html.j2 b/app/templates/500.html.j2 new file mode 100644 index 00000000..43b7a941 --- /dev/null +++ b/app/templates/500.html.j2 @@ -0,0 +1,9 @@ +{% extends "base.html.j2" %} + +{% block title %}Opaque - Internal Server Error{% endblock %} + +{% block page_content %} +<div class="page-header"> + <h1>Internal Server Error</h1> +</div> +{% endblock %} -- GitLab