from django.conf import settings from django.core.exceptions import MiddlewareNotUsed from django.http import HttpResponseForbidden from django.utils.translation import gettext as _ def readonly_middleware(get_response): if not settings.UMAP_READONLY: raise MiddlewareNotUsed def middleware(request): if request.method not in ['GET', 'OPTIONS']: return HttpResponseForbidden(_('Site is readonly for maintenance')) return get_response(request) return middleware