Fix: Dedup the list of mailboxes for an alias (#2010)
This commit is contained in:
parent
b541ca4ceb
commit
44138e25a5
|
@ -1506,7 +1506,8 @@ class Alias(Base, ModelMixin):
|
||||||
def mailboxes(self):
|
def mailboxes(self):
|
||||||
ret = [self.mailbox]
|
ret = [self.mailbox]
|
||||||
for m in self._mailboxes:
|
for m in self._mailboxes:
|
||||||
ret.append(m)
|
if m.id is not self.mailbox.id:
|
||||||
|
ret.append(m)
|
||||||
|
|
||||||
ret = [mb for mb in ret if mb.verified]
|
ret = [mb for mb in ret if mb.verified]
|
||||||
ret = sorted(ret, key=lambda mb: mb.email)
|
ret = sorted(ret, key=lambda mb: mb.email)
|
||||||
|
|
|
@ -44,9 +44,7 @@ Note, if you are a paying Proton Mail user, you automatically receive the premiu
|
||||||
|
|
||||||
{% call text() %}
|
{% call text() %}
|
||||||
For any question or feedback, please join our <a href="https://forum.simplelogin.io/">official forum</a>.
|
For any question or feedback, please join our <a href="https://forum.simplelogin.io/">official forum</a>.
|
||||||
|
|
||||||
If you want to request a feature, please submit it on our <a href="https://github.com/simple-login/app/discussions">GitHub repo</a>.
|
If you want to request a feature, please submit it on our <a href="https://github.com/simple-login/app/discussions">GitHub repo</a>.
|
||||||
|
|
||||||
You can also join our
|
You can also join our
|
||||||
<a href="https://www.reddit.com/r/Simplelogin/">Reddit</a>
|
<a href="https://www.reddit.com/r/Simplelogin/">Reddit</a>
|
||||||
or follow our
|
or follow our
|
||||||
|
|
|
@ -73,10 +73,8 @@ Please note that you can't create more than {{ MAX_NB_EMAIL_FREE_PLAN }} aliases
|
||||||
{% call text() %}
|
{% call text() %}
|
||||||
For any question or feedback,
|
For any question or feedback,
|
||||||
please join our <a href="https://forum.simplelogin.io/">official forum</a>.
|
please join our <a href="https://forum.simplelogin.io/">official forum</a>.
|
||||||
|
|
||||||
If you want to request a feature,
|
If you want to request a feature,
|
||||||
please submit it on our <a href="https://github.com/simple-login/app/discussions">GitHub repo</a>.
|
please submit it on our <a href="https://github.com/simple-login/app/discussions">GitHub repo</a>.
|
||||||
|
|
||||||
You can also join our
|
You can also join our
|
||||||
<a href="https://www.reddit.com/r/Simplelogin/">Reddit</a>
|
<a href="https://www.reddit.com/r/Simplelogin/">Reddit</a>
|
||||||
or follow our
|
or follow our
|
||||||
|
|
|
@ -0,0 +1,17 @@
|
||||||
|
from app.db import Session
|
||||||
|
from app.models import Alias, Mailbox, AliasMailbox
|
||||||
|
from tests.utils import create_new_user, random_email
|
||||||
|
|
||||||
|
|
||||||
|
def test_duplicated_mailbox_is_returned_only_once():
|
||||||
|
user = create_new_user()
|
||||||
|
other_mailbox = Mailbox.create(user_id=user.id, email=random_email(), verified=True)
|
||||||
|
alias = Alias.create_new_random(user)
|
||||||
|
AliasMailbox.create(mailbox_id=other_mailbox.id, alias_id=alias.id)
|
||||||
|
AliasMailbox.create(mailbox_id=user.default_mailbox_id, alias_id=alias.id)
|
||||||
|
Session.flush()
|
||||||
|
alias_mailboxes = alias.mailboxes
|
||||||
|
assert len(alias_mailboxes) == 2
|
||||||
|
alias_mailbox_id = [mailbox.id for mailbox in alias_mailboxes]
|
||||||
|
assert user.default_mailbox_id in alias_mailbox_id
|
||||||
|
assert other_mailbox.id in alias_mailbox_id
|
Loading…
Reference in New Issue