mirror of
https://github.com/simple-login/app.git
synced 2024-09-20 15:05:59 +08:00
Create DirectoryMailbox model
This commit is contained in:
parent
9603683c18
commit
8161d89c39
|
@ -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
|
||||
|
||||
|
|
Loading…
Reference in a new issue