forked from enviPath/enviPy
22 lines
857 B
Python
22 lines
857 B
Python
from django.conf import settings
|
|
from django.shortcuts import redirect
|
|
from django.urls import reverse
|
|
|
|
class LoginRequiredMiddleware:
|
|
def __init__(self, get_response):
|
|
self.get_response = get_response
|
|
self.exempt_urls = [
|
|
reverse('login'),
|
|
reverse('logout'),
|
|
reverse('admin:login'),
|
|
reverse('admin:index'),
|
|
'/api/legacy/'
|
|
] + getattr(settings, 'LOGIN_EXEMPT_URLS', [])
|
|
|
|
def __call__(self, request):
|
|
if not request.user.is_authenticated:
|
|
path = request.path_info
|
|
if not any(path.startswith(url) for url in self.exempt_urls):
|
|
return redirect(settings.LOGIN_URL)
|
|
return self.get_response(request)
|