mirror of
https://github.com/simple-login/app.git
synced 2024-09-30 05:31:30 +02:00
Handle IntegrityError when creating new alias
This commit is contained in:
parent
bdec727cd1
commit
9f50ab4cce
@ -3,6 +3,7 @@ from dataclasses import dataclass
|
|||||||
from flask import render_template, redirect, url_for, flash, request
|
from flask import render_template, redirect, url_for, flash, request
|
||||||
from flask_login import login_required, current_user
|
from flask_login import login_required, current_user
|
||||||
from itsdangerous import TimestampSigner, SignatureExpired
|
from itsdangerous import TimestampSigner, SignatureExpired
|
||||||
|
from sqlalchemy.exc import IntegrityError
|
||||||
|
|
||||||
from app.config import (
|
from app.config import (
|
||||||
DISABLE_ALIAS_SUFFIX,
|
DISABLE_ALIAS_SUFFIX,
|
||||||
@ -203,14 +204,20 @@ def custom_alias():
|
|||||||
if domain:
|
if domain:
|
||||||
custom_domain_id = domain.id
|
custom_domain_id = domain.id
|
||||||
|
|
||||||
alias = Alias.create(
|
try:
|
||||||
user_id=current_user.id,
|
alias = Alias.create(
|
||||||
email=full_alias,
|
user_id=current_user.id,
|
||||||
note=alias_note,
|
email=full_alias,
|
||||||
mailbox_id=mailboxes[0].id,
|
note=alias_note,
|
||||||
custom_domain_id=custom_domain_id,
|
mailbox_id=mailboxes[0].id,
|
||||||
)
|
custom_domain_id=custom_domain_id,
|
||||||
db.session.flush()
|
)
|
||||||
|
db.session.flush()
|
||||||
|
except IntegrityError:
|
||||||
|
LOG.warning("Alias %s already exists", full_alias)
|
||||||
|
db.session.rollback()
|
||||||
|
flash("Unknown error, please retry", "error")
|
||||||
|
return redirect(url_for("dashboard.custom_alias"))
|
||||||
|
|
||||||
for i in range(1, len(mailboxes)):
|
for i in range(1, len(mailboxes)):
|
||||||
AliasMailbox.create(
|
AliasMailbox.create(
|
||||||
|
Loading…
Reference in New Issue
Block a user