remove obsolete sender formats

This commit is contained in:
Son Nguyen Kim 2021-09-20 12:27:36 +02:00
parent 7bb54e1e8e
commit 153831ed1a
3 changed files with 16 additions and 30 deletions

View File

@ -160,9 +160,7 @@ class PlanEnum(EnumE):
# Specify the format for sender address
class SenderFormatEnum(EnumE):
AT = 0 # John Wick - john at wick.com
VIA = 1 # john@wick.com via SimpleLogin
A = 2 # John Wick - john(a)wick.com
FULL = 3 # John Wick - john@wick.com
class AliasGeneratorEnum(EnumE):
@ -1486,26 +1484,19 @@ class Contact(db.Model, ModelMixin):
`new_email` is a special reply address
"""
user = self.user
if (
not user
or not SenderFormatEnum.has_value(user.sender_format)
or user.sender_format == SenderFormatEnum.VIA.value
):
new_name = f"{self.website_email} via SimpleLogin"
else:
if user.sender_format == SenderFormatEnum.AT.value:
formatted_email = self.website_email.replace("@", " at ").strip()
elif user.sender_format == SenderFormatEnum.A.value:
formatted_email = self.website_email.replace("@", "(a)").strip()
elif user.sender_format == SenderFormatEnum.FULL.value:
formatted_email = self.website_email.strip()
sender_format = user.sender_format if user else SenderFormatEnum.AT.value
# Prefix name to formatted email if available
new_name = (
(self.name + " - " + formatted_email)
if self.name and self.name != self.website_email.strip()
else formatted_email
)
if sender_format == SenderFormatEnum.AT.value:
formatted_email = self.website_email.replace("@", " at ").strip()
else:
formatted_email = self.website_email.replace("@", "(a)").strip()
# Prefix name to formatted email if available
new_name = (
(self.name + " - " + formatted_email)
if self.name and self.name != self.website_email.strip()
else formatted_email
)
new_addr = formataddr((new_name, self.reply_email)).strip()
return new_addr.strip()

View File

@ -59,9 +59,9 @@ def test_update_settings_sender_format(flask_client):
r = flask_client.patch("/api/setting", json={"sender_format": "invalid"})
assert r.status_code == 400
r = flask_client.patch("/api/setting", json={"sender_format": "VIA"})
r = flask_client.patch("/api/setting", json={"sender_format": "A"})
assert r.status_code == 200
assert user.sender_format == SenderFormatEnum.VIA.value
assert user.sender_format == SenderFormatEnum.A.value
def test_get_setting_domains(flask_client):

View File

@ -133,17 +133,12 @@ def test_new_addr(flask_client):
name="First Last",
commit=True,
)
assert c1.new_addr() == '"abcd@example.com via SimpleLogin" <rep@SL>'
# set sender format = FULL
user.sender_format = SenderFormatEnum.FULL.value
db.session.commit()
assert c1.new_addr() == '"First Last - abcd@example.com" <rep@SL>'
assert c1.new_addr() == '"First Last - abcd(a)example.com" <rep@SL>'
# Make sure email isn't duplicated if sender name equals email
c1.name = "abcd@example.com"
db.session.commit()
assert c1.new_addr() == '"abcd@example.com" <rep@SL>'
assert c1.new_addr() == '"abcd(a)example.com" <rep@SL>'
# set sender_format = AT
user.sender_format = SenderFormatEnum.AT.value