fix: privatekey update actually creates a new key (#541)

Fixes #540
This commit is contained in:
lollipopkit🏳️‍⚧️
2024-08-16 21:00:34 +08:00
committed by GitHub
parent 7558b4806d
commit ef297673f3
9 changed files with 12 additions and 34 deletions

View File

@@ -7,7 +7,6 @@ import 'package:logging/logging.dart';
import 'package:server_box/data/model/server/private_key_info.dart'; import 'package:server_box/data/model/server/private_key_info.dart';
import 'package:server_box/data/model/server/server_private_info.dart'; import 'package:server_box/data/model/server/server_private_info.dart';
import 'package:server_box/data/model/server/snippet.dart'; import 'package:server_box/data/model/server/snippet.dart';
import 'package:server_box/data/provider/base.dart';
import 'package:server_box/data/res/misc.dart'; import 'package:server_box/data/res/misc.dart';
import 'package:server_box/data/res/rebuild.dart'; import 'package:server_box/data/res/rebuild.dart';
import 'package:server_box/data/res/store.dart'; import 'package:server_box/data/res/store.dart';

View File

@@ -1,20 +0,0 @@
import 'dart:async';
import 'package:flutter/foundation.dart';
abstract class Provider<T> {
const Provider();
/// (Re)Load data from store / network / etc.
@mustCallSuper
FutureOr<void> load() {
all.add(this);
debugPrint('$runtimeType added');
}
static final all = <Provider>[];
static Future<void> reload() {
return Future.wait(all.map((e) async => await e.load()));
}
}

View File

@@ -1,6 +1,5 @@
import 'package:fl_lib/fl_lib.dart'; import 'package:fl_lib/fl_lib.dart';
import 'package:server_box/data/model/server/private_key_info.dart'; import 'package:server_box/data/model/server/private_key_info.dart';
import 'package:server_box/data/provider/base.dart';
import 'package:server_box/data/res/store.dart'; import 'package:server_box/data/res/store.dart';
class PrivateKeyProvider extends Provider { class PrivateKeyProvider extends Provider {
@@ -31,10 +30,12 @@ class PrivateKeyProvider extends Provider {
final idx = pkis.value.indexWhere((e) => e.id == old.id); final idx = pkis.value.indexWhere((e) => e.id == old.id);
if (idx == -1) { if (idx == -1) {
pkis.value.add(newInfo); pkis.value.add(newInfo);
Stores.key.put(newInfo);
Stores.key.delete(old);
} else { } else {
pkis.value[idx] = newInfo; pkis.value[idx] = newInfo;
Stores.key.put(newInfo);
} }
pkis.notify(); pkis.notify();
Stores.key.put(newInfo);
} }
} }

View File

@@ -9,9 +9,6 @@ import 'package:server_box/core/utils/ssh_auth.dart';
import 'package:server_box/data/model/app/error.dart'; import 'package:server_box/data/model/app/error.dart';
import 'package:server_box/data/model/app/shell_func.dart'; import 'package:server_box/data/model/app/shell_func.dart';
import 'package:server_box/data/model/server/system.dart'; import 'package:server_box/data/model/server/system.dart';
import 'package:server_box/data/provider/base.dart';
// import 'package:server_box/data/model/sftp/req.dart';
// import 'package:server_box/data/res/provider.dart';
import 'package:server_box/data/res/store.dart'; import 'package:server_box/data/res/store.dart';
import 'package:server_box/core/utils/server.dart'; import 'package:server_box/core/utils/server.dart';

View File

@@ -2,7 +2,6 @@ import 'dart:async';
import 'package:fl_lib/fl_lib.dart'; import 'package:fl_lib/fl_lib.dart';
import 'package:server_box/data/model/sftp/worker.dart'; import 'package:server_box/data/model/sftp/worker.dart';
import 'package:server_box/data/provider/base.dart';
class SftpProvider extends Provider { class SftpProvider extends Provider {
const SftpProvider._(); const SftpProvider._();

View File

@@ -1,6 +1,5 @@
import 'package:fl_lib/fl_lib.dart'; import 'package:fl_lib/fl_lib.dart';
import 'package:server_box/data/model/server/snippet.dart'; import 'package:server_box/data/model/server/snippet.dart';
import 'package:server_box/data/provider/base.dart';
import 'package:server_box/data/res/store.dart'; import 'package:server_box/data/res/store.dart';
class SnippetProvider extends Provider { class SnippetProvider extends Provider {

View File

@@ -203,8 +203,9 @@ class _PrivateKeyEditPageState extends State<PrivateKeyEditPage> {
try { try {
final decrypted = await Computer.shared.start(decyptPem, [key, pwd]); final decrypted = await Computer.shared.start(decyptPem, [key, pwd]);
final pki = PrivateKeyInfo(id: name, key: decrypted); final pki = PrivateKeyInfo(id: name, key: decrypted);
if (widget.pki != null) { final originPki = widget.pki;
PrivateKeyProvider.update(widget.pki!, pki); if (originPki != null) {
PrivateKeyProvider.update(originPki, pki);
} else { } else {
PrivateKeyProvider.add(pki); PrivateKeyProvider.add(pki);
} }

View File

@@ -389,9 +389,11 @@ packages:
fl_lib: fl_lib:
dependency: "direct main" dependency: "direct main"
description: description:
path: "../fl_lib" path: "."
relative: true ref: "v1.0.141"
source: path resolved-ref: "2fb1532cd2fd08dd807e9776b2b50b5d8ee94388"
url: "https://github.com/lppcg/fl_lib"
source: git
version: "0.0.1" version: "0.0.1"
flutter: flutter:
dependency: "direct main" dependency: "direct main"

View File

@@ -60,7 +60,7 @@ dependencies:
fl_lib: fl_lib:
git: git:
url: https://github.com/lppcg/fl_lib url: https://github.com/lppcg/fl_lib
ref: v1.0.140 ref: v1.0.141
dependency_overrides: dependency_overrides:
# dartssh2: # dartssh2: