Captain_s-Log/app/auth.py

39 lines
1.5 KiB
Python
Raw Normal View History

2026-07-04 16:04:48 +03:00
"""Модуль аутентификации"""
import hashlib
import base64
from app.database import Database
class Auth:
def __init__(self, db: Database):
self.db = db
def set_master_password(self, password):
"""Установить мастер-пароль"""
password_hash = self._hash_password(password)
self.db.set_setting('master_password_hash', password_hash)
self.db.set_setting('password_set', '1')
def check_password(self, password):
"""Проверить мастер-пароль"""
stored_hash = self.db.get_setting('master_password_hash')
if not stored_hash:
return True # Пароль не установлен
return self._hash_password(password) == stored_hash
def is_password_set(self):
"""Проверяет, установлен ли пароль"""
return self.db.get_setting('password_set', '0') == '1'
def ask_password_on_startup(self):
"""Спрашивать ли пароль при входе"""
return self.db.get_setting('ask_password_on_startup', '1') == '1'
def set_ask_password_on_startup(self, value):
"""Установить, спрашивать ли пароль при входе"""
self.db.set_setting('ask_password_on_startup', '1' if value else '0')
def _hash_password(self, password):
"""Хешировать пароль"""
return hashlib.sha256(password.encode()).hexdigest()