def tracker(): if request.endpoint == "views.themes": return if authed(): user_ips = get_current_user_recent_ips() ip = get_ip() track = None if (ip not in user_ips) or (request.method != "GET"): track = Tracking.query.filter_by( ip=get_ip(), user_id=session["id"]).first() if track: track.date = datetime.datetime.utcnow() else: track = Tracking(ip=get_ip(), user_id=session["id"]) db.session.add(track) if track: try: db.session.commit() except (InvalidRequestError, IntegrityError): db.session.rollback() db.session.close() logout_user() else: clear_user_recent_ips(user_id=session["id"])
def tracker(): # TODO: This function shouldn't cause a DB hit for lookups if possible if authed(): track = Tracking.query.filter_by(ip=get_ip(), user_id=session['id']).first() if not track: visit = Tracking(ip=get_ip(), user_id=session['id']) db.session.add(visit) else: track.date = datetime.datetime.utcnow() try: db.session.commit() except (InvalidRequestError, IntegrityError) as e: print(e.message) db.session.rollback() session.clear() if authed(): user = get_current_user() team = get_current_team() if request.path.startswith('/themes') is False: if user and user.banned: return render_template( 'errors/403.html', error='You have been banned from this CTF'), 403 if team and team.banned: return render_template( 'errors/403.html', error='Your team has been banned from this CTF' ), 403 db.session.close()
def tracker(): if authed(): if not Tracking.query.filter_by(ip=ip2long(request.remote_addr)).first(): visit = Tracking(request.remote_addr, session['id']) db.session.add(visit) db.session.commit() db.session.close()
def tracker(): if authed(): track = Tracking.query.filter_by(ip=ip2long(get_ip()), team=session['id']).first() if not track: visit = Tracking(ip=get_ip(), team=session['id']) db.session.add(visit) db.session.commit() else: track.date = datetime.datetime.utcnow() db.session.commit() db.session.close()
def tracker(): if authed(): track = Tracking.query.filter_by(ip=get_ip(), team=session['id']).first() if not track: visit = Tracking(ip=get_ip(), team=session['id']) db.session.add(visit) else: track.date = datetime.datetime.utcnow() try: db.session.commit() except (InvalidRequestError, IntegrityError) as e: print(e.message) db.session.rollback() session.clear() db.session.close()
def tracker(): if request.endpoint == "views.themes": return if authed(): track = Tracking.query.filter_by(ip=get_ip(), user_id=session["id"]).first() if not track: visit = Tracking(ip=get_ip(), user_id=session["id"]) db.session.add(visit) else: track.date = datetime.datetime.utcnow() try: db.session.commit() except (InvalidRequestError, IntegrityError): db.session.rollback() logout_user() if authed(): user = get_current_user() team = get_current_team() #level = get_level() if request.path.startswith("/themes") is False: if user and user.banned: return ( render_template( "errors/403.html", error="You have been banned from this CTF", ), 403, ) if team and team.banned: return ( render_template( "errors/403.html", error="Your team has been banned from this CTF", ), 403, ) db.session.close()
def gen_tracking(db, user_id=None, ip="127.0.0.1", **kwargs): tracking = Tracking(ip=ip, user_id=user_id, **kwargs) db.session.add(tracking) db.session.commit() return tracking
password="******") user.verified = True if random_chance(): user.affiliation = gen_affiliation() if random_chance(): oauth_id = random.randint(1, 1000) while oauth_id in used_oauth_ids: oauth_id = random.randint(1, 1000) used_oauth_ids.append(oauth_id) user.oauth_id = oauth_id if mode == "teams": user.team_id = random.randint(1, TEAM_AMOUNT) db.session.add(user) db.session.flush() track = Tracking(ip=gen_ip(), user_id=user.id) db.session.add(track) db.session.flush() count += 1 except Exception: pass db.session.commit() if mode == "teams": # Assign Team Captains print("GENERATING TEAM CAPTAINS") teams = Teams.query.all() for team in teams: captain = (Users.query.filter_by(team_id=team.id).order_by( Users.id).limit(1).first())