mirror of
				https://github.com/zulip/zulip.git
				synced 2025-11-04 05:53:43 +00:00 
			
		
		
		
	request: Move tornado_handler to ZulipRequestNotes.
This commit is contained in:
		@@ -809,14 +809,14 @@ def internal_notify_view(is_tornado_view: bool) -> Callable[[ViewFuncT], ViewFun
 | 
				
			|||||||
        ) -> HttpResponse:
 | 
					        ) -> HttpResponse:
 | 
				
			||||||
            if not authenticate_notify(request):
 | 
					            if not authenticate_notify(request):
 | 
				
			||||||
                raise AccessDeniedError()
 | 
					                raise AccessDeniedError()
 | 
				
			||||||
            is_tornado_request = hasattr(request, "_tornado_handler")
 | 
					            request_notes = get_request_notes(request)
 | 
				
			||||||
 | 
					            is_tornado_request = request_notes.tornado_handler is not None
 | 
				
			||||||
            # These next 2 are not security checks; they are internal
 | 
					            # These next 2 are not security checks; they are internal
 | 
				
			||||||
            # assertions to help us find bugs.
 | 
					            # assertions to help us find bugs.
 | 
				
			||||||
            if is_tornado_view and not is_tornado_request:
 | 
					            if is_tornado_view and not is_tornado_request:
 | 
				
			||||||
                raise RuntimeError("Tornado notify view called with no Tornado handler")
 | 
					                raise RuntimeError("Tornado notify view called with no Tornado handler")
 | 
				
			||||||
            if not is_tornado_view and is_tornado_request:
 | 
					            if not is_tornado_view and is_tornado_request:
 | 
				
			||||||
                raise RuntimeError("Django notify view called with Tornado handler")
 | 
					                raise RuntimeError("Django notify view called with Tornado handler")
 | 
				
			||||||
            request_notes = get_request_notes(request)
 | 
					 | 
				
			||||||
            request_notes.requestor_for_logs = "internal"
 | 
					            request_notes.requestor_for_logs = "internal"
 | 
				
			||||||
            return view_func(request, *args, **kwargs)
 | 
					            return view_func(request, *args, **kwargs)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -323,6 +323,7 @@ class HostRequestMock(HttpRequest):
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        request_notes_map[self] = ZulipRequestNotes(
 | 
					        request_notes_map[self] = ZulipRequestNotes(
 | 
				
			||||||
            log_data={},
 | 
					            log_data={},
 | 
				
			||||||
 | 
					            tornado_handler=DummyHandler(),
 | 
				
			||||||
        )
 | 
					        )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @property
 | 
					    @property
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -54,7 +54,7 @@ from zerver.lib.request import (
 | 
				
			|||||||
)
 | 
					)
 | 
				
			||||||
from zerver.lib.response import json_response, json_success
 | 
					from zerver.lib.response import json_response, json_success
 | 
				
			||||||
from zerver.lib.test_classes import ZulipTestCase
 | 
					from zerver.lib.test_classes import ZulipTestCase
 | 
				
			||||||
from zerver.lib.test_helpers import HostRequestMock
 | 
					from zerver.lib.test_helpers import DummyHandler, HostRequestMock
 | 
				
			||||||
from zerver.lib.user_agent import parse_user_agent
 | 
					from zerver.lib.user_agent import parse_user_agent
 | 
				
			||||||
from zerver.lib.users import get_api_key
 | 
					from zerver.lib.users import get_api_key
 | 
				
			||||||
from zerver.lib.utils import generate_api_key, has_api_key_format
 | 
					from zerver.lib.utils import generate_api_key, has_api_key_format
 | 
				
			||||||
@@ -1535,7 +1535,7 @@ class TestInternalNotifyView(ZulipTestCase):
 | 
				
			|||||||
            with self.assertRaises(RuntimeError):
 | 
					            with self.assertRaises(RuntimeError):
 | 
				
			||||||
                self.internal_notify(True, request)
 | 
					                self.internal_notify(True, request)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        request._tornado_handler = "set"
 | 
					        get_request_notes(request).tornado_handler = DummyHandler()
 | 
				
			||||||
        with self.settings(SHARED_SECRET=secret):
 | 
					        with self.settings(SHARED_SECRET=secret):
 | 
				
			||||||
            self.assertTrue(authenticate_notify(request))
 | 
					            self.assertTrue(authenticate_notify(request))
 | 
				
			||||||
            self.assertEqual(self.internal_notify(True, request), self.BORING_RESULT)
 | 
					            self.assertEqual(self.internal_notify(True, request), self.BORING_RESULT)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -111,9 +111,12 @@ class AsyncDjangoHandler(tornado.web.RequestHandler, base.BaseHandler):
 | 
				
			|||||||
        signals.request_started.send(sender=self.__class__)
 | 
					        signals.request_started.send(sender=self.__class__)
 | 
				
			||||||
        request = WSGIRequest(environ)
 | 
					        request = WSGIRequest(environ)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        # We do the import during runtime to avoid cyclic dependency
 | 
				
			||||||
 | 
					        from zerver.lib.request import get_request_notes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        # Provide a way for application code to access this handler
 | 
					        # Provide a way for application code to access this handler
 | 
				
			||||||
        # given the HttpRequest object.
 | 
					        # given the HttpRequest object.
 | 
				
			||||||
        request._tornado_handler = self
 | 
					        get_request_notes(request).tornado_handler = self
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        return request
 | 
					        return request
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -109,7 +109,9 @@ def get_events_backend(
 | 
				
			|||||||
        raise JsonableError(_("User not authorized for this query"))
 | 
					        raise JsonableError(_("User not authorized for this query"))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # Extract the Tornado handler from the request
 | 
					    # Extract the Tornado handler from the request
 | 
				
			||||||
    handler: AsyncDjangoHandler = request._tornado_handler
 | 
					    tornado_handler = get_request_notes(request).tornado_handler
 | 
				
			||||||
 | 
					    assert tornado_handler is not None
 | 
				
			||||||
 | 
					    handler: AsyncDjangoHandler = tornado_handler
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if user_client is None:
 | 
					    if user_client is None:
 | 
				
			||||||
        valid_user_client = request.client
 | 
					        valid_user_client = request.client
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user