mirror of
https://github.com/simple-login/app.git
synced 2025-02-24 15:53:22 +08:00
use delete_alias(alias,user) instead of Alias.delete, DomainDeletedAlias.create, DeletedAlias.create
This commit is contained in:
parent
4434ad62dd
commit
2cae0200a8
2 changed files with 25 additions and 7 deletions
|
@ -142,15 +142,18 @@ def try_auto_create_catch_all_domain(address: str) -> Optional[Alias]:
|
|||
|
||||
|
||||
def delete_alias(alias: Alias, user: User):
|
||||
Alias.delete(alias.id)
|
||||
db.session.commit()
|
||||
|
||||
"""
|
||||
Delete an alias and add it to either global or domain trash
|
||||
Should be used instead of Alias.delete, DomainDeletedAlias.create, DeletedAlias.create
|
||||
"""
|
||||
# save deleted alias to either global or domain trash
|
||||
if alias.custom_domain_id:
|
||||
try:
|
||||
DomainDeletedAlias.create(
|
||||
db.session.add(
|
||||
DomainDeletedAlias(
|
||||
user_id=user.id, email=alias.email, domain_id=alias.custom_domain_id
|
||||
)
|
||||
)
|
||||
db.session.commit()
|
||||
except IntegrityError:
|
||||
LOG.exception(
|
||||
|
@ -161,8 +164,11 @@ def delete_alias(alias: Alias, user: User):
|
|||
db.session.rollback()
|
||||
else:
|
||||
try:
|
||||
DeletedAlias.create(email=alias.email)
|
||||
db.session.add(DeletedAlias(email=alias.email))
|
||||
db.session.commit()
|
||||
except IntegrityError:
|
||||
LOG.exception("alias %s has been added before to DeletedAlias", alias.email)
|
||||
db.session.rollback()
|
||||
|
||||
Alias.query.filter(Alias.id == alias.id).delete()
|
||||
db.session.commit()
|
||||
|
|
|
@ -13,7 +13,7 @@ from sqlalchemy import text, desc, CheckConstraint, and_, func
|
|||
from sqlalchemy.exc import IntegrityError
|
||||
from sqlalchemy_utils import ArrowType
|
||||
|
||||
from app import s3
|
||||
from app import s3, alias_utils
|
||||
from app.config import (
|
||||
MAX_NB_EMAIL_FREE_PLAN,
|
||||
URL,
|
||||
|
@ -870,6 +870,10 @@ class Alias(db.Model, ModelMixin):
|
|||
mailbox_id=mailbox_id or user.default_mailbox_id,
|
||||
)
|
||||
|
||||
@classmethod
|
||||
def delete(cls, obj_id):
|
||||
raise Exception("should use delete_alias(alias,user) instead")
|
||||
|
||||
@classmethod
|
||||
def create_new_random(
|
||||
cls,
|
||||
|
@ -1292,6 +1296,10 @@ class DeletedAlias(db.Model, ModelMixin):
|
|||
|
||||
email = db.Column(db.String(256), unique=True, nullable=False)
|
||||
|
||||
@classmethod
|
||||
def create(cls, **kw):
|
||||
raise Exception("should use delete_alias(alias,user) instead")
|
||||
|
||||
def __repr__(self):
|
||||
return f"<Deleted Alias {self.email}>"
|
||||
|
||||
|
@ -1411,6 +1419,10 @@ class DomainDeletedAlias(db.Model, ModelMixin):
|
|||
)
|
||||
user_id = db.Column(db.ForeignKey(User.id, ondelete="cascade"), nullable=False)
|
||||
|
||||
@classmethod
|
||||
def create(cls, **kw):
|
||||
raise Exception("should use delete_alias(alias,user) instead")
|
||||
|
||||
|
||||
class LifetimeCoupon(db.Model, ModelMixin):
|
||||
code = db.Column(db.String(128), nullable=False, unique=True)
|
||||
|
|
Loading…
Reference in a new issue