Fix missing session rollback on commit error

This commit is contained in:
Ozzieisaacs
2020-12-07 19:53:34 +01:00
parent f13522559d
commit 5e3618716d
8 changed files with 208 additions and 62 deletions

View File

@@ -66,6 +66,7 @@ from os import urandom
from flask import g, Blueprint, url_for, abort, request
from flask_login import login_user, login_required
from flask_babel import gettext as _
from sqlalchemy.exc import OperationalError
from . import logger, ub, lm
from .web import render_title_template
@@ -147,7 +148,10 @@ def generate_auth_token(user_id):
auth_token.token_type = 1
g.ubsession.add(auth_token)
g.ubsession.commit()
try:
g.ubsession.commit()
except OperationalError:
g.ubsession.rollback()
return render_title_template(
"generate_kobo_auth_url.html",
title=_(u"Kobo Setup"),
@@ -164,5 +168,8 @@ def delete_auth_token(user_id):
# Invalidate any prevously generated Kobo Auth token for this user.
g.ubsession.query(ub.RemoteAuthToken).filter(ub.RemoteAuthToken.user_id == user_id)\
.filter(ub.RemoteAuthToken.token_type==1).delete()
g.ubsession.commit()
try:
g.ubsession.commit()
except OperationalError:
g.ubsession.rollback()
return ""