opt.: pve err

This commit is contained in:
lollipopkit
2024-03-21 01:06:49 -06:00
parent e11d505409
commit 32da0c8283
12 changed files with 38 additions and 4 deletions

View File

@@ -84,3 +84,19 @@ class WebdavErr extends Err<WebdavErrType> {
return 'WebdavErr<$type>: $message';
}
}
enum PveErrType {
unknown,
net,
loginFailed,
;
}
class PveErr extends Err<PveErrType> {
PveErr({required super.type, super.message}) : super(from: ErrFrom.status);
@override
String toString() {
return 'PveErr<$type>: $message';
}
}

View File

@@ -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'
});
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

View File

@@ -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",

View File

@@ -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",

View File

@@ -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",

View File

@@ -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",

View File

@@ -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",

View File

@@ -198,6 +198,7 @@
"privateKey": "プライベートキー",
"process": "プロセス",
"pushToken": "プッシュトークン",
"pveLoginFailed": "ログインに失敗しました。Linux PAMログインのためにサーバー構成からのユーザー名/パスワードで認証できません。",
"pveVersionLow": "この機能は現在テスト段階にあり、PVE 8+でのみテストされています。ご利用の際は慎重に。",
"pwd": "パスワード",
"read": "読み取り",

View File

@@ -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",

View File

@@ -198,6 +198,7 @@
"privateKey": "приватный ключ",
"process": "процесс",
"pushToken": "токен уведомлений",
"pveLoginFailed": "Ошибка входа. Невозможно аутентифицироваться с помощью имени пользователя/пароля из конфигурации сервера для входа в Linux PAM.",
"pveVersionLow": "Эта функция в настоящее время находится на стадии тестирования и была протестирована только на PVE 8+. Используйте ее с осторожностью.",
"pwd": "пароль",
"read": "чтение",

View File

@@ -198,6 +198,7 @@
"privateKey": "私钥",
"process": "进程",
"pushToken": "消息推送 Token",
"pveLoginFailed": "登录失败。无法使用服务器配置内的用户/密码以Linux PAM方式登录。",
"pveVersionLow": "当前该功能处于测试阶段仅在PVE 8+上测试过,请谨慎使用",
"pwd": "密码",
"read": "读",

View File

@@ -198,6 +198,7 @@
"privateKey": "私鑰",
"process": "進程",
"pushToken": "消息推送 Token",
"pveLoginFailed": "登錄失敗。無法使用伺服器配置中的使用者名稱/密碼以Linux PAM方式登錄。",
"pveVersionLow": "此功能目前處於測試階段僅在PVE 8+上進行過測試。請謹慎使用。",
"pwd": "密碼",
"read": "读",