From dcaf3e3473a8b978754d8ba3a44445c06368e44f Mon Sep 17 00:00:00 2001 From: Pierre Jaury Date: Thu, 11 Aug 2016 14:13:56 +0200 Subject: [PATCH] Fix #30, use cascade deletion on domains --- admin/freeposte/admin/models.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/admin/freeposte/admin/models.py b/admin/freeposte/admin/models.py index 77a3368f..5f0bf01b 100644 --- a/admin/freeposte/admin/models.py +++ b/admin/freeposte/admin/models.py @@ -123,7 +123,8 @@ class Email(Base): class User(Email): """ A user is an email address that has a password to access a mailbox. """ - domain = db.relationship(Domain, backref='users') + domain = db.relationship(Domain, + backref=db.backref('users', cascade='all, delete-orphan')) password = db.Column(db.String(255), nullable=False) quota_bytes = db.Column(db.Integer(), nullable=False, default=10**9) global_admin = db.Column(db.Boolean(), nullable=False, default=False) @@ -186,7 +187,8 @@ class User(Email): class Alias(Email): """ An alias is an email address that redirects to some destination. """ - domain = db.relationship(Domain, backref='aliases') + domain = db.relationship(Domain, + backref=db.backref('aliases', cascade='all, delete-orphan')) destination = db.Column(CommaSeparatedList, nullable=False) @@ -197,7 +199,8 @@ class Fetch(Base): id = db.Column(db.Integer(), primary_key=True) user_email = db.Column(db.String(255), db.ForeignKey(User.email), nullable=False) - user = db.relationship(User, backref='fetches') + user = db.relationship(User, + backref=db.backref('fetches', cascade='all, delete-orphan')) protocol = db.Column(db.Enum('imap', 'pop3'), nullable=False) host = db.Column(db.String(255), nullable=False) port = db.Column(db.Integer(), nullable=False)