Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 101df213dc |
26
models.py
26
models.py
@ -103,3 +103,29 @@ class WhaleContainer(db.Model):
|
||||
def __repr__(self):
|
||||
return "<WhaleContainer ID:{0} {1} {2} {3} {4}>".format(self.id, self.user_id, self.challenge_id,
|
||||
self.start_time, self.renew_count)
|
||||
|
||||
class WhaleContainerLog(db.Model):
|
||||
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
|
||||
user_id = db.Column(None, db.ForeignKey("users.id"))
|
||||
challenge_id = db.Column(None, db.ForeignKey("challenges.id"))
|
||||
start_time = db.Column(db.DateTime, nullable=False, default=datetime.utcnow)
|
||||
uuid = db.Column(db.String(256))
|
||||
flag = db.Column(db.String(128), nullable=False)
|
||||
|
||||
# Relationships
|
||||
user = db.relationship(
|
||||
"Users", foreign_keys="WhaleContainerLog.user_id", lazy="select")
|
||||
challenge = db.relationship(
|
||||
"DynamicDockerChallenge", foreign_keys="WhaleContainerLog.challenge_id", lazy="select"
|
||||
)
|
||||
|
||||
def __init__(self, container):
|
||||
self.user_id = container.user_id
|
||||
self.challenge_id = container.challenge_id
|
||||
self.start_time = container.challenge_id
|
||||
self.uuid = container.uuid
|
||||
self.flag = container.flag
|
||||
|
||||
def __repr__(self):
|
||||
return "<WhaleContainer ID:{0} {1} {2} {3} {4} {5}>".format(self.id, self.user_id, self.challenge_id,
|
||||
self.start_time, self.uuid, self.flag)
|
||||
|
||||
@ -22,6 +22,7 @@ class ControlUtil:
|
||||
DockerUtils.remove_container(container)
|
||||
DBContainer.remove_container_record(user_id)
|
||||
return False, msg
|
||||
DBContainer.create_container_log(container)
|
||||
return True, 'Container created'
|
||||
|
||||
@staticmethod
|
||||
|
||||
@ -2,7 +2,7 @@ import datetime
|
||||
|
||||
from CTFd.models import db
|
||||
from CTFd.utils import get_config
|
||||
from ..models import WhaleContainer, WhaleRedirectTemplate
|
||||
from ..models import WhaleContainer,WhaleContainerLog, WhaleRedirectTemplate
|
||||
|
||||
|
||||
class DBContainer:
|
||||
@ -14,6 +14,12 @@ class DBContainer:
|
||||
|
||||
return container
|
||||
|
||||
@staticmethod
|
||||
def create_container_log(container):
|
||||
log = WhaleContainerLog(container=container)
|
||||
db.session.add(log)
|
||||
db.session.commit()
|
||||
|
||||
@staticmethod
|
||||
def get_current_containers(user_id):
|
||||
q = db.session.query(WhaleContainer)
|
||||
|
||||
Reference in New Issue
Block a user