mirror of
https://github.com/cryptoadvance/specter-desktop.git
synced 2026-08-13 12:33:29 +02:00
fix RPC-password as pin for multiple nodes (#1231)
This commit is contained in:
parent
45ab8de949
commit
ccfd335ade
3 changed files with 16 additions and 4 deletions
|
|
@ -16,6 +16,8 @@ logger = logging.getLogger(__name__)
|
|||
|
||||
class NodeManager:
|
||||
# chain is required to manage wallets when bitcoind is not running
|
||||
DEFAULT_ALIAS = "default"
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
proxy_url="socks5h://localhost:9050",
|
||||
|
|
@ -70,7 +72,7 @@ class NodeManager:
|
|||
host="localhost",
|
||||
protocol="http",
|
||||
external_node=True,
|
||||
default_alias="default",
|
||||
default_alias=self.DEFAULT_ALIAS,
|
||||
)
|
||||
else:
|
||||
self.nodes = nodes
|
||||
|
|
@ -87,6 +89,9 @@ class NodeManager:
|
|||
# this will throw an error if the node doesn't exist
|
||||
self._active_node = self.get_by_alias(node_alias).alias
|
||||
|
||||
def default_node(self):
|
||||
return self.get_by_alias(self.DEFAULT_ALIAS)
|
||||
|
||||
def get_by_alias(self, alias):
|
||||
for node_name in self.nodes:
|
||||
if self.nodes[node_name] and self.nodes[node_name].alias == alias:
|
||||
|
|
|
|||
|
|
@ -35,8 +35,11 @@ def login():
|
|||
return redirect_login(request)
|
||||
if auth["method"] == "rpcpasswordaspin":
|
||||
# TODO: check the password via RPC-call
|
||||
if app.specter.rpc is None:
|
||||
if app.specter.node.password == request.form["password"]:
|
||||
if (
|
||||
app.specter.default_node.rpc is None
|
||||
or not app.specter.default_node.rpc.test_connection()
|
||||
):
|
||||
if app.specter.default_node.password == request.form["password"]:
|
||||
app.login("admin")
|
||||
app.logger.info(
|
||||
"AUDIT: Successfull Login via RPC-credentials (node disconnected)"
|
||||
|
|
@ -55,7 +58,7 @@ def login():
|
|||
),
|
||||
401,
|
||||
)
|
||||
rpc = app.specter.rpc.clone()
|
||||
rpc = app.specter.default_node.rpc.clone()
|
||||
rpc.password = request.form["password"]
|
||||
if rpc.test_connection():
|
||||
app.login("admin")
|
||||
|
|
|
|||
|
|
@ -178,6 +178,10 @@ class Specter:
|
|||
self.update_active_node(list(self.node_manager.nodes.values())[0].alias)
|
||||
return self.node_manager.active_node
|
||||
|
||||
@property
|
||||
def default_node(self):
|
||||
return self.node_manager.default_node()
|
||||
|
||||
@property
|
||||
def rpc(self):
|
||||
return self.node.rpc
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue