working
This commit is contained in:
commit
a385308f38
44 changed files with 1614 additions and 0 deletions
39
app/auth.py
Normal file
39
app/auth.py
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
"""Модуль аутентификации"""
|
||||
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()
|
||||
Loading…
Add table
Add a link
Reference in a new issue