From cda22a6f0d62df79f9f8356ae24d1f6e52a9d2bd Mon Sep 17 00:00:00 2001 From: ibuler Date: Thu, 15 Jun 2017 22:35:03 +0800 Subject: [PATCH] add demo mode middleware --- apps/jumpserver/middleware.py | 12 ++++++++++++ apps/jumpserver/settings.py | 1 + 2 files changed, 13 insertions(+) diff --git a/apps/jumpserver/middleware.py b/apps/jumpserver/middleware.py index 2ed94c6a8..65356adc8 100644 --- a/apps/jumpserver/middleware.py +++ b/apps/jumpserver/middleware.py @@ -1,8 +1,14 @@ # ~*~ coding: utf-8 ~*~ +import os import pytz from django.utils import timezone from django.utils.deprecation import MiddlewareMixin +from django.shortcuts import HttpResponse + + +DEMO_MODE = os.environ.get("DEMO_MODE", "") +SAFE_URL = ["/users/login",] class TimezoneMiddleware(MiddlewareMixin): @@ -12,3 +18,9 @@ class TimezoneMiddleware(MiddlewareMixin): timezone.activate(pytz.timezone(tzname)) else: timezone.deactivate() + + +class DemoMiddleware(MiddlewareMixin): + def process_request(self, request): + if DEMO_MODE and request.method not in ["GET", "HEAD"] and request.path not in SAFE_URL: + return HttpResponse("Demo mode, only get request accept", 403) diff --git a/apps/jumpserver/settings.py b/apps/jumpserver/settings.py index f5016f3e3..d36197080 100644 --- a/apps/jumpserver/settings.py +++ b/apps/jumpserver/settings.py @@ -79,6 +79,7 @@ MIDDLEWARE = [ 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', 'jumpserver.middleware.TimezoneMiddleware', + 'jumpserver.middleware.DemoMiddleware', ] ROOT_URLCONF = 'jumpserver.urls'