Create DirectoryMailbox model

This commit is contained in:
Son NK 2020-06-05 22:08:08 +02:00
parent 9603683c18
commit 8161d89c39
1 changed files with 24 additions and 0 deletions

View File

@ -1272,6 +1272,17 @@ class Directory(db.Model, ModelMixin):
user = db.relationship(User)
_mailboxes = db.relationship(
"Mailbox", secondary="directory_mailbox", lazy="joined"
)
@property
def mailboxes(self):
if self._mailboxes:
return self._mailboxes
else:
return [self.user.default_mailbox]
def nb_alias(self):
return Alias.filter_by(directory_id=self.id).count()
@ -1446,6 +1457,19 @@ class AliasMailbox(db.Model, ModelMixin):
)
class DirectoryMailbox(db.Model, ModelMixin):
__table_args__ = (
db.UniqueConstraint("directory_id", "mailbox_id", name="uq_directory_mailbox"),
)
directory_id = db.Column(
db.ForeignKey(Directory.id, ondelete="cascade"), nullable=False
)
mailbox_id = db.Column(
db.ForeignKey(Mailbox.id, ondelete="cascade"), nullable=False
)
_NB_RECOVERY_CODE = 8
_RECOVERY_CODE_LENGTH = 8