mirror of
https://github.com/zulip/zulip.git
synced 2025-11-09 16:37:23 +00:00
2FA: Fix check for context_data attr.
This attribute only makes sense for responses that are generated using a template.
This commit is contained in:
@@ -503,6 +503,10 @@ class LoginTest(ZulipTestCase):
|
|||||||
response = self.client_get("/login/")
|
response = self.client_get("/login/")
|
||||||
self.assertEqual(response["Location"], "http://zulip.testserver")
|
self.assertEqual(response["Location"], "http://zulip.testserver")
|
||||||
|
|
||||||
|
def test_options_request_to_login_page(self) -> None:
|
||||||
|
response = self.client_options('/login/')
|
||||||
|
self.assertEqual(response.status_code, 200)
|
||||||
|
|
||||||
class InviteUserBase(ZulipTestCase):
|
class InviteUserBase(ZulipTestCase):
|
||||||
def check_sent_emails(self, correct_recipients: List[str],
|
def check_sent_emails(self, correct_recipients: List[str],
|
||||||
custom_from_name: Optional[str]=None) -> None:
|
custom_from_name: Optional[str]=None) -> None:
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ from zerver.decorator import authenticated_json_post_view, require_post, \
|
|||||||
process_client, do_login, log_view_func
|
process_client, do_login, log_view_func
|
||||||
from django.http import HttpRequest, HttpResponse, HttpResponseRedirect, \
|
from django.http import HttpRequest, HttpResponse, HttpResponseRedirect, \
|
||||||
HttpResponseNotFound
|
HttpResponseNotFound
|
||||||
|
from django.template.response import SimpleTemplateResponse
|
||||||
from django.middleware.csrf import get_token
|
from django.middleware.csrf import get_token
|
||||||
from django.shortcuts import redirect, render
|
from django.shortcuts import redirect, render
|
||||||
from django.views.decorators.csrf import csrf_exempt
|
from django.views.decorators.csrf import csrf_exempt
|
||||||
@@ -578,12 +579,14 @@ def login_page(request: HttpRequest, **kwargs: Any) -> HttpResponse:
|
|||||||
assert len(e.args) > 1
|
assert len(e.args) > 1
|
||||||
return redirect_to_misconfigured_ldap_notice(e.args[1])
|
return redirect_to_misconfigured_ldap_notice(e.args[1])
|
||||||
|
|
||||||
if isinstance(template_response, HttpResponseRedirect):
|
if isinstance(template_response, SimpleTemplateResponse):
|
||||||
# We return immediately; redirect responses don't have a
|
# Only those responses that are rendered using a template have
|
||||||
# `.context_data` to update with update_login_page_context.
|
# context_data attribute. This attribute doesn't exist otherwise. It is
|
||||||
return template_response
|
# added in SimpleTemplateResponse class, which is a derived class of
|
||||||
|
# HttpResponse. See django.template.response.SimpleTemplateResponse,
|
||||||
|
# https://github.com/django/django/blob/master/django/template/response.py#L19.
|
||||||
|
update_login_page_context(request, template_response.context_data)
|
||||||
|
|
||||||
update_login_page_context(request, template_response.context_data)
|
|
||||||
return template_response
|
return template_response
|
||||||
|
|
||||||
@csrf_exempt
|
@csrf_exempt
|
||||||
|
|||||||
Reference in New Issue
Block a user