Revert contact creation (#1836)
Co-authored-by: Adrià Casajús <adria.casajus@proton.ch>
This commit is contained in:
parent
0e82801512
commit
4bf925fe6f
|
@ -30,13 +30,11 @@ from sqlalchemy_utils import ArrowType
|
||||||
from app import config
|
from app import config
|
||||||
from app import s3
|
from app import s3
|
||||||
from app.db import Session
|
from app.db import Session
|
||||||
from app.email_validation import is_valid_email, normalize_reply_email
|
|
||||||
from app.errors import (
|
from app.errors import (
|
||||||
AliasInTrashError,
|
AliasInTrashError,
|
||||||
DirectoryInTrashError,
|
DirectoryInTrashError,
|
||||||
SubdomainInTrashError,
|
SubdomainInTrashError,
|
||||||
CannotCreateContactForReverseAlias,
|
CannotCreateContactForReverseAlias,
|
||||||
InvalidContactEmailError,
|
|
||||||
)
|
)
|
||||||
from app.handler.unsubscribe_encoder import UnsubscribeAction, UnsubscribeEncoder
|
from app.handler.unsubscribe_encoder import UnsubscribeAction, UnsubscribeEncoder
|
||||||
from app.log import LOG
|
from app.log import LOG
|
||||||
|
@ -1805,11 +1803,11 @@ class Contact(Base, ModelMixin):
|
||||||
commit = kw.pop("commit", False)
|
commit = kw.pop("commit", False)
|
||||||
flush = kw.pop("flush", 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
|
# make sure email is lowercase and doesn't have any whitespace
|
||||||
website_email = sanitize_email(kw["website_email"], not_lower=True)
|
website_email = sanitize_email(website_email)
|
||||||
kw["website_email"] = website_email
|
|
||||||
if "reply_email" in kw:
|
|
||||||
kw["reply_email"] = normalize_reply_email(sanitize_email(kw["reply_email"]))
|
|
||||||
|
|
||||||
# make sure contact.website_email isn't a reverse alias
|
# make sure contact.website_email isn't a reverse alias
|
||||||
if website_email != config.NOREPLY:
|
if website_email != config.NOREPLY:
|
||||||
|
@ -1817,10 +1815,6 @@ class Contact(Base, ModelMixin):
|
||||||
if orig_contact:
|
if orig_contact:
|
||||||
raise CannotCreateContactForReverseAlias(str(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)
|
Session.add(new_contact)
|
||||||
|
|
||||||
if commit:
|
if commit:
|
||||||
|
|
|
@ -261,7 +261,7 @@ def get_or_create_contact(from_header: str, mail_from: str, alias: Alias) -> Con
|
||||||
|
|
||||||
Session.commit()
|
Session.commit()
|
||||||
except IntegrityError:
|
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()
|
Session.rollback()
|
||||||
contact = Contact.get_by(alias_id=alias.id, website_email=contact_email)
|
contact = Contact.get_by(alias_id=alias.id, website_email=contact_email)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue