new: option of ignoring pve cert (#317)

This commit is contained in:
lollipopkit
2024-03-23 12:16:46 +08:00
parent 6ed2e558cb
commit 96866565c4
17 changed files with 93 additions and 38 deletions

View File

@@ -660,7 +660,7 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_MODULES = YES;
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements; CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
CURRENT_PROJECT_VERSION = 822; CURRENT_PROJECT_VERSION = 824;
DEVELOPMENT_TEAM = BA88US33G6; DEVELOPMENT_TEAM = BA88US33G6;
ENABLE_BITCODE = NO; ENABLE_BITCODE = NO;
INFOPLIST_FILE = "Runner/Info-$(CONFIGURATION).plist"; INFOPLIST_FILE = "Runner/Info-$(CONFIGURATION).plist";
@@ -670,7 +670,7 @@
"$(inherited)", "$(inherited)",
"@executable_path/Frameworks", "@executable_path/Frameworks",
); );
MARKETING_VERSION = 1.0.822; MARKETING_VERSION = 1.0.824;
PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox;
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
@@ -796,7 +796,7 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_MODULES = YES;
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements; CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
CURRENT_PROJECT_VERSION = 822; CURRENT_PROJECT_VERSION = 824;
DEVELOPMENT_TEAM = BA88US33G6; DEVELOPMENT_TEAM = BA88US33G6;
ENABLE_BITCODE = NO; ENABLE_BITCODE = NO;
INFOPLIST_FILE = "Runner/Info-$(CONFIGURATION).plist"; INFOPLIST_FILE = "Runner/Info-$(CONFIGURATION).plist";
@@ -806,7 +806,7 @@
"$(inherited)", "$(inherited)",
"@executable_path/Frameworks", "@executable_path/Frameworks",
); );
MARKETING_VERSION = 1.0.822; MARKETING_VERSION = 1.0.824;
PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox;
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
@@ -824,7 +824,7 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_MODULES = YES;
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements; CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
CURRENT_PROJECT_VERSION = 822; CURRENT_PROJECT_VERSION = 824;
DEVELOPMENT_TEAM = BA88US33G6; DEVELOPMENT_TEAM = BA88US33G6;
ENABLE_BITCODE = NO; ENABLE_BITCODE = NO;
INFOPLIST_FILE = "Runner/Info-$(CONFIGURATION).plist"; INFOPLIST_FILE = "Runner/Info-$(CONFIGURATION).plist";
@@ -834,7 +834,7 @@
"$(inherited)", "$(inherited)",
"@executable_path/Frameworks", "@executable_path/Frameworks",
); );
MARKETING_VERSION = 1.0.822; MARKETING_VERSION = 1.0.824;
PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox;
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
@@ -855,7 +855,7 @@
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CODE_SIGN_STYLE = Automatic; CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 822; CURRENT_PROJECT_VERSION = 824;
DEVELOPMENT_TEAM = BA88US33G6; DEVELOPMENT_TEAM = BA88US33G6;
GCC_C_LANGUAGE_STANDARD = gnu11; GCC_C_LANGUAGE_STANDARD = gnu11;
GENERATE_INFOPLIST_FILE = YES; GENERATE_INFOPLIST_FILE = YES;
@@ -868,7 +868,7 @@
"@executable_path/Frameworks", "@executable_path/Frameworks",
"@executable_path/../../Frameworks", "@executable_path/../../Frameworks",
); );
MARKETING_VERSION = 1.0.822; MARKETING_VERSION = 1.0.824;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES; MTL_FAST_MATH = YES;
PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.StatusWidget; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.StatusWidget;
@@ -894,7 +894,7 @@
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CODE_SIGN_STYLE = Automatic; CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 822; CURRENT_PROJECT_VERSION = 824;
DEVELOPMENT_TEAM = BA88US33G6; DEVELOPMENT_TEAM = BA88US33G6;
GCC_C_LANGUAGE_STANDARD = gnu11; GCC_C_LANGUAGE_STANDARD = gnu11;
GENERATE_INFOPLIST_FILE = YES; GENERATE_INFOPLIST_FILE = YES;
@@ -907,7 +907,7 @@
"@executable_path/Frameworks", "@executable_path/Frameworks",
"@executable_path/../../Frameworks", "@executable_path/../../Frameworks",
); );
MARKETING_VERSION = 1.0.822; MARKETING_VERSION = 1.0.824;
MTL_FAST_MATH = YES; MTL_FAST_MATH = YES;
PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.StatusWidget; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.StatusWidget;
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
@@ -930,7 +930,7 @@
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CODE_SIGN_STYLE = Automatic; CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 822; CURRENT_PROJECT_VERSION = 824;
DEVELOPMENT_TEAM = BA88US33G6; DEVELOPMENT_TEAM = BA88US33G6;
GCC_C_LANGUAGE_STANDARD = gnu11; GCC_C_LANGUAGE_STANDARD = gnu11;
GENERATE_INFOPLIST_FILE = YES; GENERATE_INFOPLIST_FILE = YES;
@@ -943,7 +943,7 @@
"@executable_path/Frameworks", "@executable_path/Frameworks",
"@executable_path/../../Frameworks", "@executable_path/../../Frameworks",
); );
MARKETING_VERSION = 1.0.822; MARKETING_VERSION = 1.0.824;
MTL_FAST_MATH = YES; MTL_FAST_MATH = YES;
PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.StatusWidget; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.StatusWidget;
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
@@ -966,7 +966,7 @@
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CODE_SIGN_STYLE = Automatic; CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 822; CURRENT_PROJECT_VERSION = 824;
DEVELOPMENT_ASSET_PATHS = ""; DEVELOPMENT_ASSET_PATHS = "";
DEVELOPMENT_TEAM = BA88US33G6; DEVELOPMENT_TEAM = BA88US33G6;
ENABLE_PREVIEWS = YES; ENABLE_PREVIEWS = YES;
@@ -978,7 +978,7 @@
"$(inherited)", "$(inherited)",
"@executable_path/Frameworks", "@executable_path/Frameworks",
); );
MARKETING_VERSION = 1.0.822; MARKETING_VERSION = 1.0.824;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES; MTL_FAST_MATH = YES;
PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.WatchEnd; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.WatchEnd;
@@ -1007,7 +1007,7 @@
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CODE_SIGN_STYLE = Automatic; CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 822; CURRENT_PROJECT_VERSION = 824;
DEVELOPMENT_ASSET_PATHS = ""; DEVELOPMENT_ASSET_PATHS = "";
DEVELOPMENT_TEAM = BA88US33G6; DEVELOPMENT_TEAM = BA88US33G6;
ENABLE_PREVIEWS = YES; ENABLE_PREVIEWS = YES;
@@ -1019,7 +1019,7 @@
"$(inherited)", "$(inherited)",
"@executable_path/Frameworks", "@executable_path/Frameworks",
); );
MARKETING_VERSION = 1.0.822; MARKETING_VERSION = 1.0.824;
MTL_FAST_MATH = YES; MTL_FAST_MATH = YES;
PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.WatchEnd; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.WatchEnd;
PRODUCT_NAME = ServerBox; PRODUCT_NAME = ServerBox;
@@ -1045,7 +1045,7 @@
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CODE_SIGN_STYLE = Automatic; CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 822; CURRENT_PROJECT_VERSION = 824;
DEVELOPMENT_ASSET_PATHS = ""; DEVELOPMENT_ASSET_PATHS = "";
DEVELOPMENT_TEAM = BA88US33G6; DEVELOPMENT_TEAM = BA88US33G6;
ENABLE_PREVIEWS = YES; ENABLE_PREVIEWS = YES;
@@ -1057,7 +1057,7 @@
"$(inherited)", "$(inherited)",
"@executable_path/Frameworks", "@executable_path/Frameworks",
); );
MARKETING_VERSION = 1.0.822; MARKETING_VERSION = 1.0.824;
MTL_FAST_MATH = YES; MTL_FAST_MATH = YES;
PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.WatchEnd; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.WatchEnd;
PRODUCT_NAME = ServerBox; PRODUCT_NAME = ServerBox;

View File

@@ -8,18 +8,23 @@ final class ServerCustom {
final String? temperature; final String? temperature;
@HiveField(1) @HiveField(1)
final String? pveAddr; final String? pveAddr;
@HiveField(2)
final bool? pveIgnoreCert;
const ServerCustom({ const ServerCustom({
this.temperature, this.temperature,
this.pveAddr, this.pveAddr,
this.pveIgnoreCert,
}); });
static ServerCustom fromJson(Map<String, dynamic> json) { static ServerCustom fromJson(Map<String, dynamic> json) {
final temperature = json["temperature"] as String?; final temperature = json["temperature"] as String?;
final pveAddr = json["pveAddr"] as String?; final pveAddr = json["pveAddr"] as String?;
final pveIgnoreCert = json["pveIgnoreCert"] as bool?;
return ServerCustom( return ServerCustom(
temperature: temperature, temperature: temperature,
pveAddr: pveAddr, pveAddr: pveAddr,
pveIgnoreCert: pveIgnoreCert,
); );
} }
@@ -31,6 +36,9 @@ final class ServerCustom {
if (pveAddr != null) { if (pveAddr != null) {
json["pveAddr"] = pveAddr; json["pveAddr"] = pveAddr;
} }
if (pveIgnoreCert != null) {
json["pveIgnoreCert"] = pveIgnoreCert;
}
return json; return json;
} }
} }

View File

@@ -19,17 +19,20 @@ class ServerCustomAdapter extends TypeAdapter<ServerCustom> {
return ServerCustom( return ServerCustom(
temperature: fields[0] as String?, temperature: fields[0] as String?,
pveAddr: fields[1] as String?, pveAddr: fields[1] as String?,
pveIgnoreCert: fields[2] as bool?,
); );
} }
@override @override
void write(BinaryWriter writer, ServerCustom obj) { void write(BinaryWriter writer, ServerCustom obj) {
writer writer
..writeByte(2) ..writeByte(3)
..writeByte(0) ..writeByte(0)
..write(obj.temperature) ..write(obj.temperature)
..writeByte(1) ..writeByte(1)
..write(obj.pveAddr); ..write(obj.pveAddr)
..writeByte(2)
..write(obj.pveIgnoreCert);
} }
@override @override

View File

@@ -2,6 +2,7 @@ import 'dart:async';
import 'package:computer/computer.dart'; import 'package:computer/computer.dart';
import 'package:dio/dio.dart'; import 'package:dio/dio.dart';
import 'package:dio/io.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:toolbox/core/extension/context/locale.dart'; import 'package:toolbox/core/extension/context/locale.dart';
import 'package:toolbox/data/model/app/error.dart'; import 'package:toolbox/data/model/app/error.dart';
@@ -33,7 +34,12 @@ final class PveProvider extends ChangeNotifier {
final err = ValueNotifier<String?>(null); final err = ValueNotifier<String?>(null);
final connected = Completer<void>(); final connected = Completer<void>();
final session = Dio();
late final _ignoreCert = spi.custom?.pveIgnoreCert ?? false;
late final session = Dio()
..httpClientAdapter = IOHttpClientAdapter(
validateCertificate: _ignoreCert ? (_, __, ___) => true : null,
);
final data = ValueNotifier<PveRes?>(null); final data = ValueNotifier<PveRes?>(null);
bool get onlyOneNode => data.value?.nodes.length == 1; bool get onlyOneNode => data.value?.nodes.length == 1;
String? release; String? release;

View File

@@ -2,9 +2,9 @@
class BuildData { class BuildData {
static const String name = "ServerBox"; static const String name = "ServerBox";
static const int build = 822; static const int build = 824;
static const String engine = "3.19.3"; static const String engine = "3.19.3";
static const String buildAt = "2024-03-21 17:33:04"; static const String buildAt = "2024-03-23 10:51:07";
static const int modifications = 4; static const int modifications = 6;
static const int script = 41; static const int script = 41;
} }

View File

@@ -115,6 +115,7 @@
"hour": "Stunde", "hour": "Stunde",
"httpFailedWithCode": "Anfrage fehlgeschlagen, Statuscode: {code}", "httpFailedWithCode": "Anfrage fehlgeschlagen, Statuscode: {code}",
"icloudSynced": "iCloud wird synchronisiert und einige Einstellungen erfordern möglicherweise einen Neustart der App, um wirksam zu werden.", "icloudSynced": "iCloud wird synchronisiert und einige Einstellungen erfordern möglicherweise einen Neustart der App, um wirksam zu werden.",
"ignoreCert": "Zertifikat ignorieren",
"image": "Image", "image": "Image",
"imagesList": "Images", "imagesList": "Images",
"import": "Importieren", "import": "Importieren",
@@ -198,6 +199,7 @@
"privateKey": "Private Key", "privateKey": "Private Key",
"process": "Prozess", "process": "Prozess",
"pushToken": "Push Token", "pushToken": "Push Token",
"pveIgnoreCertTip": "Nicht empfohlen, Achten Sie auf Sicherheitsrisiken! Wenn Sie das Standardzertifikat von PVE verwenden, müssen Sie diese Option aktivieren.",
"pveLoginFailed": "Anmeldung fehlgeschlagen. Kann nicht mit Benutzername/Passwort aus der Serverkonfiguration angemeldet werden, um sich über Linux PAM anzumelden.", "pveLoginFailed": "Anmeldung fehlgeschlagen. Kann nicht mit Benutzername/Passwort aus der Serverkonfiguration angemeldet werden, um sich über Linux PAM anzumelden.",
"pveVersionLow": "Diese Funktion befindet sich derzeit in der Testphase und wurde nur auf PVE 8+ getestet. Bitte verwenden Sie sie mit Vorsicht.", "pveVersionLow": "Diese Funktion befindet sich derzeit in der Testphase und wurde nur auf PVE 8+ getestet. Bitte verwenden Sie sie mit Vorsicht.",
"pwd": "Passwort", "pwd": "Passwort",

View File

@@ -115,6 +115,7 @@
"hour": "Hour", "hour": "Hour",
"httpFailedWithCode": "request failed, status code: {code}", "httpFailedWithCode": "request failed, status code: {code}",
"icloudSynced": "iCloud wird synchronisiert und einige Einstellungen erfordern möglicherweise einen Neustart der App, um wirksam zu werden.", "icloudSynced": "iCloud wird synchronisiert und einige Einstellungen erfordern möglicherweise einen Neustart der App, um wirksam zu werden.",
"ignoreCert": "Ignore certificate",
"image": "Image", "image": "Image",
"imagesList": "Images list", "imagesList": "Images list",
"import": "Import", "import": "Import",
@@ -198,6 +199,7 @@
"privateKey": "Private Key", "privateKey": "Private Key",
"process": "Process", "process": "Process",
"pushToken": "Push token", "pushToken": "Push token",
"pveIgnoreCertTip": "Not recommended to enable, beware of security risks! If you are using the default certificate from PVE, you need to enable this option.",
"pveLoginFailed": "Login failed. Unable to authenticate with username/password from server configuration for Linux PAM login.", "pveLoginFailed": "Login failed. Unable to authenticate with username/password from server configuration for Linux PAM login.",
"pveVersionLow": "This feature is currently in the testing phase and has only been tested on PVE 8+. Please use it with caution.", "pveVersionLow": "This feature is currently in the testing phase and has only been tested on PVE 8+. Please use it with caution.",
"pwd": "Password", "pwd": "Password",

View File

@@ -115,6 +115,7 @@
"hour": "Hora", "hour": "Hora",
"httpFailedWithCode": "Fallo en la solicitud, código de estado: {code}", "httpFailedWithCode": "Fallo en la solicitud, código de estado: {code}",
"icloudSynced": "iCloud sincronizado, algunos ajustes pueden requerir reiniciar para tomar efecto.", "icloudSynced": "iCloud sincronizado, algunos ajustes pueden requerir reiniciar para tomar efecto.",
"ignoreCert": "Ignorar certificado",
"image": "Imagen", "image": "Imagen",
"imagesList": "Lista de imágenes", "imagesList": "Lista de imágenes",
"import": "Importar", "import": "Importar",
@@ -198,6 +199,7 @@
"privateKey": "Llave privada", "privateKey": "Llave privada",
"process": "Proceso", "process": "Proceso",
"pushToken": "Token de notificaciones", "pushToken": "Token de notificaciones",
"pveIgnoreCertTip": "No se recomienda activarlo, ¡tenga cuidado con los riesgos de seguridad! Si está utilizando el certificado predeterminado de PVE, debe habilitar esta opción.",
"pveLoginFailed": "Fallo al iniciar sesión. No se puede autenticar con el nombre de usuario/contraseña de la configuración del servidor para el inicio de sesión de Linux PAM.", "pveLoginFailed": "Fallo al iniciar sesión. No se puede autenticar con el nombre de usuario/contraseña de la configuración del servidor para el inicio de sesión de Linux PAM.",
"pveVersionLow": "Esta función está actualmente en fase de prueba y solo se ha probado en PVE 8+. Úsela con precaución.", "pveVersionLow": "Esta función está actualmente en fase de prueba y solo se ha probado en PVE 8+. Úsela con precaución.",
"pwd": "Contraseña", "pwd": "Contraseña",

View File

@@ -115,6 +115,7 @@
"hour": "Heure", "hour": "Heure",
"httpFailedWithCode": "requête échouée, code d'état : {code}", "httpFailedWithCode": "requête échouée, code d'état : {code}",
"icloudSynced": "iCloud est synchronisé et certaines options peuvent nécessiter un redémarrage de l'application pour être effectives.", "icloudSynced": "iCloud est synchronisé et certaines options peuvent nécessiter un redémarrage de l'application pour être effectives.",
"ignoreCert": "Ignorer le certificat",
"image": "Image", "image": "Image",
"imagesList": "Liste d'images", "imagesList": "Liste d'images",
"import": "Importer", "import": "Importer",
@@ -198,6 +199,7 @@
"privateKey": "Clé privée", "privateKey": "Clé privée",
"process": "Processus", "process": "Processus",
"pushToken": "Jeton d'identification", "pushToken": "Jeton d'identification",
"pveIgnoreCertTip": "Non recommandé de l'activer, attention aux risques de sécurité ! Si vous utilisez le certificat par défaut de PVE, vous devez activer cette option.",
"pveLoginFailed": "Échec de la connexion. Impossible de s'authentifier avec le nom d'utilisateur/mot de passe de la configuration du serveur pour la connexion Linux PAM.", "pveLoginFailed": "Échec de la connexion. Impossible de s'authentifier avec le nom d'utilisateur/mot de passe de la configuration du serveur pour la connexion Linux PAM.",
"pveVersionLow": "Cette fonctionnalité est actuellement en phase de test et n'a été testée que sur PVE 8+. Veuillez l'utiliser avec prudence.", "pveVersionLow": "Cette fonctionnalité est actuellement en phase de test et n'a été testée que sur PVE 8+. Veuillez l'utiliser avec prudence.",
"pwd": "Mot de passe", "pwd": "Mot de passe",

View File

@@ -115,6 +115,7 @@
"hour": "Jam", "hour": "Jam",
"httpFailedWithCode": "Permintaan gagal, kode status: {code}", "httpFailedWithCode": "Permintaan gagal, kode status: {code}",
"icloudSynced": "iCloud disinkronkan dan beberapa pengaturan mungkin memerlukan pengaktifan ulang aplikasi agar dapat diterapkan.", "icloudSynced": "iCloud disinkronkan dan beberapa pengaturan mungkin memerlukan pengaktifan ulang aplikasi agar dapat diterapkan.",
"ignoreCert": "Abaikan sertifikat",
"image": "Gambar", "image": "Gambar",
"imagesList": "Daftar gambar", "imagesList": "Daftar gambar",
"import": "Impor", "import": "Impor",
@@ -198,6 +199,7 @@
"privateKey": "Kunci Pribadi", "privateKey": "Kunci Pribadi",
"process": "Proses", "process": "Proses",
"pushToken": "Dorong token", "pushToken": "Dorong token",
"pveIgnoreCertTip": "Tidak disarankan untuk diaktifkan, waspadai risiko keamanan! Jika Anda menggunakan sertifikat default dari PVE, Anda perlu mengaktifkan opsi ini.",
"pveLoginFailed": "Login gagal. Tidak dapat mengautentikasi dengan nama pengguna/kata sandi dari konfigurasi server untuk login Linux PAM.", "pveLoginFailed": "Login gagal. Tidak dapat mengautentikasi dengan nama pengguna/kata sandi dari konfigurasi server untuk login Linux PAM.",
"pveVersionLow": "Fitur ini saat ini sedang dalam tahap pengujian dan hanya diuji pada PVE 8+. Gunakan dengan hati-hati.", "pveVersionLow": "Fitur ini saat ini sedang dalam tahap pengujian dan hanya diuji pada PVE 8+. Gunakan dengan hati-hati.",
"pwd": "Kata sandi", "pwd": "Kata sandi",

View File

@@ -115,6 +115,7 @@
"hour": "時間", "hour": "時間",
"httpFailedWithCode": "リクエスト失敗、ステータスコード: {code}", "httpFailedWithCode": "リクエスト失敗、ステータスコード: {code}",
"icloudSynced": "iCloudが同期されました。一部の設定はアプリを再起動する必要があります。", "icloudSynced": "iCloudが同期されました。一部の設定はアプリを再起動する必要があります。",
"ignoreCert": "証明書を無視する",
"image": "イメージ", "image": "イメージ",
"imagesList": "イメージリスト", "imagesList": "イメージリスト",
"import": "インポート", "import": "インポート",
@@ -198,6 +199,7 @@
"privateKey": "プライベートキー", "privateKey": "プライベートキー",
"process": "プロセス", "process": "プロセス",
"pushToken": "プッシュトークン", "pushToken": "プッシュトークン",
"pveIgnoreCertTip": "オプションを有効にすることは推奨されません、セキュリティリスクに注意してくださいPVEのデフォルト証明書を使用している場合は、このオプションを有効にする必要があります。",
"pveLoginFailed": "ログインに失敗しました。Linux PAMログインのためにサーバー構成からのユーザー名/パスワードで認証できません。", "pveLoginFailed": "ログインに失敗しました。Linux PAMログインのためにサーバー構成からのユーザー名/パスワードで認証できません。",
"pveVersionLow": "この機能は現在テスト段階にあり、PVE 8+でのみテストされています。ご利用の際は慎重に。", "pveVersionLow": "この機能は現在テスト段階にあり、PVE 8+でのみテストされています。ご利用の際は慎重に。",
"pwd": "パスワード", "pwd": "パスワード",

View File

@@ -115,6 +115,7 @@
"hour": "Hora", "hour": "Hora",
"httpFailedWithCode": "Falha na solicitação, código de status: {code}", "httpFailedWithCode": "Falha na solicitação, código de status: {code}",
"icloudSynced": "iCloud sincronizado, algumas configurações podem precisar de reinicialização do app para serem aplicadas.", "icloudSynced": "iCloud sincronizado, algumas configurações podem precisar de reinicialização do app para serem aplicadas.",
"ignoreCert": "Ignorar certificado",
"image": "Imagem", "image": "Imagem",
"imagesList": "Lista de imagens", "imagesList": "Lista de imagens",
"import": "Importar", "import": "Importar",
@@ -198,6 +199,7 @@
"privateKey": "Chave privada", "privateKey": "Chave privada",
"process": "Processo", "process": "Processo",
"pushToken": "Token de notificação push", "pushToken": "Token de notificação push",
"pveIgnoreCertTip": "Não recomendado para ativar, cuidado com os riscos de segurança! Se estiver usando o certificado padrão do PVE, você precisa habilitar esta opção.",
"pveLoginFailed": "Falha no login. Não é possível autenticar com o nome de usuário/senha da configuração do servidor para login no Linux PAM.", "pveLoginFailed": "Falha no login. Não é possível autenticar com o nome de usuário/senha da configuração do servidor para login no Linux PAM.",
"pveVersionLow": "Esta funcionalidade está atualmente em fase de teste e foi testada apenas no PVE 8+. Por favor, use com cautela.", "pveVersionLow": "Esta funcionalidade está atualmente em fase de teste e foi testada apenas no PVE 8+. Por favor, use com cautela.",
"pwd": "Senha", "pwd": "Senha",

View File

@@ -115,6 +115,7 @@
"hour": "Час", "hour": "Час",
"httpFailedWithCode": "Ошибка запроса, код: {code}", "httpFailedWithCode": "Ошибка запроса, код: {code}",
"icloudSynced": "Синхронизация с iCloud выполнена, некоторые настройки могут потребовать перезапуска приложения для вступления в силу.", "icloudSynced": "Синхронизация с iCloud выполнена, некоторые настройки могут потребовать перезапуска приложения для вступления в силу.",
"ignoreCert": "Игнорировать сертификат",
"image": "образ", "image": "образ",
"imagesList": "список образов", "imagesList": "список образов",
"import": "импорт", "import": "импорт",
@@ -198,6 +199,7 @@
"privateKey": "приватный ключ", "privateKey": "приватный ключ",
"process": "процесс", "process": "процесс",
"pushToken": "токен уведомлений", "pushToken": "токен уведомлений",
"pveIgnoreCertTip": "Не рекомендуется включать, обратите внимание на риски безопасности! Если вы используете стандартный сертификат от PVE, вам нужно включить эту опцию.",
"pveLoginFailed": "Ошибка входа. Невозможно аутентифицироваться с помощью имени пользователя/пароля из конфигурации сервера для входа в Linux PAM.", "pveLoginFailed": "Ошибка входа. Невозможно аутентифицироваться с помощью имени пользователя/пароля из конфигурации сервера для входа в Linux PAM.",
"pveVersionLow": "Эта функция в настоящее время находится на стадии тестирования и была протестирована только на PVE 8+. Используйте ее с осторожностью.", "pveVersionLow": "Эта функция в настоящее время находится на стадии тестирования и была протестирована только на PVE 8+. Используйте ее с осторожностью.",
"pwd": "пароль", "pwd": "пароль",

View File

@@ -115,6 +115,7 @@
"hour": "小时", "hour": "小时",
"httpFailedWithCode": "请求失败, 状态码: {code}", "httpFailedWithCode": "请求失败, 状态码: {code}",
"icloudSynced": "iCloud已同步某些设置可能需要重启才能生效。", "icloudSynced": "iCloud已同步某些设置可能需要重启才能生效。",
"ignoreCert": "忽略证书",
"image": "镜像", "image": "镜像",
"imagesList": "镜像列表", "imagesList": "镜像列表",
"import": "导入", "import": "导入",
@@ -198,6 +199,7 @@
"privateKey": "私钥", "privateKey": "私钥",
"process": "进程", "process": "进程",
"pushToken": "消息推送 Token", "pushToken": "消息推送 Token",
"pveIgnoreCertTip": "不推荐开启注意安全隐患如果你使用的PVE默认证书需要开启该选项",
"pveLoginFailed": "登录失败。无法使用服务器配置内的用户/密码以Linux PAM方式登录。", "pveLoginFailed": "登录失败。无法使用服务器配置内的用户/密码以Linux PAM方式登录。",
"pveVersionLow": "当前该功能处于测试阶段仅在PVE 8+上测试过,请谨慎使用", "pveVersionLow": "当前该功能处于测试阶段仅在PVE 8+上测试过,请谨慎使用",
"pwd": "密码", "pwd": "密码",

View File

@@ -115,6 +115,7 @@
"hour": "小時", "hour": "小時",
"httpFailedWithCode": "請求失敗, 狀態碼: {code}", "httpFailedWithCode": "請求失敗, 狀態碼: {code}",
"icloudSynced": "iCloud已同步某些設置可能需要重啟才能生效。", "icloudSynced": "iCloud已同步某些設置可能需要重啟才能生效。",
"ignoreCert": "忽略證書",
"image": "鏡像", "image": "鏡像",
"imagesList": "鏡像列表", "imagesList": "鏡像列表",
"import": "導入", "import": "導入",
@@ -198,6 +199,7 @@
"privateKey": "私鑰", "privateKey": "私鑰",
"process": "進程", "process": "進程",
"pushToken": "消息推送 Token", "pushToken": "消息推送 Token",
"pveIgnoreCertTip": "不建議啟用,請注意安全風險!如果您使用的是 PVE 的默認證書,則需要啟用此選項。",
"pveLoginFailed": "登錄失敗。無法使用伺服器配置中的使用者名稱/密碼以Linux PAM方式登錄。", "pveLoginFailed": "登錄失敗。無法使用伺服器配置中的使用者名稱/密碼以Linux PAM方式登錄。",
"pveVersionLow": "此功能目前處於測試階段僅在PVE 8+上進行過測試。請謹慎使用。", "pveVersionLow": "此功能目前處於測試階段僅在PVE 8+上進行過測試。請謹慎使用。",
"pwd": "密碼", "pwd": "密碼",

View File

@@ -4,6 +4,7 @@ import 'package:toolbox/core/extension/context/common.dart';
import 'package:toolbox/core/extension/context/dialog.dart'; import 'package:toolbox/core/extension/context/dialog.dart';
import 'package:toolbox/core/extension/context/locale.dart'; import 'package:toolbox/core/extension/context/locale.dart';
import 'package:toolbox/core/extension/context/snackbar.dart'; import 'package:toolbox/core/extension/context/snackbar.dart';
import 'package:toolbox/core/extension/widget.dart';
import 'package:toolbox/data/model/app/shell_func.dart'; import 'package:toolbox/data/model/app/shell_func.dart';
import 'package:toolbox/data/model/server/custom.dart'; import 'package:toolbox/data/model/server/custom.dart';
import 'package:toolbox/data/res/provider.dart'; import 'package:toolbox/data/res/provider.dart';
@@ -48,6 +49,7 @@ class _ServerEditPageState extends State<ServerEditPage> {
final _keyIdx = ValueNotifier<int?>(null); final _keyIdx = ValueNotifier<int?>(null);
final _autoConnect = ValueNotifier(true); final _autoConnect = ValueNotifier(true);
final _jumpServer = ValueNotifier<String?>(null); final _jumpServer = ValueNotifier<String?>(null);
final _pveIgnoreCert = ValueNotifier(false);
var _tags = <String>[]; var _tags = <String>[];
@@ -336,14 +338,30 @@ class _ServerEditPageState extends State<ServerEditPage> {
} }
Widget _buildPVE() { Widget _buildPVE() {
return ExpandTile(title: const Text('PVE'), children: [ return ExpandTile(
Input( title: const Text('PVE'),
controller: _pveAddrCtrl, children: [
type: TextInputType.url, Input(
label: l10n.addr, controller: _pveAddrCtrl,
hint: 'https://example.com:8006', type: TextInputType.url,
), label: l10n.addr,
]); hint: 'https://example.com:8006',
),
ListTile(
title: Text(l10n.ignoreCert),
subtitle: Text(l10n.pveIgnoreCertTip, style: UIs.text12Grey),
trailing: ListenableBuilder(
listenable: _pveIgnoreCert,
builder: (_, __) => Switch(
value: _pveIgnoreCert.value,
onChanged: (val) {
_pveIgnoreCert.value = val;
},
),
),
).card,
],
);
} }
Widget _buildFAB() { Widget _buildFAB() {

View File

@@ -471,7 +471,7 @@
CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic; CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES; COMBINE_HIDPI_IMAGES = YES;
CURRENT_PROJECT_VERSION = 822; CURRENT_PROJECT_VERSION = 824;
DEVELOPMENT_TEAM = BA88US33G6; DEVELOPMENT_TEAM = BA88US33G6;
INFOPLIST_FILE = Runner/Info.plist; INFOPLIST_FILE = Runner/Info.plist;
INFOPLIST_KEY_CFBundleDisplayName = "Server Box"; INFOPLIST_KEY_CFBundleDisplayName = "Server Box";
@@ -481,7 +481,7 @@
"@executable_path/../Frameworks", "@executable_path/../Frameworks",
); );
MACOSX_DEPLOYMENT_TARGET = 10.15; MACOSX_DEPLOYMENT_TARGET = 10.15;
MARKETING_VERSION = 1.0.822; MARKETING_VERSION = 1.0.824;
PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox;
PRODUCT_NAME = "Server Box"; PRODUCT_NAME = "Server Box";
PROVISIONING_PROFILE_SPECIFIER = ""; PROVISIONING_PROFILE_SPECIFIER = "";
@@ -608,7 +608,7 @@
CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic; CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES; COMBINE_HIDPI_IMAGES = YES;
CURRENT_PROJECT_VERSION = 822; CURRENT_PROJECT_VERSION = 824;
DEVELOPMENT_TEAM = BA88US33G6; DEVELOPMENT_TEAM = BA88US33G6;
INFOPLIST_FILE = Runner/Info.plist; INFOPLIST_FILE = Runner/Info.plist;
INFOPLIST_KEY_CFBundleDisplayName = "Server Box"; INFOPLIST_KEY_CFBundleDisplayName = "Server Box";
@@ -618,7 +618,7 @@
"@executable_path/../Frameworks", "@executable_path/../Frameworks",
); );
MACOSX_DEPLOYMENT_TARGET = 10.15; MACOSX_DEPLOYMENT_TARGET = 10.15;
MARKETING_VERSION = 1.0.822; MARKETING_VERSION = 1.0.824;
PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox;
PRODUCT_NAME = "Server Box"; PRODUCT_NAME = "Server Box";
PROVISIONING_PROFILE_SPECIFIER = ""; PROVISIONING_PROFILE_SPECIFIER = "";
@@ -638,7 +638,7 @@
"CODE_SIGN_IDENTITY[sdk=macosx*]" = "3rd Party Mac Developer Application"; "CODE_SIGN_IDENTITY[sdk=macosx*]" = "3rd Party Mac Developer Application";
CODE_SIGN_STYLE = Manual; CODE_SIGN_STYLE = Manual;
COMBINE_HIDPI_IMAGES = YES; COMBINE_HIDPI_IMAGES = YES;
CURRENT_PROJECT_VERSION = 822; CURRENT_PROJECT_VERSION = 824;
DEVELOPMENT_TEAM = ""; DEVELOPMENT_TEAM = "";
"DEVELOPMENT_TEAM[sdk=macosx*]" = BA88US33G6; "DEVELOPMENT_TEAM[sdk=macosx*]" = BA88US33G6;
INFOPLIST_FILE = Runner/Info.plist; INFOPLIST_FILE = Runner/Info.plist;
@@ -649,7 +649,7 @@
"@executable_path/../Frameworks", "@executable_path/../Frameworks",
); );
MACOSX_DEPLOYMENT_TARGET = 10.15; MACOSX_DEPLOYMENT_TARGET = 10.15;
MARKETING_VERSION = 1.0.822; MARKETING_VERSION = 1.0.824;
PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox;
PRODUCT_NAME = "Server Box"; PRODUCT_NAME = "Server Box";
PROVISIONING_PROFILE_SPECIFIER = ""; PROVISIONING_PROFILE_SPECIFIER = "";