mirror of https://github.com/jumpserver/jumpserver
				
				
				
			add demo mode middleware
							parent
							
								
									8f4d8b1c02
								
							
						
					
					
						commit
						cda22a6f0d
					
				| 
						 | 
				
			
			@ -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)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -79,6 +79,7 @@ MIDDLEWARE = [
 | 
			
		|||
    'django.contrib.messages.middleware.MessageMiddleware',
 | 
			
		||||
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
 | 
			
		||||
    'jumpserver.middleware.TimezoneMiddleware',
 | 
			
		||||
    'jumpserver.middleware.DemoMiddleware',
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
ROOT_URLCONF = 'jumpserver.urls'
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue