Téléverser les fichiers vers "workstation-setup/src"

This commit is contained in:
2026-08-19 11:40:12 +02:00
parent 4c55001722
commit c7e98d14a4
3 changed files with 42 additions and 55 deletions
+30 -29
View File
@@ -106,7 +106,7 @@ QString ProvisioningBackend::passwordMarker() const
QString ProvisioningBackend::pinMarker() const
{
return stateDirectory() + QStringLiteral("/yubikey-pin-initialized");
return stateDirectory() + QStringLiteral("/yubikey-pin-created");
}
void ProvisioningBackend::refreshState()
@@ -290,9 +290,8 @@ void ProvisioningBackend::changePassword(const QString &currentPassword,
confirmation);
}
void ProvisioningBackend::changePin(const QString &currentPin,
const QString &newPin,
const QString &confirmation)
void ProvisioningBackend::initializePin(const QString &newPin,
const QString &confirmation)
{
if (!authorizedUser()) {
appendLog(QStringLiteral("PIN refused: unauthorized user"));
@@ -309,30 +308,29 @@ void ProvisioningBackend::changePin(const QString &currentPin,
if (!m_passwordDone) {
emit pinChangeFinished(false,
QStringLiteral("Le mot de passe doit être personnalisé avant le PIN YubiKey."));
QStringLiteral("Le mot de passe doit être personnalisé avant d'initialiser la YubiKey."));
return;
}
if (m_pinDone) {
emit pinChangeFinished(true,
QStringLiteral("Le PIN YubiKey a déjà été personnalisé."));
QStringLiteral("Le PIN FIDO2 de la YubiKey a déjà été initialisé."));
return;
}
if (currentPin.size() < 4 || newPin.size() < 4 || confirmation.size() < 4) {
if (newPin.size() < 4 || confirmation.size() < 4) {
emit pinChangeFinished(false,
QStringLiteral("Les PIN doivent contenir au moins 4 caractères."));
QStringLiteral("Le PIN doit contenir au moins 4 caractères."));
return;
}
if (newPin != confirmation) {
emit pinChangeFinished(false,
QStringLiteral("Les deux nouveaux PIN ne correspondent pas."));
QStringLiteral("Les deux PIN ne correspondent pas."));
return;
}
if (containsLineBreak(currentPin) || containsLineBreak(newPin)
|| containsLineBreak(confirmation)) {
if (containsLineBreak(newPin) || containsLineBreak(confirmation)) {
emit pinChangeFinished(false,
QStringLiteral("Le PIN contient un caractère non pris en charge."));
return;
@@ -345,11 +343,13 @@ void ProvisioningBackend::changePin(const QString &currentPin,
return;
}
// Le helper Étape 1 lit uniquement les deux premières lignes :
// nouveau PIN puis confirmation. Aucun ancien PIN n'est transmis.
startHelper(Operation::Pin,
QString::fromUtf8(NIXOS_WORKSTATIONS_PIN_HELPER_PATH),
currentPin,
newPin,
confirmation);
confirmation,
QString());
}
void ProvisioningBackend::startHelper(Operation operation,
@@ -495,8 +495,8 @@ void ProvisioningBackend::startHelper(Operation operation,
} else {
markerCreated = createMarker(pinMarker());
message = markerCreated
? QStringLiteral("Le PIN personnel de votre YubiKey est maintenant actif.")
: QStringLiteral("Le PIN a été modifié, mais l'état local n'a pas pu être enregistré. Contactez le service informatique avant de fermer la session.");
? QStringLiteral("Le PIN FIDO2 de votre YubiKey est maintenant initialisé.")
: QStringLiteral("Le PIN a été initialisé, mais l'état local n'a pas pu être enregistré. Contactez le service informatique avant de fermer la session.");
}
} else {
message = safeMessageForFailure(operation, exitCode, combinedOutput, timedOut);
@@ -580,36 +580,37 @@ QString ProvisioningBackend::safeMessageForFailure(Operation operation,
return QStringLiteral("Le mot de passe n'a pas été modifié. Vérifiez le mot de passe actuel puis réessayez.");
}
if (output.contains(QStringLiteral("pin_not_configured"))) {
return QStringLiteral("Aucun PIN FIDO2 actuel n'a été détecté sur la YubiKey. Contactez le service informatique pour initialiser la clé.");
if (output.contains(QStringLiteral("pin_already_configured"))) {
return QStringLiteral("Cette YubiKey possède déjà un PIN FIDO2. Pour l’étape 1, utilisez une clé vierge ou initialisée ; aucune tentative de PIN na été effectuée.");
}
if (output.contains(QStringLiteral("pin_auth_blocked"))) {
return QStringLiteral("Les tentatives de PIN sont temporairement bloquées. Débranchez puis rebranchez la YubiKey avant de réessayer avec le bon PIN.");
return QStringLiteral("Les opérations PIN sont temporairement bloquées. Débranchez puis rebranchez la YubiKey avant toute nouvelle opération.");
}
if (output.contains(QStringLiteral("pin_blocked"))) {
return QStringLiteral("Le PIN FIDO2 de la YubiKey est bloqué. Contactez le service informatique ; ne réinitialisez pas la clé.");
}
if (output.contains(QStringLiteral("wrong_pin"))) {
return QStringLiteral("Le PIN temporaire est incorrect. N'essayez pas au hasard : le nombre de tentatives FIDO2 est limité.");
return QStringLiteral("Le PIN FIDO2 de la YubiKey est bloqué. Cette clé nest pas vierge et ne peut pas être initialisée par l’étape 1.");
}
if (output.contains(QStringLiteral("multiple_yubikey"))) {
return QStringLiteral("Plusieurs clés FIDO2 sont détectées. Ne laissez branchée que la YubiKey à configurer puis réessayez.");
return QStringLiteral("Plusieurs clés FIDO2 sont détectées. Ne laissez branchée que la YubiKey à initialiser puis réessayez.");
}
if (output.contains(QStringLiteral("no_fido2"))) {
return QStringLiteral("La clé détectée ne fournit pas l'interface FIDO2 nécessaire au changement de PIN.");
return QStringLiteral("La clé détectée ne fournit pas linterface FIDO2 nécessaire.");
}
if (output.contains(QStringLiteral("no_yubikey"))) {
return QStringLiteral("Aucune YubiKey compatible n'a été détectée ou le système n'a pas les droits d'accès nécessaires.");
return QStringLiteral("Aucune YubiKey FIDO2 compatible na été détectée ou le système na pas les droits daccès nécessaires.");
}
if (output.contains(QStringLiteral("pin_policy"))) {
return QStringLiteral("Le nouveau PIN ne respecte pas la politique configurée sur cette YubiKey.");
return QStringLiteral("Le PIN choisi ne respecte pas la politique FIDO2 de cette YubiKey.");
}
if (output.contains(QStringLiteral("pin_state_not_updated"))
|| output.contains(QStringLiteral("pin_state_error"))) {
return QStringLiteral("La commande FIDO2 a été envoyée, mais l’état PIN retourné par la clé est incohérent. Ne réessayez pas avant vérification avec ykman fido info.");
}
if (output.contains(QStringLiteral("input_error"))) {
return QStringLiteral("Le composant de configuration de la YubiKey n'a pas reçu les données attendues.");
return QStringLiteral("Le composant dinitialisation de la YubiKey na pas reçu les données attendues.");
}
if (output.contains(QStringLiteral("pin_helper_error"))) {
return QStringLiteral("Le composant FIDO2 a rencontré une erreur interne sans modifier le PIN.");
return QStringLiteral("Le composant FIDO2 a rencontré une erreur interne sans pouvoir confirmer linitialisation du PIN.");
}
return QStringLiteral("Le PIN YubiKey n'a pas été modifié. Vérifiez que la clé est branchée et que le PIN actuel est correct.");
return QStringLiteral("Le PIN FIDO2 na pas pu être initialisé. Vérifiez que la YubiKey est vierge, connectée et compatible FIDO2.");
}