commit 3de94005f15fb78644295ba6a9a7bde3789c40e8
parent 0b0a955926badc1aea2e1bbb75958fffb27f5c17
Author: lash <dev@holbrook.no>
Date: Mon, 15 Jun 2026 10:03:42 -0600
Add user object
Diffstat:
2 files changed, 25 insertions(+), 5 deletions(-)
diff --git a/dummy/usawa/context.py b/dummy/usawa/context.py
@@ -20,7 +20,7 @@ class UsawaContext:
pwget = pwgetter
- def __init__(self, cfg, signing=True, pwgetter=None, replay=False):
+ def __init__(self, cfg, signing=True, pwgetter=None, idgetter=None, replay=False):
self.cfg = cfg
self.db = None
self.ledger = None
@@ -37,6 +37,7 @@ class UsawaContext:
self.signing = signing
self.replay = replay
self.pwgetter = pwgetter
+ self.idgetter = idgetter
def set(self, k, v):
@@ -78,7 +79,11 @@ class UsawaContext:
self.askpass = args.p
except AttributeError:
pass
- self.load_wallet()
+
+ identity = None
+ if self.idgetter != None:
+ identity = self.idgetter()
+ self.load_wallet(identity=identity, signing=self.signing)
if self.replay:
#self.store.load(unitindex=self.uidx)
@@ -116,7 +121,10 @@ class UsawaContext:
return True
- def load_wallet(self, signing=False, replace=False):
+ def load_wallet(self, signing=False, identity=None, replace=False):
+ pubkey = None
+ if identity != None:
+ pubkey = identity.pubkey
if self.wallet != None and not replace:
raise AttributeError('wallet set')
if not self.signing and not signing:
@@ -124,11 +132,11 @@ class UsawaContext:
elif not signing:
self.wallet = self.keystore.get_default_key(DemoWallet)
else:
- logg.debug('decrypting wallet')
+ logg.debug('decrypting wallet for user {}'.format(identity))
ops = int(self.cfg.get('WALLET_OPSLIMIT', 0))
mem = int(self.cfg.get('WALLET_MEMLIMIT', 0))
pw = self.getpw()
- self.wallet = self.keystore.get_key(DemoWallet, passphrase=pw, opslimit=ops, memlimit=mem)
+ self.wallet = self.keystore.get_key(DemoWallet, pubkey=pubkey, passphrase=pw, opslimit=ops, memlimit=mem)
logg.debug('have wallet {}'.format(self.wallet))
if self.ledger != None:
self.ledger.set_wallet(self.wallet)
diff --git a/dummy/usawa/user.py b/dummy/usawa/user.py
@@ -0,0 +1,12 @@
+class UsawaUser:
+
+ def __init__(self, uid=None, uname=None, displayname=None, pubkey=None):
+ self.uid = uid
+ self.uname = uname
+ self.displayname = displayname
+ self.pubkey = pubkey
+ self.ledger = None
+
+
+ def __str__(self):
+ return "{} ({}) pubkey: {}".format(self.uname, self.uid, self.pubkey)