mirror of
https://github.com/mediacms-io/mediacms.git
synced 2025-11-05 23:18:53 -05:00
24 lines
903 B
Python
24 lines
903 B
Python
from django.conf import settings
|
|
from django.http import JsonResponse
|
|
from django.shortcuts import redirect
|
|
from django.urls import reverse
|
|
|
|
|
|
class ApprovalMiddleware:
|
|
def __init__(self, get_response):
|
|
self.get_response = get_response
|
|
|
|
def __call__(self, request):
|
|
if settings.USERS_NEEDS_TO_BE_APPROVED and request.user.is_authenticated and not request.user.is_superuser and not getattr(request.user, 'is_approved', False):
|
|
allowed_paths = [
|
|
reverse('approval_required'),
|
|
reverse('account_logout'),
|
|
]
|
|
if request.path not in allowed_paths:
|
|
if request.path.startswith('/api/'):
|
|
return JsonResponse({'detail': 'User account not approved.'}, status=403)
|
|
return redirect('approval_required')
|
|
|
|
response = self.get_response(request)
|
|
return response
|