mirror of
https://github.com/simple-login/app.git
synced 2025-02-24 15:53:22 +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"
|
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
|
# 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")
|
catch_all = db.Column(db.Boolean, nullable=False, default=False, server_default="0")
|
||||||
|
|
||||||
user = db.relationship(User, foreign_keys=[user_id])
|
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):
|
def nb_alias(self):
|
||||||
return Alias.filter_by(custom_domain_id=self.id).count()
|
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
|
_NB_RECOVERY_CODE = 8
|
||||||
_RECOVERY_CODE_LENGTH = 8
|
_RECOVERY_CODE_LENGTH = 8
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue