mirror of https://github.com/zulip/zulip.git
actions: Extract revoke_preregistration_users function.
This commit is contained in:
parent
4b903c5dcd
commit
c651bed0d4
|
@ -499,23 +499,10 @@ def process_new_human_user(
|
||||||
user=f"{user_profile.full_name} <`{user_profile.email}`>"
|
user=f"{user_profile.full_name} <`{user_profile.email}`>"
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
# Mark any other PreregistrationUsers in the realm that are STATUS_ACTIVE as
|
|
||||||
# inactive so we can keep track of the PreregistrationUser we
|
|
||||||
# actually used for analytics.
|
|
||||||
# In the special case of realm creation, there can be no additional PreregistrationUser
|
|
||||||
# for us to want to modify.
|
|
||||||
if prereg_user is not None and not realm_creation:
|
|
||||||
PreregistrationUser.objects.filter(
|
|
||||||
email__iexact=user_profile.delivery_email, realm=user_profile.realm
|
|
||||||
).exclude(id=prereg_user.id).update(status=confirmation_settings.STATUS_REVOKED)
|
|
||||||
|
|
||||||
if prereg_user.referred_by is not None:
|
revoke_preregistration_users(user_profile, prereg_user, realm_creation)
|
||||||
|
if not realm_creation and prereg_user is not None and prereg_user.referred_by is not None:
|
||||||
notify_invites_changed(user_profile)
|
notify_invites_changed(user_profile)
|
||||||
elif prereg_user is None:
|
|
||||||
assert not realm_creation
|
|
||||||
PreregistrationUser.objects.filter(
|
|
||||||
email__iexact=user_profile.delivery_email, realm=user_profile.realm
|
|
||||||
).update(status=confirmation_settings.STATUS_REVOKED)
|
|
||||||
|
|
||||||
notify_new_user(user_profile)
|
notify_new_user(user_profile)
|
||||||
# Clear any scheduled invitation emails to prevent them
|
# Clear any scheduled invitation emails to prevent them
|
||||||
|
@ -531,6 +518,32 @@ def process_new_human_user(
|
||||||
send_initial_pms(user_profile)
|
send_initial_pms(user_profile)
|
||||||
|
|
||||||
|
|
||||||
|
def revoke_preregistration_users(
|
||||||
|
created_user_profile: UserProfile,
|
||||||
|
used_preregistration_user: Optional[PreregistrationUser],
|
||||||
|
realm_creation: bool,
|
||||||
|
) -> None:
|
||||||
|
if realm_creation and used_preregistration_user is None:
|
||||||
|
raise AssertionError("realm_creation should only happen with a PreregistrationUser")
|
||||||
|
|
||||||
|
# Mark any other PreregistrationUsers in the realm that are STATUS_ACTIVE as
|
||||||
|
# inactive so we can keep track of the PreregistrationUser we
|
||||||
|
# actually used for analytics.
|
||||||
|
# In the special case of realm creation, there can be no additional PreregistrationUser
|
||||||
|
# for us to want to modify.
|
||||||
|
if used_preregistration_user is not None and not realm_creation:
|
||||||
|
PreregistrationUser.objects.filter(
|
||||||
|
email__iexact=created_user_profile.delivery_email, realm=created_user_profile.realm
|
||||||
|
).exclude(id=used_preregistration_user.id).update(
|
||||||
|
status=confirmation_settings.STATUS_REVOKED
|
||||||
|
)
|
||||||
|
elif used_preregistration_user is None:
|
||||||
|
assert not realm_creation
|
||||||
|
PreregistrationUser.objects.filter(
|
||||||
|
email__iexact=created_user_profile.delivery_email, realm=created_user_profile.realm
|
||||||
|
).update(status=confirmation_settings.STATUS_REVOKED)
|
||||||
|
|
||||||
|
|
||||||
def notify_created_user(user_profile: UserProfile) -> None:
|
def notify_created_user(user_profile: UserProfile) -> None:
|
||||||
user_row = user_profile_to_user_row(user_profile)
|
user_row = user_profile_to_user_row(user_profile)
|
||||||
person = format_user_row(
|
person = format_user_row(
|
||||||
|
|
Loading…
Reference in New Issue