mirror of
https://github.com/aljazceru/CTFd.git
synced 2025-12-18 14:34:21 +01:00
Handle when database is cleared without adding an additional teams lookup (#368)
This commit is contained in:
@@ -26,6 +26,7 @@ from flask_caching import Cache
|
|||||||
from flask_migrate import Migrate, upgrade as migrate_upgrade, stamp as migrate_stamp
|
from flask_migrate import Migrate, upgrade as migrate_upgrade, stamp as migrate_stamp
|
||||||
from itsdangerous import TimedSerializer, BadTimeSignature, Signer, BadSignature
|
from itsdangerous import TimedSerializer, BadTimeSignature, Signer, BadSignature
|
||||||
from six.moves.urllib.parse import urlparse, urljoin, quote, unquote
|
from six.moves.urllib.parse import urlparse, urljoin, quote, unquote
|
||||||
|
from sqlalchemy.exc import InvalidRequestError, IntegrityError
|
||||||
from werkzeug.utils import secure_filename
|
from werkzeug.utils import secure_filename
|
||||||
|
|
||||||
from CTFd.models import db, WrongKeys, Pages, Config, Tracking, Teams, Files, ip2long, long2ip
|
from CTFd.models import db, WrongKeys, Pages, Config, Tracking, Teams, Files, ip2long, long2ip
|
||||||
@@ -128,10 +129,16 @@ def init_utils(app):
|
|||||||
if not track:
|
if not track:
|
||||||
visit = Tracking(ip=get_ip(), team=session['id'])
|
visit = Tracking(ip=get_ip(), team=session['id'])
|
||||||
db.session.add(visit)
|
db.session.add(visit)
|
||||||
db.session.commit()
|
|
||||||
else:
|
else:
|
||||||
track.date = datetime.datetime.utcnow()
|
track.date = datetime.datetime.utcnow()
|
||||||
|
|
||||||
|
try:
|
||||||
db.session.commit()
|
db.session.commit()
|
||||||
|
except (InvalidRequestError, IntegrityError) as e:
|
||||||
|
print(e.message)
|
||||||
|
db.session.rollback()
|
||||||
|
session.clear()
|
||||||
|
|
||||||
db.session.close()
|
db.session.close()
|
||||||
|
|
||||||
@app.before_request
|
@app.before_request
|
||||||
|
|||||||
Reference in New Issue
Block a user