You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
33 lines
1.3 KiB
33 lines
1.3 KiB
from django.core.exceptions import PermissionDenied
|
|
from rest_framework.authtoken.models import Token
|
|
from apps.account.models import User
|
|
|
|
|
|
|
|
def test_auth_middleware(get_response):
|
|
"""
|
|
give access to swagger and api if admin is logged in
|
|
"""
|
|
|
|
def middleware(request):
|
|
if "/admin/" not in request.path and request.META.get('HTTP_AUTHORIZATION') is None:
|
|
if request.user.is_authenticated and request.user.is_staff:
|
|
token, _ = Token.objects.get_or_create(user=request.user)
|
|
request.META['HTTP_AUTHORIZATION'] = "Token " + token.key
|
|
|
|
|
|
# if "/swagger" in request.path or "/redoc" in request.path:
|
|
# if not request.META.get('HTTP_AUTHORIZATION'):
|
|
# user = User.objects.filter(is_staff=True, email="admin@gmail.com").first()
|
|
# if user:
|
|
# t, _ = Token.objects.get_or_create(user=user)
|
|
# request.META['HTTP_AUTHORIZATION'] = f"Token {t}"
|
|
|
|
# user = User.objects.filter(email="muhammadamin.ghorbani@gmail.com").first()
|
|
# if user:
|
|
# t, _ = Token.objects.get_or_create(user=user)
|
|
# request.META['HTTP_AUTHORIZATION'] = f"Token {t}"
|
|
|
|
return get_response(request)
|
|
|
|
return middleware
|