Commit cda22a6f authored by ibuler's avatar ibuler

add demo mode middleware

parent 8f4d8b1c
# ~*~ coding: utf-8 ~*~ # ~*~ coding: utf-8 ~*~
import os
import pytz import pytz
from django.utils import timezone from django.utils import timezone
from django.utils.deprecation import MiddlewareMixin 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): class TimezoneMiddleware(MiddlewareMixin):
...@@ -12,3 +18,9 @@ class TimezoneMiddleware(MiddlewareMixin): ...@@ -12,3 +18,9 @@ class TimezoneMiddleware(MiddlewareMixin):
timezone.activate(pytz.timezone(tzname)) timezone.activate(pytz.timezone(tzname))
else: else:
timezone.deactivate() 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)
...@@ -79,6 +79,7 @@ MIDDLEWARE = [ ...@@ -79,6 +79,7 @@ MIDDLEWARE = [
'django.contrib.messages.middleware.MessageMiddleware', 'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware',
'jumpserver.middleware.TimezoneMiddleware', 'jumpserver.middleware.TimezoneMiddleware',
'jumpserver.middleware.DemoMiddleware',
] ]
ROOT_URLCONF = 'jumpserver.urls' ROOT_URLCONF = 'jumpserver.urls'
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment