mirror of
https://github.com/simple-login/app.git
synced 2025-02-24 07:43:54 +08:00
Add DomailMailbox model
This commit is contained in:
parent
d98cde440a
commit
e8fc9752b5
1 changed files with 24 additions and 0 deletions
|
@ -1353,11 +1353,20 @@ class CustomDomain(db.Model, ModelMixin):
|
|||
db.Boolean, nullable=False, default=False, server_default="0"
|
||||
)
|
||||
|
||||
_mailboxes = db.relationship("Mailbox", secondary="domain_mailbox", lazy="joined")
|
||||
|
||||
# an alias is created automatically the first time it receives an email
|
||||
catch_all = db.Column(db.Boolean, nullable=False, default=False, server_default="0")
|
||||
|
||||
user = db.relationship(User, foreign_keys=[user_id])
|
||||
|
||||
@property
|
||||
def mailboxes(self):
|
||||
if self._mailboxes:
|
||||
return self._mailboxes
|
||||
else:
|
||||
return [self.user.default_mailbox]
|
||||
|
||||
def nb_alias(self):
|
||||
return Alias.filter_by(custom_domain_id=self.id).count()
|
||||
|
||||
|
@ -1625,6 +1634,21 @@ class DirectoryMailbox(db.Model, ModelMixin):
|
|||
)
|
||||
|
||||
|
||||
class DomainMailbox(db.Model, ModelMixin):
|
||||
"""store the owning mailboxes for a domain"""
|
||||
|
||||
__table_args__ = (
|
||||
db.UniqueConstraint("domain_id", "mailbox_id", name="uq_domain_mailbox"),
|
||||
)
|
||||
|
||||
domain_id = db.Column(
|
||||
db.ForeignKey(CustomDomain.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