mirror of
https://github.com/aljazceru/CTFd.git
synced 2025-12-18 14:34:21 +01:00
Fix tracker code to fix tests
This commit is contained in:
6
CTFd/cache/__init__.py
vendored
6
CTFd/cache/__init__.py
vendored
@@ -44,3 +44,9 @@ def clear_pages():
|
|||||||
|
|
||||||
cache.delete_memoized(get_pages)
|
cache.delete_memoized(get_pages)
|
||||||
cache.delete_memoized(get_page)
|
cache.delete_memoized(get_page)
|
||||||
|
|
||||||
|
|
||||||
|
def clear_user_ips(user_id):
|
||||||
|
from CTFd.utils.user import get_user_ips
|
||||||
|
|
||||||
|
cache.delete_memoized(get_user_ips, user_id=user_id)
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ from flask import abort, redirect, render_template, request, session, url_for
|
|||||||
from sqlalchemy.exc import IntegrityError, InvalidRequestError
|
from sqlalchemy.exc import IntegrityError, InvalidRequestError
|
||||||
from werkzeug.wsgi import DispatcherMiddleware
|
from werkzeug.wsgi import DispatcherMiddleware
|
||||||
|
|
||||||
|
from CTFd.cache import clear_user_ips
|
||||||
from CTFd.exceptions import UserNotFoundException, UserTokenExpiredException
|
from CTFd.exceptions import UserNotFoundException, UserTokenExpiredException
|
||||||
from CTFd.models import Tracking, db
|
from CTFd.models import Tracking, db
|
||||||
from CTFd.utils import config, get_config, markdown
|
from CTFd.utils import config, get_config, markdown
|
||||||
@@ -179,9 +180,10 @@ def init_request_processors(app):
|
|||||||
if authed():
|
if authed():
|
||||||
user_ips = get_current_user_ips()
|
user_ips = get_current_user_ips()
|
||||||
ip = get_ip()
|
ip = get_ip()
|
||||||
|
track = None
|
||||||
if ip not in user_ips:
|
if ip not in user_ips:
|
||||||
visit = Tracking(ip=get_ip(), user_id=session["id"])
|
track = Tracking(ip=get_ip(), user_id=session["id"])
|
||||||
db.session.add(visit)
|
db.session.add(track)
|
||||||
else:
|
else:
|
||||||
if request.method != "GET":
|
if request.method != "GET":
|
||||||
track = Tracking.query.filter_by(
|
track = Tracking.query.filter_by(
|
||||||
@@ -189,11 +191,13 @@ def init_request_processors(app):
|
|||||||
).first()
|
).first()
|
||||||
track.date = datetime.datetime.utcnow()
|
track.date = datetime.datetime.utcnow()
|
||||||
|
|
||||||
try:
|
if track:
|
||||||
db.session.commit()
|
try:
|
||||||
except (InvalidRequestError, IntegrityError):
|
db.session.commit()
|
||||||
db.session.rollback()
|
except (InvalidRequestError, IntegrityError):
|
||||||
logout_user()
|
db.session.rollback()
|
||||||
|
logout_user()
|
||||||
|
clear_user_ips(user_id=session["id"])
|
||||||
|
|
||||||
if authed():
|
if authed():
|
||||||
user = get_current_user()
|
user = get_current_user()
|
||||||
|
|||||||
@@ -58,6 +58,9 @@ def test_reset():
|
|||||||
gen_fail(app.db, user_id=user_obj.id, challenge_id=random.randint(1, 10))
|
gen_fail(app.db, user_id=user_obj.id, challenge_id=random.randint(1, 10))
|
||||||
gen_tracking(app.db, user_id=user_obj.id)
|
gen_tracking(app.db, user_id=user_obj.id)
|
||||||
|
|
||||||
|
print("eet")
|
||||||
|
print(Tracking.query.all())
|
||||||
|
|
||||||
# Add PageFiles
|
# Add PageFiles
|
||||||
for x in range(5):
|
for x in range(5):
|
||||||
gen_file(
|
gen_file(
|
||||||
|
|||||||
Reference in New Issue
Block a user