From 32da0c82838b1d3e7ce97a2595021e6167630277 Mon Sep 17 00:00:00 2001 From: lollipopkit Date: Thu, 21 Mar 2024 01:06:49 -0600 Subject: [PATCH] opt.: pve err --- lib/data/model/app/error.dart | 16 ++++++++++++++++ lib/data/provider/pve.dart | 16 ++++++++++++---- lib/l10n/app_de.arb | 1 + lib/l10n/app_en.arb | 1 + lib/l10n/app_es.arb | 1 + lib/l10n/app_fr.arb | 1 + lib/l10n/app_id.arb | 1 + lib/l10n/app_ja.arb | 1 + lib/l10n/app_pt.arb | 1 + lib/l10n/app_ru.arb | 1 + lib/l10n/app_zh.arb | 1 + lib/l10n/app_zh_tw.arb | 1 + 12 files changed, 38 insertions(+), 4 deletions(-) diff --git a/lib/data/model/app/error.dart b/lib/data/model/app/error.dart index 1b139ccb..f2d56e96 100644 --- a/lib/data/model/app/error.dart +++ b/lib/data/model/app/error.dart @@ -84,3 +84,19 @@ class WebdavErr extends Err { return 'WebdavErr<$type>: $message'; } } + +enum PveErrType { + unknown, + net, + loginFailed, + ; +} + +class PveErr extends Err { + PveErr({required super.type, super.message}) : super(from: ErrFrom.status); + + @override + String toString() { + return 'PveErr<$type>: $message'; + } +} diff --git a/lib/data/provider/pve.dart b/lib/data/provider/pve.dart index c7983406..d26ff6b3 100644 --- a/lib/data/provider/pve.dart +++ b/lib/data/provider/pve.dart @@ -3,6 +3,8 @@ import 'dart:async'; import 'package:computer/computer.dart'; import 'package:dio/dio.dart'; import 'package:flutter/material.dart'; +import 'package:toolbox/core/extension/context/locale.dart'; +import 'package:toolbox/data/model/app/error.dart'; import 'package:toolbox/data/model/server/pve.dart'; import 'package:toolbox/data/model/server/server_private_info.dart'; import 'package:toolbox/data/res/logger.dart'; @@ -45,6 +47,8 @@ final class PveProvider extends ChangeNotifier { //await _forward(); await _login(); await _release; + } on PveErr { + err.value = l10n.pveLoginFailed; } catch (e) { Loggers.app.warning('PVE init failed', e); err.value = e.toString(); @@ -80,10 +84,14 @@ final class PveProvider extends ChangeNotifier { 'realm': 'pam', 'new-format': '1' }); - final ticket = resp.data['data']['ticket']; - session.options.headers['CSRFPreventionToken'] = - resp.data['data']['CSRFPreventionToken']; - session.options.headers['Cookie'] = 'PVEAuthCookie=$ticket'; + try { + final ticket = resp.data['data']['ticket']; + session.options.headers['CSRFPreventionToken'] = + resp.data['data']['CSRFPreventionToken']; + session.options.headers['Cookie'] = 'PVEAuthCookie=$ticket'; + } catch (e) { + throw PveErr(type: PveErrType.loginFailed, message: e.toString()); + } } /// Returns true if the PVE version is 8.0 or later diff --git a/lib/l10n/app_de.arb b/lib/l10n/app_de.arb index 440cb10b..1e79c80a 100644 --- a/lib/l10n/app_de.arb +++ b/lib/l10n/app_de.arb @@ -198,6 +198,7 @@ "privateKey": "Private Key", "process": "Prozess", "pushToken": "Push Token", + "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.", "pwd": "Passwort", "read": "Lesen", diff --git a/lib/l10n/app_en.arb b/lib/l10n/app_en.arb index 3b7690d9..b8352a2d 100644 --- a/lib/l10n/app_en.arb +++ b/lib/l10n/app_en.arb @@ -198,6 +198,7 @@ "privateKey": "Private Key", "process": "Process", "pushToken": "Push token", + "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.", "pwd": "Password", "read": "Read", diff --git a/lib/l10n/app_es.arb b/lib/l10n/app_es.arb index 48808f55..b22f678b 100644 --- a/lib/l10n/app_es.arb +++ b/lib/l10n/app_es.arb @@ -198,6 +198,7 @@ "privateKey": "Llave privada", "process": "Proceso", "pushToken": "Token de notificaciones", + "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.", "pwd": "Contraseña", "read": "Leer", diff --git a/lib/l10n/app_fr.arb b/lib/l10n/app_fr.arb index 80f5b1c3..0603df6f 100644 --- a/lib/l10n/app_fr.arb +++ b/lib/l10n/app_fr.arb @@ -198,6 +198,7 @@ "privateKey": "Clé privée", "process": "Processus", "pushToken": "Jeton d'identification", + "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.", "pwd": "Mot de passe", "read": "Lire", diff --git a/lib/l10n/app_id.arb b/lib/l10n/app_id.arb index 4dd942bd..fe45fdec 100644 --- a/lib/l10n/app_id.arb +++ b/lib/l10n/app_id.arb @@ -198,6 +198,7 @@ "privateKey": "Kunci Pribadi", "process": "Proses", "pushToken": "Dorong token", + "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.", "pwd": "Kata sandi", "read": "Baca", diff --git a/lib/l10n/app_ja.arb b/lib/l10n/app_ja.arb index 596056e6..7b36c885 100644 --- a/lib/l10n/app_ja.arb +++ b/lib/l10n/app_ja.arb @@ -198,6 +198,7 @@ "privateKey": "プライベートキー", "process": "プロセス", "pushToken": "プッシュトークン", + "pveLoginFailed": "ログインに失敗しました。Linux PAMログインのためにサーバー構成からのユーザー名/パスワードで認証できません。", "pveVersionLow": "この機能は現在テスト段階にあり、PVE 8+でのみテストされています。ご利用の際は慎重に。", "pwd": "パスワード", "read": "読み取り", diff --git a/lib/l10n/app_pt.arb b/lib/l10n/app_pt.arb index 64dc691e..c4856d94 100644 --- a/lib/l10n/app_pt.arb +++ b/lib/l10n/app_pt.arb @@ -198,6 +198,7 @@ "privateKey": "Chave privada", "process": "Processo", "pushToken": "Token de notificação push", + "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.", "pwd": "Senha", "read": "Leitura", diff --git a/lib/l10n/app_ru.arb b/lib/l10n/app_ru.arb index 8a330081..503c0d92 100644 --- a/lib/l10n/app_ru.arb +++ b/lib/l10n/app_ru.arb @@ -198,6 +198,7 @@ "privateKey": "приватный ключ", "process": "процесс", "pushToken": "токен уведомлений", + "pveLoginFailed": "Ошибка входа. Невозможно аутентифицироваться с помощью имени пользователя/пароля из конфигурации сервера для входа в Linux PAM.", "pveVersionLow": "Эта функция в настоящее время находится на стадии тестирования и была протестирована только на PVE 8+. Используйте ее с осторожностью.", "pwd": "пароль", "read": "чтение", diff --git a/lib/l10n/app_zh.arb b/lib/l10n/app_zh.arb index c0da4d77..77d99f3b 100644 --- a/lib/l10n/app_zh.arb +++ b/lib/l10n/app_zh.arb @@ -198,6 +198,7 @@ "privateKey": "私钥", "process": "进程", "pushToken": "消息推送 Token", + "pveLoginFailed": "登录失败。无法使用服务器配置内的用户/密码,以Linux PAM方式登录。", "pveVersionLow": "当前该功能处于测试阶段,仅在PVE 8+上测试过,请谨慎使用", "pwd": "密码", "read": "读", diff --git a/lib/l10n/app_zh_tw.arb b/lib/l10n/app_zh_tw.arb index 3d7dee96..7ec03e7a 100644 --- a/lib/l10n/app_zh_tw.arb +++ b/lib/l10n/app_zh_tw.arb @@ -198,6 +198,7 @@ "privateKey": "私鑰", "process": "進程", "pushToken": "消息推送 Token", + "pveLoginFailed": "登錄失敗。無法使用伺服器配置中的使用者名稱/密碼以Linux PAM方式登錄。", "pveVersionLow": "此功能目前處於測試階段,僅在PVE 8+上進行過測試。請謹慎使用。", "pwd": "密碼", "read": "读",