add demo mode middleware

pull/533/head^2
ibuler 2017-06-15 22:35:03 +08:00
parent 8f4d8b1c02
commit cda22a6f0d
2 changed files with 13 additions and 0 deletions

View File

@ -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)

View File

@ -79,6 +79,7 @@ MIDDLEWARE = [
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'jumpserver.middleware.TimezoneMiddleware',
'jumpserver.middleware.DemoMiddleware',
]
ROOT_URLCONF = 'jumpserver.urls'