Spaces:
Sleeping
Sleeping
| import bcrypt | |
| from src.utils.database import get_client | |
| def verify_password(plain_password: str, hashed_password: str) -> bool: | |
| return bcrypt.checkpw(plain_password.encode("utf-8"), hashed_password.encode("utf-8")) | |
| def get_user(username: str) -> dict | None: | |
| client = get_client() | |
| response = ( | |
| client.table("users") | |
| .select("id, username, password_hash, role") | |
| .eq("username", username) | |
| .execute() | |
| ) | |
| return response.data[0] if response.data else None | |
| def authenticate(username: str, password: str) -> dict | None: | |
| user = get_user(username) | |
| if user and verify_password(password, user["password_hash"]): | |
| return user | |
| return None | |