added password hashing and ensured admin user exists #8

Merged
brian merged 3 commits from add-password-hashing into main 2025-11-08 00:04:44 +01:00
3 changed files with 12 additions and 18 deletions
Showing only changes of commit 19a211121c - Show all commits
@@ -50,9 +50,7 @@ def _ensure_admin_user() -> None:
db = SessionLocal() db = SessionLocal()
try: try:
# Check if admin user exists # Check if admin user exists
admin_user = db.query(User).filter( admin_user = db.query(User).filter(User.username == admin_username).first()
User.username == admin_username
).first()
hashed_pw = hash_password(admin_password) hashed_pw = hash_password(admin_password)
@@ -42,7 +42,7 @@ class InMemoryTokenRepository(TokenRepositoryInterface):
def cleanup_expired(self) -> None: def cleanup_expired(self) -> None:
"""Remove expired tokens.""" """Remove expired tokens."""
now = datetime.utcnow() now = datetime.now(UTC)
expired_tokens = [ expired_tokens = [
token for token, (_, expiry) in self._tokens.items() if now > expiry token for token, (_, expiry) in self._tokens.items() if now > expiry
] ]
+2 -6
View File
@@ -80,15 +80,11 @@ def login(
# Check if user exists in database # Check if user exists in database
user = user_repo.get_by_username(credentials.username) user = user_repo.get_by_username(credentials.username)
if not user: if not user:
raise HTTPException( raise HTTPException(status_code=401, detail="Invalid username or password")
status_code=401, detail="Invalid username or password"
)
# Verify password using bcrypt # Verify password using bcrypt
if not verify_password(credentials.password, user["hashed_password"]): if not verify_password(credentials.password, user["hashed_password"]):
raise HTTPException( raise HTTPException(status_code=401, detail="Invalid username or password")
status_code=401, detail="Invalid username or password"
)
# Generate a secure random token # Generate a secure random token
access_token = secrets.token_urlsafe(32) access_token = secrets.token_urlsafe(32)