43 lines
1.4 KiB
Python
43 lines
1.4 KiB
Python
from CTFd.models import db
|
|
|
|
|
|
class CheaterTeams(db.Model):
|
|
id = db.Column(db.Integer, primary_key=True)
|
|
challenge_id = db.Column(
|
|
db.Integer, db.ForeignKey("challenges.id", ondelete="CASCADE")
|
|
)
|
|
cheater_id = db.Column(db.Integer, db.ForeignKey("users.id", ondelete="CASCADE"))
|
|
helper_id = db.Column(db.Integer, db.ForeignKey("users.id", ondelete="CASCADE"))
|
|
|
|
flag = db.Column(db.String(128), nullable=False)
|
|
date = db.Column(db.DateTime, default=db.func.current_timestamp())
|
|
|
|
# Relationships
|
|
cheater = db.relationship(
|
|
"Users", foreign_keys="CheaterTeams.cheater_id", lazy="select"
|
|
)
|
|
helper = db.relationship(
|
|
"Users", foreign_keys="CheaterTeams.helper_id", lazy="select"
|
|
)
|
|
|
|
challenge = db.relationship(
|
|
"BaseChallenge",
|
|
foreign_keys="CheaterTeams.challenge_id",
|
|
lazy="select",
|
|
)
|
|
|
|
def __init__(self, challenge_id: int, cheater_id: int, helper_id: int, flag: str):
|
|
self.challenge_id = challenge_id
|
|
self.cheater_id = cheater_id
|
|
self.helper_id = helper_id
|
|
self.flag = flag
|
|
|
|
def __repr__(self):
|
|
return "<CheaterTeams User {0} maybe cheated for challenge {1} with the flag {2} belonging to the User {3} at {4} >".format(
|
|
self.cheater_id,
|
|
self.challenge_id,
|
|
self.flag,
|
|
self.helper_id,
|
|
self.date,
|
|
)
|