Hive_2 / auth.py
Paulhayes's picture
Create auth.py
f6c1395 verified
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)