Fix missing session rollback on commit error
This commit is contained in:
+9
-2
@@ -32,6 +32,7 @@ from flask_dance.contrib.github import make_github_blueprint, github
|
||||
from flask_dance.contrib.google import make_google_blueprint, google
|
||||
from flask_login import login_user, current_user
|
||||
from sqlalchemy.orm.exc import NoResultFound
|
||||
from sqlalchemy.exc import OperationalError
|
||||
|
||||
from . import constants, logger, config, app, ub
|
||||
from .web import login_required
|
||||
@@ -104,12 +105,18 @@ if ub.oauth_support:
|
||||
oauthProvider.provider_name = "github"
|
||||
oauthProvider.active = False
|
||||
g.ubsession.add(oauthProvider)
|
||||
g.ubsession.commit()
|
||||
try:
|
||||
g.ubsession.commit()
|
||||
except OperationalError:
|
||||
g.ubsession.rollback()
|
||||
oauthProvider = ub.OAuthProvider()
|
||||
oauthProvider.provider_name = "google"
|
||||
oauthProvider.active = False
|
||||
g.ubsession.add(oauthProvider)
|
||||
g.ubsession.commit()
|
||||
try:
|
||||
g.ubsession.commit()
|
||||
except OperationalError:
|
||||
g.ubsession.rollback()
|
||||
|
||||
oauth_ids = g.ubsession.query(ub.OAuthProvider).all()
|
||||
ele1 = dict(provider_name='github',
|
||||
|
||||
Reference in New Issue
Block a user