mirror of
https://github.com/simple-login/app.git
synced 2024-09-20 06:55:59 +08:00
Do not double count AlilasMailboxes with Aliases (#2095)
* Do not double count aliasmailboxes with aliases * Keep Sl-Queue-id
This commit is contained in:
parent
037bc9da36
commit
80c8bc820b
|
@ -2649,10 +2649,15 @@ class Mailbox(Base, ModelMixin):
|
|||
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 (
|
||||
|
@ -2701,12 +2706,15 @@ class Mailbox(Base, ModelMixin):
|
|||
|
||||
@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):
|
||||
|
|
|
@ -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,
|
||||
)
|
||||
|
|
Loading…
Reference in a new issue