Changed database scripts

This commit is contained in:
StNicolay
2022-10-14 15:38:03 +03:00
parent e09c56759e
commit 3ebe4240bf
8 changed files with 116 additions and 113 deletions

View File

@ -1,31 +1,36 @@
import mariadb
import sqlmodel
from sqlalchemy.future import Engine
from . import models
def get_master_pass(con: mariadb.Connection, id: int) -> tuple[bytes, bytes]:
"""Returns tuple of salt and hashed master password"""
cursor = con.cursor()
cursor.execute("SELECT salt, passwd FROM master_pass IF user_id = ?", [id])
result = cursor.fetchone()
cursor.close()
return result
def get_master_pass(engine: Engine, user_id: int) -> tuple[bytes, bytes] | None:
statement = sqlmodel.select(models.MasterPass).where(
models.MasterPass.user_id == user_id
)
with sqlmodel.Session(engine) as session:
result = session.exec(statement).first()
print(result)
if result is None:
return
return (result.salt, result.passwd)
def get_accounts(con: mariadb.Connection, id: int) -> list[str]:
"""Returns list of user accounts"""
cursor = con.cursor()
cursor.execute("SELECT acc_name FROM accounts IF user_id = ?", [id])
return [i[0] for i in cursor.fetchall()]
def get_accounts(engine: Engine, user_id: int) -> list[str]:
statement = sqlmodel.select(models.Account).where(models.Account.user_id == user_id)
with sqlmodel.Session(engine) as session:
result = session.exec(statement)
return [account.name for account in result]
def get_account_info(
id: int, name: str, con: mariadb.Connection
engine: Engine, user_id: int, name: str
) -> tuple[bytes, bytes, bytes]:
"""Returns tuple of salt, login and password"""
cursor = con.cursor()
cursor.execute(
"""SELECT salt, enc_login, enc_pass IF user_id = ? AND acc_name = ?""",
[id, name],
statement = sqlmodel.select(models.Account).where(
models.Account.user_id == user_id and models.Account.name == name
)
result = cursor.fetchone()
cursor.close()
return result
with sqlmodel.Session(engine) as session:
result = session.exec(statement).first()
if result is None:
return
return (result.salt, result.enc_login, result.enc_pass)