Keepass outline
This commit is contained in:
parent
b18488a6d3
commit
162c0adf13
9 changed files with 115 additions and 3 deletions
49
app/model/passwords.py
Normal file
49
app/model/passwords.py
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
from dataclasses import dataclass, field
|
||||
from typing import Type
|
||||
|
||||
# TODO: unnecessary?
|
||||
|
||||
@dataclass
|
||||
class PathItem:
|
||||
name: str
|
||||
t: Type
|
||||
|
||||
@dataclass
|
||||
class Path:
|
||||
path: list[PathItem] = field(default_factory=list)
|
||||
|
||||
def append(self, name, t):
|
||||
self.path.append(PathItem(name, t))
|
||||
|
||||
def __str__(self):
|
||||
return "/".join([i.name for i in self.path])
|
||||
|
||||
|
||||
@dataclass
|
||||
class Group:
|
||||
name: str
|
||||
passwords: list["Password"] = field(default_factory=list)
|
||||
parent: "Group|None" = None
|
||||
|
||||
@property
|
||||
def path(self):
|
||||
if self.parent is None:
|
||||
new_path = Path()
|
||||
new_path.append(self.name, type(self))
|
||||
return new_path
|
||||
return self.parent.path.append(self.name, type(self))
|
||||
|
||||
|
||||
@dataclass
|
||||
class Password:
|
||||
name: str
|
||||
group: Group
|
||||
|
||||
@property
|
||||
def path(self):
|
||||
return self.group.path.append(self.name, type(self))
|
||||
|
||||
class UnencryptedPassword(Password):
|
||||
def __init__(self, name: str, value: str, group: Group):
|
||||
super().__init__(name, group)
|
||||
self.value = value
|
||||
Loading…
Add table
Add a link
Reference in a new issue