Skip to content

Commit

Permalink
Do not double count AlilasMailboxes with Aliases (#2095)
Browse files Browse the repository at this point in the history
* Do not double count aliasmailboxes with aliases

* Keep Sl-Queue-id
  • Loading branch information
acasajus committed Apr 30, 2024
1 parent 037bc9d commit 80c8bc8
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 6 deletions.
20 changes: 14 additions & 6 deletions app/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -2649,10 +2649,15 @@ def pgp_enabled(self) -> bool:
return False

def nb_alias(self):
return (
AliasMailbox.filter_by(mailbox_id=self.id).count()
+ Alias.filter_by(mailbox_id=self.id).count()
alias_ids = set(
am.alias_id
for am in AliasMailbox.filter_by(mailbox_id=self.id).values(
AliasMailbox.alias_id
)
)
for alias in Alias.filter_by(mailbox_id=self.id).values(Alias.id):
alias_ids.add(alias.id)
return len(alias_ids)

def is_proton(self) -> bool:
if (
Expand Down Expand Up @@ -2701,12 +2706,15 @@ def delete(cls, obj_id):

@property
def aliases(self) -> [Alias]:
ret = Alias.filter_by(mailbox_id=self.id).all()
ret = dict(
(alias.id, alias) for alias in Alias.filter_by(mailbox_id=self.id).all()
)

for am in AliasMailbox.filter_by(mailbox_id=self.id):
ret.append(am.alias)
if am.alias_id not in ret:
ret[am.alias_id] = am.alias

return ret
return list(ret.values())

@classmethod
def create(cls, **kw):
Expand Down
1 change: 1 addition & 0 deletions email_handler.py
Original file line number Diff line number Diff line change
Expand Up @@ -1180,6 +1180,7 @@ def handle_reply(envelope, msg: Message, rcpt_to: str) -> (bool, str):
# References and In-Reply-To are used for keeping the email thread
headers.REFERENCES,
headers.IN_REPLY_TO,
headers.SL_QUEUE_ID,
]
+ headers.MIME_HEADERS,
)
Expand Down

0 comments on commit 80c8bc8

Please sign in to comment.