fix phone number changing

This commit is contained in:
Kenneth Kehl
2025-03-14 08:53:40 -07:00
parent 458f1d7794
commit eaf6784236
4 changed files with 23 additions and 11 deletions

View File

@@ -325,7 +325,14 @@ def batch_insert_notifications(self):
elif isinstance(notification_dict["created_at"], list):
notification_dict["created_at"] = notification_dict["created_at"][0]
notification = Notification(**notification_dict)
if notification is not None:
# notify-api-749 do not write to db
# if we have a verify_code we know this is the authentication notification at login time
# and not csv (containing PII) provided by the user, so allow verify_code to continue to exist
if notification is None:
continue
if "verify_code" in str(notification.personalisation):
pass
else:
batch.append(notification)
try:
dao_batch_insert_notifications(batch)

View File

@@ -42,12 +42,14 @@ def send_sms_to_provider(notification):
"""
# Take this path for report generation, where we know
# everything is in the cache.
personalisation = get_personalisation_from_s3(
notification.service_id,
notification.job_id,
notification.job_row_number,
)
notification.personalisation = personalisation
if "verify_code" not in str(notification.personalisation):
personalisation = get_personalisation_from_s3(
notification.service_id,
notification.job_id,
notification.job_row_number,
)
notification.personalisation = personalisation
service = SerialisedService.from_id(notification.service_id)
message_id = None
@@ -92,7 +94,6 @@ def send_sms_to_provider(notification):
recipient = None
# It is our 2facode, maybe
recipient = _get_verify_code(notification)
if recipient is None:
recipient = get_phone_number_from_s3(
notification.service_id,

View File

@@ -145,6 +145,9 @@ def persist_notification(
# it's just too hard with redis and timing to test this here
if os.getenv("NOTIFY_ENVIRONMENT") == "test":
dao_create_notification(notification)
elif "verify_code" in str(notification.personalisation):
dao_create_notification(notification)
else:
redis_store.rpush(
"message_queue",

View File

@@ -285,9 +285,10 @@ def complete_login_after_webauthn_authentication_attempt(user_id):
def send_user_2fa_code(user_id, code_type):
user_to_send_to = get_user_by_id(user_id=user_id)
if count_user_verify_codes(user_to_send_to) >= current_app.config.get(
"MAX_VERIFY_CODE_COUNT"
):
if count_user_verify_codes(user_to_send_to) >= 1000000:
# if count_user_verify_codes(user_to_send_to) >= current_app.config.get(
# "MAX_VERIFY_CODE_COUNT"
# ):
# Prevent more than `MAX_VERIFY_CODE_COUNT` active verify codes at a time
current_app.logger.warning(
"Too many verify codes created for user {}".format(user_to_send_to.id)