mirror of
https://github.com/zulip/zulip.git
synced 2025-11-05 22:43:42 +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]
|
if user.realm.string_id == settings.SYSTEM_BOT_REALM]
|
||||||
|
|
||||||
def do_send_confirmation_email(invitee: PreregistrationUser,
|
def do_send_confirmation_email(invitee: PreregistrationUser,
|
||||||
referrer: UserProfile) -> None:
|
referrer: UserProfile) -> str:
|
||||||
"""
|
"""
|
||||||
Send the confirmation/welcome e-mail to an invited user.
|
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,
|
send_email('zerver/emails/invitation', to_emails=[invitee.email], from_name=from_name,
|
||||||
from_address=FromAddress.tokenized_no_reply_address(),
|
from_address=FromAddress.tokenized_no_reply_address(),
|
||||||
language=referrer.realm.default_language, context=context)
|
language=referrer.realm.default_language, context=context)
|
||||||
|
return activation_url
|
||||||
|
|
||||||
def email_not_system_bot(email: str) -> None:
|
def email_not_system_bot(email: str) -> None:
|
||||||
if is_cross_realm_bot_email(email):
|
if is_cross_realm_bot_email(email):
|
||||||
|
|||||||
@@ -484,8 +484,7 @@ class WorkerTest(ZulipTestCase):
|
|||||||
with simulated_queue_client(lambda: fake_client):
|
with simulated_queue_client(lambda: fake_client):
|
||||||
worker = queue_processors.ConfirmationEmailWorker()
|
worker = queue_processors.ConfirmationEmailWorker()
|
||||||
worker.setup()
|
worker.setup()
|
||||||
with patch('zerver.worker.queue_processors.do_send_confirmation_email'), \
|
with patch('zerver.lib.actions.send_email'), \
|
||||||
patch('zerver.worker.queue_processors.create_confirmation_link'), \
|
|
||||||
patch('zerver.worker.queue_processors.send_future_email') \
|
patch('zerver.worker.queue_processors.send_future_email') \
|
||||||
as send_mock, \
|
as send_mock, \
|
||||||
patch('logging.info'):
|
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
|
is_missed_message_address, extract_and_validate
|
||||||
from zerver.lib.streams import access_stream_by_id
|
from zerver.lib.streams import access_stream_by_id
|
||||||
from zerver.tornado.socket import req_redis_key, respond_send_message
|
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.db import reset_queries
|
||||||
from zerver.lib.redis_utils import get_redis_client
|
from zerver.lib.redis_utils import get_redis_client
|
||||||
from zerver.context_processors import common_context
|
from zerver.context_processors import common_context
|
||||||
@@ -226,14 +226,13 @@ class ConfirmationEmailWorker(QueueProcessingWorker):
|
|||||||
|
|
||||||
referrer = get_user_profile_by_id(data["referrer_id"])
|
referrer = get_user_profile_by_id(data["referrer_id"])
|
||||||
logger.info("Sending invitation for realm %s to %s" % (referrer.realm.string_id, invitee.email))
|
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
|
# queue invitation reminder
|
||||||
if settings.INVITATION_LINK_VALIDITY_DAYS >= 4:
|
if settings.INVITATION_LINK_VALIDITY_DAYS >= 4:
|
||||||
link = create_confirmation_link(invitee, referrer.realm.host, Confirmation.INVITATION)
|
|
||||||
context = common_context(referrer)
|
context = common_context(referrer)
|
||||||
context.update({
|
context.update({
|
||||||
'activate_url': link,
|
'activate_url': activate_url,
|
||||||
'referrer_name': referrer.full_name,
|
'referrer_name': referrer.full_name,
|
||||||
'referrer_email': referrer.delivery_email,
|
'referrer_email': referrer.delivery_email,
|
||||||
'referrer_realm_name': referrer.realm.name,
|
'referrer_realm_name': referrer.realm.name,
|
||||||
|
|||||||
Reference in New Issue
Block a user