Skip to content

Commit 28a57a8

Browse files
committed
feat: Hash passwords during user creation and login
1 parent 008e185 commit 28a57a8

2 files changed

Lines changed: 22 additions & 3 deletions

File tree

src/meeting_room_manager/routes/admin.py

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
from flask import Blueprint, redirect, url_for, session, flash, render_template
2+
from werkzeug.security import generate_password_hash
23
from ..models import db, User, Room
34
from ..utils.helpers import is_logged_in, get_current_user
45
from ..forms import SetupForm, AdminCreateUserForm, AdminCreateRoomForm
@@ -33,7 +34,11 @@ def setup():
3334

3435
try:
3536
user = User(
36-
fname=fname, lname=lname, email=email, password=password, role="admin"
37+
fname=fname,
38+
lname=lname,
39+
email=email,
40+
password=generate_password_hash(password),
41+
role="admin",
3742
)
3843
db.session.add(user)
3944
db.session.commit()
@@ -79,7 +84,11 @@ def admin_create_user():
7984

8085
try:
8186
user = User(
82-
fname=fname, lname=lname, email=email, password=password, role=role
87+
fname=fname,
88+
lname=lname,
89+
email=email,
90+
password=generate_password_hash(password),
91+
role=role,
8392
)
8493
db.session.add(user)
8594
db.session.commit()

src/meeting_room_manager/routes/auth.py

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
session,
77
flash,
88
)
9+
from werkzeug.security import check_password_hash, generate_password_hash
910
from ..models import User, db
1011
from ..forms import LoginForm, VerifyOTPForm
1112
from ..utils.otp import generate_otp, get_otp_expiry
@@ -29,7 +30,16 @@ def login():
2930
password = form.password.data
3031
user = User.query.filter_by(email=email).first()
3132

32-
if user and user.password == password:
33+
password_ok = False
34+
if user:
35+
if check_password_hash(user.password, password):
36+
password_ok = True
37+
elif user.password == password:
38+
user.password = generate_password_hash(password)
39+
db.session.commit()
40+
password_ok = True
41+
42+
if password_ok:
3343
# Generate OTP and send email
3444
otp_code = generate_otp()
3545
otp_expiry = get_otp_expiry(minutes=5)

0 commit comments

Comments
 (0)