Skip to content

Commit f641acb

Browse files
author
eshaan7
committed
db.relationship #5
1 parent 7321ae3 commit f641acb

File tree

3 files changed

+23
-8
lines changed

3 files changed

+23
-8
lines changed

src/FlaskRTBCTF/models.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ class User(db.Model, UserMixin):
1919
password = db.Column(db.String(60), nullable=False)
2020
confirmed_at = db.Column(db.DateTime(), default=datetime.utcnow)
2121
isAdmin = db.Column(db.Boolean, default=False)
22+
score = db.relationship('Score', backref='user', lazy=True, uselist=False)
2223

2324
def get_reset_token(self, expires_sec=1800):
2425
s = Serializer(current_app.config['SECRET_KEY'], expires_sec)
@@ -34,20 +35,21 @@ def verify_reset_token(token):
3435
return User.query.get(user_id)
3536

3637
def __repr__(self):
37-
return f"User('{self.username}', '{self.email}')"
38+
return f"User('{self.username}', '{self.email}') | Score('{self.score}')"
3839

3940

4041
''' Score Table '''
4142

4243
class Score(db.Model):
43-
userid = db.Column(db.Integer, primary_key=True)
44+
user_id = db.Column(db.Integer, db.ForeignKey('user.id'),
45+
nullable=False, primary_key=True)
4446
userHash = db.Column(db.Boolean, default=False)
4547
rootHash = db.Column(db.Boolean, default=False)
46-
score = db.Column(db.Integer)
48+
points = db.Column(db.Integer)
4749
timestamp = db.Column(db.DateTime(), default=datetime.utcnow)
4850

4951
def __repr__(self):
50-
return f"Score('{self.userid}', '{self.score}')"
52+
return f"Score('{self.user_id}', '{self.points}')"
5153

5254

5355
''' Notifications Table '''

src/FlaskRTBCTF/users/routes.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ def register():
2222
form.password.data).decode('utf-8')
2323
user = User(username=form.username.data,
2424
email=form.email.data, password=hashed_password)
25-
score = Score(userid=user.id, userHash=False, rootHash=False, score=0)
25+
score = Score(user=user, userHash=False, rootHash=False, points=0)
2626
db.session.add(user)
2727
db.session.add(score)
2828
db.session.commit()

src/create_db.py

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,25 @@
1818
confirmed_at=datetime.datetime.now(),
1919
isAdmin = True
2020
)
21-
score = Score(userid=admin_user.id, userHash=False, rootHash=False, score=0)
21+
admin_score = Score(user=admin_user, userHash=False, rootHash=False, points=0)
22+
db.session.add(admin_user)
23+
db.session.add(admin_score)
24+
2225
notif = Notification(
2326
title=f"Welcome to {ctfname}",
2427
body = "The CTF is live now. Please read rules!"
2528
)
26-
db.session.add(admin_user)
27-
db.session.add(score)
2829
db.session.add(notif)
30+
31+
'''
32+
test = User(
33+
username='test',
34+
email='test@test.com',
35+
password=bcrypt.generate_password_hash('test').decode('utf-8'),
36+
)
37+
testscore = Score(user=test, userHash=False, rootHash=False, points=0)
38+
db.session.add(test)
39+
db.session.add(testscore)
40+
'''
41+
2942
db.session.commit()

0 commit comments

Comments
 (0)