From 9d62f0bede294f37d4b7a3b66059708a24568e47 Mon Sep 17 00:00:00 2001 From: Kum1ta Date: Wed, 11 Sep 2024 17:27:23 +0200 Subject: [PATCH] Site/Django : - Add 404 error - change request method to post for load page --- .../file/server/server/settings.py | 1 - .../file/server/server/templates/err404.html | 7 +++++ .../djangoserver/file/server/server/views.py | 6 ++-- .../nginx/static/javascript/Page.js | 30 ++++++++++++++++--- 4 files changed, 37 insertions(+), 7 deletions(-) create mode 100644 docker-compose/requirements/djangoserver/file/server/server/templates/err404.html diff --git a/docker-compose/requirements/djangoserver/file/server/server/settings.py b/docker-compose/requirements/djangoserver/file/server/server/settings.py index 9550615..8ea928d 100644 --- a/docker-compose/requirements/djangoserver/file/server/server/settings.py +++ b/docker-compose/requirements/djangoserver/file/server/server/settings.py @@ -44,7 +44,6 @@ MIDDLEWARE = [ 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', - 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', diff --git a/docker-compose/requirements/djangoserver/file/server/server/templates/err404.html b/docker-compose/requirements/djangoserver/file/server/server/templates/err404.html new file mode 100644 index 0000000..9a36947 --- /dev/null +++ b/docker-compose/requirements/djangoserver/file/server/server/templates/err404.html @@ -0,0 +1,7 @@ +
+

PTME

+
+
+

404

+

Page not found

+
\ No newline at end of file diff --git a/docker-compose/requirements/djangoserver/file/server/server/views.py b/docker-compose/requirements/djangoserver/file/server/server/views.py index 62e1ae7..f8f3788 100644 --- a/docker-compose/requirements/djangoserver/file/server/server/views.py +++ b/docker-compose/requirements/djangoserver/file/server/server/views.py @@ -18,13 +18,15 @@ def index(request): def homePage(request): request.session.save() if(request.method != "POST"): - return(HttpResponse("wrong method",status=403)) + return index(request) link42 = f"https://api.intra.42.fr/oauth/authorize?client_id={UID42}&redirect_uri={SERVER_URL}/login42&response_type=code&scope=public" return render(request, "homePage.html", {"link42" : link42}) def lobbyPage(request): request.session.save() - if(not request.session.get("logged_in", False) or request.method != "POST"): + if(request.method != "POST"): + return index(request) + if(not request.session.get("logged_in", False)): return(HttpResponse("you are not logged in",status=403)) return render(request, "lobbyPage.html", {}) diff --git a/docker-compose/requirements/nginx/static/javascript/Page.js b/docker-compose/requirements/nginx/static/javascript/Page.js index e951314..26913e7 100644 --- a/docker-compose/requirements/nginx/static/javascript/Page.js +++ b/docker-compose/requirements/nginx/static/javascript/Page.js @@ -6,7 +6,7 @@ /* By: edbernar { if (response.status != 200) throw Error("Page '" + name + "' can't be loaded") @@ -71,6 +72,7 @@ class Page }) }) .catch(error => { + window.location.href = '/'; throw Error(error); }); @@ -82,7 +84,27 @@ class Page #showUnknownPage() { - document.body.innerHTML = "404 - Page not found"; + if (this.actualPage != null) + this.actualPage.dispose(); + fetch('/404') + .then(response => { + if (response.status != 200) + throw Error("Page '" + name + "' can't be loaded") + return (response); + }) + .then(data => { + data.text().then(text => { + document.body.innerHTML = text; + this.actualPage = null; + document.title = 'PTME - Page not found'; + history.pushState({}, this.availablePages[i].title, this.availablePages[i].url); + }) + }) + .catch(error => { + window.location.href = '/'; + throw Error(error); + }); + } };