Changed database scripts
This commit is contained in:
@ -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)
|
||||
|
Reference in New Issue
Block a user