diff --git a/apps/common/middleware/doc_headers_middleware.py b/apps/common/middleware/doc_headers_middleware.py index d818b842c..83419b19f 100644 --- a/apps/common/middleware/doc_headers_middleware.py +++ b/apps/common/middleware/doc_headers_middleware.py @@ -9,43 +9,102 @@ from django.http import HttpResponse from django.utils.deprecation import MiddlewareMixin +from common.auth import handles, TokenDetails + content = """ - + Document - - + + + + + """ @@ -54,9 +113,18 @@ content = """ class DocHeadersMiddleware(MiddlewareMixin): def process_response(self, request, response): if request.path.startswith('/doc/') or request.path.startswith('/doc/chat/'): - HTTP_REFERER = request.META.get('HTTP_REFERER') - if HTTP_REFERER is None: + auth = request.COOKIES.get('Authorization') + if auth is None: return HttpResponse(content) - if HTTP_REFERER == request._current_scheme_host + request.path: - return response + else: + try: + token = auth + token_details = TokenDetails(token) + for handle in handles: + if handle.support(request, token, token_details.get_token_details): + handle.handle(request, token, token_details.get_token_details) + return response + return HttpResponse(content) + except Exception as e: + return HttpResponse(content) return response