41 lines
1.1 KiB
Python
41 lines
1.1 KiB
Python
import sqlmodel
|
|
from sqlalchemy.exc import IntegrityError
|
|
from sqlalchemy.future import Engine
|
|
|
|
from . import models
|
|
|
|
|
|
def add_account(
|
|
engine: Engine,
|
|
user_id: int,
|
|
name: str,
|
|
salt: bytes,
|
|
enc_login: bytes,
|
|
enc_pass: bytes,
|
|
) -> bool:
|
|
"""Adds account to db. Returns true, if on success"""
|
|
account = models.Account(
|
|
user_id=user_id, name=name, salt=salt, enc_login=enc_login, enc_pass=enc_pass
|
|
)
|
|
try:
|
|
with sqlmodel.Session(engine) as session:
|
|
session.add(account)
|
|
session.commit()
|
|
except IntegrityError:
|
|
return False
|
|
else:
|
|
return True
|
|
|
|
|
|
def add_master_pass(engine: Engine, user_id: int, salt: bytes, passwd: bytes) -> bool:
|
|
"""Adds master password to db. Returns true, if on success"""
|
|
master_pass = models.MasterPass(user_id=user_id, salt=salt, passwd=passwd)
|
|
try:
|
|
with sqlmodel.Session(engine) as session:
|
|
session.add(master_pass)
|
|
session.commit()
|
|
except IntegrityError:
|
|
return False
|
|
else:
|
|
return True
|