From 09d982eb481f971e775f8d49b4d34a0f43c3e071 Mon Sep 17 00:00:00 2001 From: Johnny Date: Tue, 30 Oct 2018 20:14:58 +0000 Subject: [PATCH] Returns 404 if webclient is supposed to be disabled. --- evennia/web/webclient/views.py | 6 ++++++ evennia/web/website/tests.py | 12 ++++++++++++ 2 files changed, 18 insertions(+) diff --git a/evennia/web/webclient/views.py b/evennia/web/webclient/views.py index de1bf8386b..6bbb5b6a64 100644 --- a/evennia/web/webclient/views.py +++ b/evennia/web/webclient/views.py @@ -5,6 +5,8 @@ page and serve it eventual static content. """ from __future__ import print_function +from django.conf import settings +from django.http import Http404 from django.shortcuts import render from django.contrib.auth import login, authenticate @@ -19,6 +21,10 @@ def webclient(request): """ # auto-login is now handled by evennia.web.utils.middleware + # check if webclient should be enabled + if not settings.WEBCLIENT_ENABLED: + raise Http404 + # make sure to store the browser session's hash so the webclient can get to it! pagevars = {'browser_sessid': request.session.session_key} diff --git a/evennia/web/website/tests.py b/evennia/web/website/tests.py index 95f9b6217b..4175dc22fc 100644 --- a/evennia/web/website/tests.py +++ b/evennia/web/website/tests.py @@ -94,6 +94,18 @@ class PasswordResetTest(EvenniaWebTest): class WebclientTest(EvenniaWebTest): url_name = 'webclient:index' + @override_settings(WEBCLIENT_ENABLED=True) + def test_get(self): + self.authenticated_response = 200 + self.unauthenticated_response = 200 + super(WebclientTest, self).test_get() + + @override_settings(WEBCLIENT_ENABLED=False) + def test_get_disabled(self): + self.authenticated_response = 404 + self.unauthenticated_response = 404 + super(WebclientTest, self).test_get() + class ChannelListTest(EvenniaWebTest): url_name = 'channels'