mirror of
https://github.com/zulip/zulip.git
synced 2025-11-05 06:23:38 +00:00
Refactor views.create_homepage_form into its callers.
The indirection is no longer that useful, and obscures Django's conventional style for calling a form.
This commit is contained in:
@@ -14,6 +14,7 @@ import jwt
|
|||||||
import mock
|
import mock
|
||||||
import re
|
import re
|
||||||
|
|
||||||
|
from zerver.forms import HomepageForm
|
||||||
from zerver.lib.actions import do_deactivate_realm, do_deactivate_user, \
|
from zerver.lib.actions import do_deactivate_realm, do_deactivate_user, \
|
||||||
do_reactivate_realm, do_reactivate_user
|
do_reactivate_realm, do_reactivate_user
|
||||||
from zerver.lib.initial_password import initial_password
|
from zerver.lib.initial_password import initial_password
|
||||||
@@ -1467,7 +1468,7 @@ class TestMaybeSendToRegistration(ZulipTestCase):
|
|||||||
return True
|
return True
|
||||||
|
|
||||||
with self.settings(ONLY_SSO=True):
|
with self.settings(ONLY_SSO=True):
|
||||||
with mock.patch('zerver.views.auth.create_homepage_form', return_value=Form()):
|
with mock.patch('zerver.views.auth.HomepageForm', return_value=Form()):
|
||||||
self.assertEqual(PreregistrationUser.objects.all().count(), 0)
|
self.assertEqual(PreregistrationUser.objects.all().count(), 0)
|
||||||
result = maybe_send_to_registration(request, 'hamlet@zulip.com')
|
result = maybe_send_to_registration(request, 'hamlet@zulip.com')
|
||||||
self.assertEqual(result.status_code, 302)
|
self.assertEqual(result.status_code, 302)
|
||||||
@@ -1501,7 +1502,7 @@ class TestMaybeSendToRegistration(ZulipTestCase):
|
|||||||
user.save()
|
user.save()
|
||||||
|
|
||||||
with self.settings(ONLY_SSO=True):
|
with self.settings(ONLY_SSO=True):
|
||||||
with mock.patch('zerver.views.auth.create_homepage_form', return_value=Form()):
|
with mock.patch('zerver.views.auth.HomepageForm', return_value=Form()):
|
||||||
self.assertEqual(PreregistrationUser.objects.all().count(), 1)
|
self.assertEqual(PreregistrationUser.objects.all().count(), 1)
|
||||||
result = maybe_send_to_registration(request, email)
|
result = maybe_send_to_registration(request, email)
|
||||||
self.assertEqual(result.status_code, 302)
|
self.assertEqual(result.status_code, 302)
|
||||||
|
|||||||
@@ -12,7 +12,8 @@ from confirmation.models import Confirmation
|
|||||||
|
|
||||||
from zilencer.models import Deployment
|
from zilencer.models import Deployment
|
||||||
|
|
||||||
from zerver.views import do_change_password, create_homepage_form
|
from zerver.forms import HomepageForm
|
||||||
|
from zerver.views import do_change_password
|
||||||
from zerver.views.invite import get_invitee_emails_set
|
from zerver.views.invite import get_invitee_emails_set
|
||||||
from zerver.models import (
|
from zerver.models import (
|
||||||
get_realm_by_string_id, get_prereg_user_by_email, get_user_profile_by_email,
|
get_realm_by_string_id, get_prereg_user_by_email, get_user_profile_by_email,
|
||||||
@@ -985,7 +986,7 @@ class UserSignUpTest(ZulipTestCase):
|
|||||||
with self.settings(REALMS_HAVE_SUBDOMAINS = True):
|
with self.settings(REALMS_HAVE_SUBDOMAINS = True):
|
||||||
request = HostRequestMock(host = realm.host)
|
request = HostRequestMock(host = realm.host)
|
||||||
request.session = {} # type: ignore
|
request.session = {} # type: ignore
|
||||||
form = create_homepage_form(request, {'email': 'user@acme.com'})
|
form = HomepageForm({'email': 'user@acme.com'}, realm=realm)
|
||||||
self.assertIn("trying to join, zulip, only allows users with e-mail", form.errors['email'][0])
|
self.assertIn("trying to join, zulip, only allows users with e-mail", form.errors['email'][0])
|
||||||
|
|
||||||
def test_failed_signup_due_to_invite_required(self):
|
def test_failed_signup_due_to_invite_required(self):
|
||||||
@@ -995,7 +996,7 @@ class UserSignUpTest(ZulipTestCase):
|
|||||||
realm.save()
|
realm.save()
|
||||||
request = HostRequestMock(host = realm.host)
|
request = HostRequestMock(host = realm.host)
|
||||||
request.session = {} # type: ignore
|
request.session = {} # type: ignore
|
||||||
form = create_homepage_form(request, {'email': 'user@zulip.com'})
|
form = HomepageForm({'email': 'user@zulip.com'}, realm=realm)
|
||||||
self.assertIn("Please request an invite from", form.errors['email'][0])
|
self.assertIn("Please request an invite from", form.errors['email'][0])
|
||||||
|
|
||||||
def test_failed_signup_due_to_nonexistent_realm(self):
|
def test_failed_signup_due_to_nonexistent_realm(self):
|
||||||
@@ -1003,7 +1004,7 @@ class UserSignUpTest(ZulipTestCase):
|
|||||||
with self.settings(REALMS_HAVE_SUBDOMAINS = True):
|
with self.settings(REALMS_HAVE_SUBDOMAINS = True):
|
||||||
request = HostRequestMock(host = 'acme.' + settings.EXTERNAL_HOST)
|
request = HostRequestMock(host = 'acme.' + settings.EXTERNAL_HOST)
|
||||||
request.session = {} # type: ignore
|
request.session = {} # type: ignore
|
||||||
form = create_homepage_form(request, {'email': 'user@acme.com'})
|
form = HomepageForm({'email': 'user@acme.com'}, realm=None)
|
||||||
self.assertIn("organization you are trying to join does not exist", form.errors['email'][0])
|
self.assertIn("organization you are trying to join does not exist", form.errors['email'][0])
|
||||||
|
|
||||||
def test_registration_through_ldap(self):
|
def test_registration_through_ldap(self):
|
||||||
|
|||||||
@@ -296,15 +296,6 @@ def accounts_accept_terms(request):
|
|||||||
'special_message_template': special_message_template},
|
'special_message_template': special_message_template},
|
||||||
request=request)
|
request=request)
|
||||||
|
|
||||||
def create_homepage_form(request, user_info=None):
|
|
||||||
# type: (HttpRequest, Optional[Dict[str, Any]]) -> HomepageForm
|
|
||||||
realm = get_realm_from_request(request)
|
|
||||||
if user_info:
|
|
||||||
return HomepageForm(user_info, realm=realm)
|
|
||||||
# An empty fields dict is not treated the same way as not
|
|
||||||
# providing it.
|
|
||||||
return HomepageForm(realm=realm)
|
|
||||||
|
|
||||||
def create_preregistration_user(email, request, realm_creation=False):
|
def create_preregistration_user(email, request, realm_creation=False):
|
||||||
# type: (Text, HttpRequest, bool) -> HttpResponse
|
# type: (Text, HttpRequest, bool) -> HttpResponse
|
||||||
domain = request.session.get("domain")
|
domain = request.session.get("domain")
|
||||||
@@ -400,8 +391,9 @@ def get_realm_from_request(request):
|
|||||||
|
|
||||||
def accounts_home(request):
|
def accounts_home(request):
|
||||||
# type: (HttpRequest) -> HttpResponse
|
# type: (HttpRequest) -> HttpResponse
|
||||||
|
realm = get_realm_from_request(request)
|
||||||
if request.method == 'POST':
|
if request.method == 'POST':
|
||||||
form = create_homepage_form(request, user_info=request.POST)
|
form = HomepageForm(request.POST, realm=realm)
|
||||||
if form.is_valid():
|
if form.is_valid():
|
||||||
email = form.cleaned_data['email']
|
email = form.cleaned_data['email']
|
||||||
send_registration_completion_email(email, request)
|
send_registration_completion_email(email, request)
|
||||||
@@ -413,7 +405,7 @@ def accounts_home(request):
|
|||||||
except ValidationError:
|
except ValidationError:
|
||||||
return redirect_to_email_login_url(email)
|
return redirect_to_email_login_url(email)
|
||||||
else:
|
else:
|
||||||
form = create_homepage_form(request)
|
form = HomepageForm(realm=realm)
|
||||||
return render_to_response('zerver/accounts_home.html',
|
return render_to_response('zerver/accounts_home.html',
|
||||||
{'form': form, 'current_url': request.get_full_path},
|
{'form': form, 'current_url': request.get_full_path},
|
||||||
request=request)
|
request=request)
|
||||||
|
|||||||
@@ -17,12 +17,12 @@ from six.moves import urllib
|
|||||||
from typing import Any, Dict, Optional, Tuple, Text
|
from typing import Any, Dict, Optional, Tuple, Text
|
||||||
|
|
||||||
from confirmation.models import Confirmation
|
from confirmation.models import Confirmation
|
||||||
from zerver.forms import OurAuthenticationForm, WRONG_SUBDOMAIN_ERROR
|
from zerver.forms import HomepageForm, OurAuthenticationForm, WRONG_SUBDOMAIN_ERROR
|
||||||
from zerver.lib.request import REQ, has_request_variables, JsonableError
|
from zerver.lib.request import REQ, has_request_variables, JsonableError
|
||||||
from zerver.lib.response import json_success, json_error
|
from zerver.lib.response import json_success, json_error
|
||||||
from zerver.lib.utils import get_subdomain
|
from zerver.lib.utils import get_subdomain
|
||||||
from zerver.models import PreregistrationUser, UserProfile, remote_user_to_email, Realm
|
from zerver.models import PreregistrationUser, UserProfile, remote_user_to_email, Realm
|
||||||
from zerver.views import create_homepage_form, create_preregistration_user, \
|
from zerver.views import create_preregistration_user, get_realm_from_request, \
|
||||||
redirect_and_log_into_subdomain
|
redirect_and_log_into_subdomain
|
||||||
from zproject.backends import password_auth_enabled, dev_auth_enabled, google_auth_enabled
|
from zproject.backends import password_auth_enabled, dev_auth_enabled, google_auth_enabled
|
||||||
from zproject.jinja2 import render_to_response
|
from zproject.jinja2 import render_to_response
|
||||||
@@ -37,7 +37,7 @@ import ujson
|
|||||||
|
|
||||||
def maybe_send_to_registration(request, email, full_name=''):
|
def maybe_send_to_registration(request, email, full_name=''):
|
||||||
# type: (HttpRequest, Text, Text) -> HttpResponse
|
# type: (HttpRequest, Text, Text) -> HttpResponse
|
||||||
form = create_homepage_form(request, user_info={'email': email})
|
form = HomepageForm({'email': email}, realm=get_realm_from_request(request))
|
||||||
request.verified_email = None
|
request.verified_email = None
|
||||||
if form.is_valid():
|
if form.is_valid():
|
||||||
# Construct a PreregistrationUser object and send the user over to
|
# Construct a PreregistrationUser object and send the user over to
|
||||||
|
|||||||
Reference in New Issue
Block a user