Revert contact creation (#1836)

Co-authored-by: Adrià Casajús <adria.casajus@proton.ch>
This commit is contained in:
Adrià Casajús 2023-08-04 14:01:21 +02:00 committed by GitHub
parent 0e82801512
commit 4bf925fe6f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 5 additions and 11 deletions

View File

@ -30,13 +30,11 @@ from sqlalchemy_utils import ArrowType
from app import config
from app import s3
from app.db import Session
from app.email_validation import is_valid_email, normalize_reply_email
from app.errors import (
AliasInTrashError,
DirectoryInTrashError,
SubdomainInTrashError,
CannotCreateContactForReverseAlias,
InvalidContactEmailError,
)
from app.handler.unsubscribe_encoder import UnsubscribeAction, UnsubscribeEncoder
from app.log import LOG
@ -1805,11 +1803,11 @@ class Contact(Base, ModelMixin):
commit = kw.pop("commit", False)
flush = kw.pop("flush", False)
new_contact = cls(**kw)
website_email = kw["website_email"]
# make sure email is lowercase and doesn't have any whitespace
website_email = sanitize_email(kw["website_email"], not_lower=True)
kw["website_email"] = website_email
if "reply_email" in kw:
kw["reply_email"] = normalize_reply_email(sanitize_email(kw["reply_email"]))
website_email = sanitize_email(website_email)
# make sure contact.website_email isn't a reverse alias
if website_email != config.NOREPLY:
@ -1817,10 +1815,6 @@ class Contact(Base, ModelMixin):
if orig_contact:
raise CannotCreateContactForReverseAlias(str(orig_contact))
if not is_valid_email(website_email):
raise InvalidContactEmailError(website_email)
new_contact = cls(**kw)
Session.add(new_contact)
if commit:

View File

@ -261,7 +261,7 @@ def get_or_create_contact(from_header: str, mail_from: str, alias: Alias) -> Con
Session.commit()
except IntegrityError:
LOG.w("Contact %s %s already exist", alias, contact_email)
LOG.w(f"Contact with email {contact_email} for alias {alias} already exist")
Session.rollback()
contact = Contact.get_by(alias_id=alias.id, website_email=contact_email)