diff --git a/app.py b/app.py index b766704..4e8a187 100644 --- a/app.py +++ b/app.py @@ -1,7 +1,7 @@ from flask import Flask, render_template, session, redirect, url_for, request, g, flash, jsonify app = Flask(__name__) -from database import User, Team, TeamAccess, Challenge, ChallengeSolve, ChallengeFailure, ScoreAdjustment, TroubleTicket, TicketComment, Notification, db +from database import User, Team, UserAccess, Challenge, ChallengeSolve, ChallengeFailure, ScoreAdjustment, TroubleTicket, TicketComment, Notification, db from datetime import datetime from peewee import fn @@ -88,6 +88,7 @@ def login(): try: user = User.get(User.username == username) if(user.checkPassword(password)): + UserAccess.create(user=user, ip=misc.get_ip(), time=datetime.now()) session["user_id"] = user.id flash("Login successful.") return redirect(url_for('team_dashboard')) @@ -204,6 +205,7 @@ def register(): user.setPassword(password) user.save() + UserAccess.create(user=user, ip=misc.get_ip(), time=datetime.now()) # print(confirmation_key) email.send_confirmation_email(user_email, confirmation_key) diff --git a/ctftool b/ctftool index bc11d42..d512618 100755 --- a/ctftool +++ b/ctftool @@ -16,7 +16,7 @@ import yaml import argparse import logging -tables = [User, Team, TeamAccess, Challenge, ChallengeSolve, ChallengeFailure, NewsItem, TroubleTicket, TicketComment, Notification, ScoreAdjustment, AdminUser] +tables = [User, Team, UserAccess, Challenge, ChallengeSolve, ChallengeFailure, NewsItem, TroubleTicket, TicketComment, Notification, ScoreAdjustment, AdminUser] def create_tables(args): check = True diff --git a/database.py b/database.py index a3c203f..0fe6881 100644 --- a/database.py +++ b/database.py @@ -50,8 +50,8 @@ class User(BaseModel): def eligible(self): return self.country == "ISL" -class TeamAccess(BaseModel): - team = ForeignKeyField(Team, related_name='accesses') +class UserAccess(BaseModel): + user = ForeignKeyField(User, related_name='accesses') ip = CharField() time = DateTimeField()