mirror of
https://github.com/zulip/zulip.git
synced 2025-11-05 14:35:27 +00:00
queue: Don't create confirmation objects twice during invite.
A confirmation object is already created when do_send_confirmation_email is called just above. Tweaked by tabbott to remove an unnecessary somewhat hacky database query.
This commit is contained in:
@@ -4907,7 +4907,7 @@ def get_cross_realm_dicts() -> List[Dict[str, Any]]:
|
||||
if user.realm.string_id == settings.SYSTEM_BOT_REALM]
|
||||
|
||||
def do_send_confirmation_email(invitee: PreregistrationUser,
|
||||
referrer: UserProfile) -> None:
|
||||
referrer: UserProfile) -> str:
|
||||
"""
|
||||
Send the confirmation/welcome e-mail to an invited user.
|
||||
"""
|
||||
@@ -4918,6 +4918,7 @@ def do_send_confirmation_email(invitee: PreregistrationUser,
|
||||
send_email('zerver/emails/invitation', to_emails=[invitee.email], from_name=from_name,
|
||||
from_address=FromAddress.tokenized_no_reply_address(),
|
||||
language=referrer.realm.default_language, context=context)
|
||||
return activation_url
|
||||
|
||||
def email_not_system_bot(email: str) -> None:
|
||||
if is_cross_realm_bot_email(email):
|
||||
|
||||
@@ -484,8 +484,7 @@ class WorkerTest(ZulipTestCase):
|
||||
with simulated_queue_client(lambda: fake_client):
|
||||
worker = queue_processors.ConfirmationEmailWorker()
|
||||
worker.setup()
|
||||
with patch('zerver.worker.queue_processors.do_send_confirmation_email'), \
|
||||
patch('zerver.worker.queue_processors.create_confirmation_link'), \
|
||||
with patch('zerver.lib.actions.send_email'), \
|
||||
patch('zerver.worker.queue_processors.send_future_email') \
|
||||
as send_mock, \
|
||||
patch('logging.info'):
|
||||
|
||||
@@ -38,7 +38,7 @@ from zerver.lib.email_mirror import process_message as mirror_email, rate_limit_
|
||||
is_missed_message_address, extract_and_validate
|
||||
from zerver.lib.streams import access_stream_by_id
|
||||
from zerver.tornado.socket import req_redis_key, respond_send_message
|
||||
from confirmation.models import Confirmation, create_confirmation_link
|
||||
from confirmation.models import Confirmation, confirmation_url
|
||||
from zerver.lib.db import reset_queries
|
||||
from zerver.lib.redis_utils import get_redis_client
|
||||
from zerver.context_processors import common_context
|
||||
@@ -226,14 +226,13 @@ class ConfirmationEmailWorker(QueueProcessingWorker):
|
||||
|
||||
referrer = get_user_profile_by_id(data["referrer_id"])
|
||||
logger.info("Sending invitation for realm %s to %s" % (referrer.realm.string_id, invitee.email))
|
||||
do_send_confirmation_email(invitee, referrer)
|
||||
activate_url = do_send_confirmation_email(invitee, referrer)
|
||||
|
||||
# queue invitation reminder
|
||||
if settings.INVITATION_LINK_VALIDITY_DAYS >= 4:
|
||||
link = create_confirmation_link(invitee, referrer.realm.host, Confirmation.INVITATION)
|
||||
context = common_context(referrer)
|
||||
context.update({
|
||||
'activate_url': link,
|
||||
'activate_url': activate_url,
|
||||
'referrer_name': referrer.full_name,
|
||||
'referrer_email': referrer.delivery_email,
|
||||
'referrer_realm_name': referrer.realm.name,
|
||||
|
||||
Reference in New Issue
Block a user