import json import hashlib from pathlib import Path class Auth: def __init__(self, hive_home): self.hive_home = Path(hive_home) self.users_file = self.hive_home / "users" / "profiles.json" self.users = self.load_users() def load_users(self): if self.users_file.exists(): return json.loads(self.users_file.read_text()) return { "owner": { "id": "owner", "pass_hash": self.hash_password("Fehr2008"), "role": "owner", "voice_enrolled": False } } def save_users(self): self.users_file.write_text(json.dumps(self.users, indent=2)) def hash_password(self, password): return hashlib.pbkdf2_hmac('sha256', password.encode(), b'salt', 100000).hex() def check_password(self, username, password): user = self.users.get(username) if not user: return False return user["pass_hash"] == self.hash_password(password)