PR comments

This commit is contained in:
Adrià Casajús 2022-04-22 14:49:03 +02:00
parent c573ef655e
commit 89d94963d7
No known key found for this signature in database
GPG key ID: F0033226A5AFC9B9
2 changed files with 16 additions and 13 deletions

View file

@ -48,10 +48,13 @@ class TransactionalComplaintOrigin(ABC):
class TransactionalYahooOrigin(TransactionalComplaintOrigin): class TransactionalYahooOrigin(TransactionalComplaintOrigin):
@classmethod @classmethod
def get_original_message(cls, message: Message) -> Optional[Message]: def get_original_message(cls, message: Message) -> Optional[Message]:
wanted_part = 6 # 1st part is the container
# 2nd has empty body
# 6th is the original message
current_part = 0
for part in message.walk(): for part in message.walk():
wanted_part -= 1 current_part += 1
if wanted_part == 0: if current_part == 6:
return part return part
return None return None
@ -63,10 +66,13 @@ class TransactionalYahooOrigin(TransactionalComplaintOrigin):
class TransactionalHotmailOrigin(TransactionalComplaintOrigin): class TransactionalHotmailOrigin(TransactionalComplaintOrigin):
@classmethod @classmethod
def get_original_message(cls, message: Message) -> Optional[Message]: def get_original_message(cls, message: Message) -> Optional[Message]:
wanted_part = 3 # 1st part is the container
# 2nd has empty body
# 3rd is the original message
current_part = 0
for part in message.walk(): for part in message.walk():
wanted_part -= 1 current_part += 1
if wanted_part == 0: if current_part == 3:
return part return part
return None return None
@ -103,12 +109,12 @@ def handle_complaint(message: Message, origin: TransactionalComplaintOrigin) ->
) )
except ValueError: except ValueError:
saved_file = save_email_for_debugging(message, "FromParseFailed") saved_file = save_email_for_debugging(message, "FromParseFailed")
LOG.w("Cannot parse from header. Saved to {}".format(saved_file or "nowhere")) LOG.w(f"Cannot parse from header. Saved to {saved_file or 'nowhere'}")
return True return False
user = User.get_by(email=to_address) user = User.get_by(email=to_address)
if user: if user:
LOG.d("Handle transactional {} complaint for {}".format(origin.name(), user)) LOG.d(f"Handle transactional {origin.name()} complaint for {user}")
report_complaint_to_user(user, origin) report_complaint_to_user(user, origin)
return True return True
@ -116,9 +122,7 @@ def handle_complaint(message: Message, origin: TransactionalComplaintOrigin) ->
# the email is during a reply phase, from=alias and to=destination # the email is during a reply phase, from=alias and to=destination
if alias: if alias:
LOG.i( LOG.i(
"Complaint from {} during reply phase {} -> {}, {}".format( f"Complaint from {origin.name} during reply phase {alias} -> {to_address}, {user}"
origin.name(), alias, to_address, user
)
) )
report_complaint_to_user_in_reply_phase(alias, to_address, origin) report_complaint_to_user_in_reply_phase(alias, to_address, origin)
store_transactional_complaint(alias, message) store_transactional_complaint(alias, message)

View file

@ -2974,7 +2974,6 @@ class AdminAuditLog(Base):
action=AuditLogActionEnum.logged_as_user.value, action=AuditLogActionEnum.logged_as_user.value,
model="User", model="User",
model_id=user_id, model_id=user_id,
data={},
) )
@classmethod @classmethod