Frontend basics
This commit is contained in:
parent
8565ce19fe
commit
e310930d9e
10 changed files with 607 additions and 58 deletions
|
|
@ -2,6 +2,7 @@ import os.path
|
|||
|
||||
from injectable import injectable
|
||||
from pykeepass import PyKeePass, create_database, Group
|
||||
import shutil
|
||||
|
||||
|
||||
@injectable(singleton=True)
|
||||
|
|
@ -12,29 +13,27 @@ class Passwords:
|
|||
|
||||
with open(settings.kp.secret, "r") as fh:
|
||||
secret = fh.read()
|
||||
|
||||
self._kp_org = self.__get_or_create_store(settings.kp.file, secret)
|
||||
self._kp = self.__get_lock(settings.kp.file, secret)
|
||||
self._path = settings.kp.file
|
||||
self._kp_org = self._open_or_create(self._path, secret)
|
||||
self._kp = self._open_lock(self._path, secret)
|
||||
|
||||
@staticmethod
|
||||
def __get_or_create_store(path, passwd) -> PyKeePass:
|
||||
def _open_or_create(path, password) -> PyKeePass:
|
||||
if os.path.exists(path):
|
||||
return PyKeePass(
|
||||
path,
|
||||
password=passwd,
|
||||
)
|
||||
return create_database(path, passwd)
|
||||
return PyKeePass(path, password=password)
|
||||
return create_database(path, password)
|
||||
|
||||
@staticmethod
|
||||
def __get_lock(path, passwd) -> PyKeePass:
|
||||
def _open_lock(path, password) -> PyKeePass:
|
||||
lock_path = path + ".lock"
|
||||
import shutil
|
||||
shutil.copyfile(path, lock_path)
|
||||
return Passwords.__get_or_create_store(lock_path, passwd)
|
||||
return Passwords._open_or_create(lock_path, password)
|
||||
|
||||
@property
|
||||
def store(self):
|
||||
return self._kp.root_group
|
||||
def kp(self) -> PyKeePass:
|
||||
return self._kp
|
||||
|
||||
def save(self, group: Group):
|
||||
pass
|
||||
def save(self):
|
||||
# nadpisz plik źródłowy zmianami z lock
|
||||
self._kp.save()
|
||||
shutil.copyfile(self._path + ".lock", self._path)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue