From 1137b50b8a71e88a153994f52abb56707c8396eb Mon Sep 17 00:00:00 2001 From: Louis-Marie Baer Date: Thu, 26 Dec 2024 13:56:37 +0100 Subject: [PATCH 1/2] fix: #1061 --- .../manage_nodes_views/add_edit_node_view.dart | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/lib/pages/settings_views/global_settings_view/manage_nodes_views/add_edit_node_view.dart b/lib/pages/settings_views/global_settings_view/manage_nodes_views/add_edit_node_view.dart index fb18a4716..e66f7ecc7 100644 --- a/lib/pages/settings_views/global_settings_view/manage_nodes_views/add_edit_node_view.dart +++ b/lib/pages/settings_views/global_settings_view/manage_nodes_views/add_edit_node_view.dart @@ -860,13 +860,8 @@ class _NodeFormState extends ConsumerState { onChanged?.call(canSave, canTestConnection); ref.read(nodeFormDataProvider).name = _nameController.text; ref.read(nodeFormDataProvider).host = _hostController.text; - - ref.read(nodeFormDataProvider).login = - _usernameController.text.isEmpty ? null : _usernameController.text; - - ref.read(nodeFormDataProvider).password = - _passwordController.text.isEmpty ? null : _passwordController.text; - + ref.read(nodeFormDataProvider).login = _usernameController.text; + ref.read(nodeFormDataProvider).password = _passwordController.text; ref.read(nodeFormDataProvider).port = port; ref.read(nodeFormDataProvider).useSSL = _useSSL; ref.read(nodeFormDataProvider).isFailover = _isFailover; From 130895a449b9314a8c96473dd39e79df1763cc52 Mon Sep 17 00:00:00 2001 From: Louis-Marie Baer Date: Mon, 13 Jan 2025 20:35:24 +0100 Subject: [PATCH 2/2] fix: update logins even if null --- lib/models/node_model.dart | 8 ++++---- .../add_edit_node_view.dart | 19 ++++++++++++++----- .../helpers/restore_create_backup.dart | 1 + lib/services/node_service.dart | 12 +++++++++++- 4 files changed, 30 insertions(+), 10 deletions(-) diff --git a/lib/models/node_model.dart b/lib/models/node_model.dart index e4d3f66b6..1a27d1345 100644 --- a/lib/models/node_model.dart +++ b/lib/models/node_model.dart @@ -65,12 +65,12 @@ class NodeModel { int? port, String? name, bool? useSSL, - String? loginName, + required String? loginName, bool? enabled, String? coinName, bool? isFailover, bool? isDown, - bool? trusted, + required bool? trusted, bool? torEnabled, bool? clearnetEnabled, }) { @@ -80,12 +80,12 @@ class NodeModel { name: name ?? this.name, id: id, useSSL: useSSL ?? this.useSSL, - loginName: loginName ?? this.loginName, + loginName: loginName, enabled: enabled ?? this.enabled, coinName: coinName ?? this.coinName, isFailover: isFailover ?? this.isFailover, isDown: isDown ?? this.isDown, - trusted: trusted ?? this.trusted, + trusted: trusted, torEnabled: torEnabled ?? this.torEnabled, clearnetEnabled: clearnetEnabled ?? this.clearnetEnabled, ); diff --git a/lib/pages/settings_views/global_settings_view/manage_nodes_views/add_edit_node_view.dart b/lib/pages/settings_views/global_settings_view/manage_nodes_views/add_edit_node_view.dart index e66f7ecc7..5bbbe37d1 100644 --- a/lib/pages/settings_views/global_settings_view/manage_nodes_views/add_edit_node_view.dart +++ b/lib/pages/settings_views/global_settings_view/manage_nodes_views/add_edit_node_view.dart @@ -860,8 +860,10 @@ class _NodeFormState extends ConsumerState { onChanged?.call(canSave, canTestConnection); ref.read(nodeFormDataProvider).name = _nameController.text; ref.read(nodeFormDataProvider).host = _hostController.text; - ref.read(nodeFormDataProvider).login = _usernameController.text; - ref.read(nodeFormDataProvider).password = _passwordController.text; + ref.read(nodeFormDataProvider).login = + _usernameController.text.isEmpty ? null : _usernameController.text; + ref.read(nodeFormDataProvider).password = + _passwordController.text.isEmpty ? null : _passwordController.text; ref.read(nodeFormDataProvider).port = port; ref.read(nodeFormDataProvider).useSSL = _useSSL; ref.read(nodeFormDataProvider).isFailover = _isFailover; @@ -1326,7 +1328,11 @@ class _NodeFormState extends ConsumerState { }); if (widget.readOnly) { ref.read(nodeServiceChangeNotifierProvider).edit( - widget.node!.copyWith(isFailover: _isFailover), + widget.node!.copyWith( + isFailover: _isFailover, + loginName: widget.node!.loginName, + trusted: widget.node!.trusted, + ), null, true, ); @@ -1351,8 +1357,11 @@ class _NodeFormState extends ConsumerState { }); if (widget.readOnly) { ref.read(nodeServiceChangeNotifierProvider).edit( - widget.node! - .copyWith(isFailover: _isFailover), + widget.node!.copyWith( + isFailover: _isFailover, + loginName: widget.node!.loginName, + trusted: widget.node!.trusted, + ), null, true, ); diff --git a/lib/pages/settings_views/global_settings_view/stack_backup_views/helpers/restore_create_backup.dart b/lib/pages/settings_views/global_settings_view/stack_backup_views/helpers/restore_create_backup.dart index 0ffa6bcf9..68d9bb1f0 100644 --- a/lib/pages/settings_views/global_settings_view/stack_backup_views/helpers/restore_create_backup.dart +++ b/lib/pages/settings_views/global_settings_view/stack_backup_views/helpers/restore_create_backup.dart @@ -1071,6 +1071,7 @@ abstract class SWB { loginName: nodeData['loginName'] as String?, isFailover: nodeData['isFailover'] as bool, isDown: nodeData['isDown'] as bool, + trusted: nodeData['trusted'] as bool?, ), nodeData['password'] as String?, true, diff --git a/lib/services/node_service.dart b/lib/services/node_service.dart index db4a25a1b..847602249 100644 --- a/lib/services/node_service.dart +++ b/lib/services/node_service.dart @@ -104,6 +104,7 @@ class NodeService extends ChangeNotifier { trusted: savedNode.trusted, torEnabled: savedNode.torEnabled, clearnetEnabled: savedNode.clearnetEnabled, + loginName: savedNode.loginName, ), ); } @@ -122,6 +123,7 @@ class NodeService extends ChangeNotifier { trusted: primaryNode.trusted, torEnabled: primaryNode.torEnabled, clearnetEnabled: primaryNode.clearnetEnabled, + loginName: primaryNode.loginName, ), ); } @@ -213,6 +215,8 @@ class NodeService extends ChangeNotifier { key: "${node.id}_nodePW", value: password, ); + } else { + await secureStorageInterface.delete(key: "${node.id}_nodePW"); } if (shouldNotifyListeners) { notifyListeners(); @@ -240,7 +244,11 @@ class NodeService extends ChangeNotifier { await DB.instance.put( boxName: DB.boxNameNodeModels, key: model.id, - value: model.copyWith(enabled: enabled), + value: model.copyWith( + enabled: enabled, + loginName: model.loginName, + trusted: model.trusted, + ), ); if (shouldNotifyListeners) { notifyListeners(); @@ -314,6 +322,8 @@ class NodeService extends ChangeNotifier { useSSL: node.useSSL, coinName: node.coinName, isDown: node.isDown, + loginName: node.loginName, + trusted: node.trusted, ); } await add(node, null, false);