Skip to content

Commit c5fee1d

Browse files
committed
Stop subscription from being created by merging user.
1 parent 7f2c576 commit c5fee1d

File tree

1 file changed

+9
-5
lines changed

1 file changed

+9
-5
lines changed

framework/auth/views.py

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -832,6 +832,7 @@ def send_confirm_email(user, email, renew=False, external_id_provider=None, exte
832832
merge_target = OSFUser.objects.get(emails__address=email)
833833
except OSFUser.DoesNotExist:
834834
merge_target = None
835+
merge_account_data = {}
835836
campaign = campaigns.campaign_for_user(user)
836837
# Choose the appropriate email template to use and add existing_user flag if a merge or adding an email.
837838
if external_id_provider and external_id:
@@ -844,6 +845,11 @@ def send_confirm_email(user, email, renew=False, external_id_provider=None, exte
844845
raise HTTPError(http_status.HTTP_400_BAD_REQUEST, data={})
845846
elif merge_target:
846847
# Merge account confirmation
848+
merge_account_data = {
849+
'merge_target_fullname': merge_target.fullname or merge_target.username,
850+
'user_username': user.username,
851+
'email': merge_target.email,
852+
}
847853
notification_type = NotificationType.Type.USER_CONFIRM_MERGE
848854
elif user.is_active:
849855
# Add email confirmation
@@ -856,19 +862,17 @@ def send_confirm_email(user, email, renew=False, external_id_provider=None, exte
856862
notification_type = NotificationType.Type.USER_INITIAL_CONFIRM_EMAIL
857863

858864
notification_type.instance.emit(
859-
user=user,
860-
subscribed_object=user,
865+
destination_address=merge_target.address or user.username,
861866
event_context={
862867
'user_fullname': user.fullname,
863-
'user_username': user.username,
864868
'confirmation_url': confirmation_url,
865869
'can_change_preferences': False,
866870
'external_id_provider': external_id_provider,
867871
'osf_contact_email': settings.OSF_CONTACT_EMAIL,
868872
'osf_support_email': settings.OSF_SUPPORT_EMAIL,
869-
'merge_target_fullname': merge_target.fullname or merge_target.username,
870-
'email': merge_target.email,
873+
**merge_account_data,
871874
},
875+
save=False
872876
)
873877

874878
def send_confirm_email_async(user, email, renew=False, external_id_provider=None, external_id=None, destination=None):

0 commit comments

Comments
 (0)