feat: add prerequisites verification in birthday-setup

**Motivations :**
- Chaque page doit vérifier ses prérequis en base pour éviter les erreurs
- La page birthday-setup s'arrêtait sans wallet en base
- Il faut s'assurer que le wallet et le PBKDF2 key existent avant de continuer

**Modifications :**
- Ajout de la vérification des prérequis dans birthday-setup.ts
- Vérification que le wallet existe en base de données
- Vérification que le PBKDF2 key existe pour au moins un mode de sécurité
- Ajout de messages d'erreur explicites si les prérequis ne sont pas remplis
- Amélioration de la vérification des prérequis dans wallet-setup.ts

**Pages affectées :**
- src/pages/birthday-setup/birthday-setup.ts (vérification des prérequis)
- src/pages/wallet-setup/wallet-setup.ts (amélioration de la vérification)
This commit is contained in:
NicolasCantu 2025-10-29 08:42:36 +01:00
parent 2ce11599e2
commit bb5f70a48f
3 changed files with 42 additions and 3 deletions

View File

@ -1,4 +1,4 @@
# Lecoffre # IHM_CLIENT
voir README.md voir README.md

View File

@ -32,6 +32,41 @@ document.addEventListener('DOMContentLoaded', async () => {
const services = await Services.getInstance(); const services = await Services.getInstance();
console.log('✅ Services instance obtained successfully'); console.log('✅ Services instance obtained successfully');
// Vérifier les prérequis en base de données
updateStatus('🔍 Vérification des prérequis...', 'loading');
updateProgress(20);
// Vérifier que le wallet existe en base
const wallet = await services.getDeviceFromDatabase();
if (!wallet) {
throw new Error('Wallet not found in database. Please complete wallet setup first.');
}
console.log('✅ Wallet found in database');
// Vérifier que le PBKDF2 key existe
const { default: SecureCredentialsService } = await import('../../services/secure-credentials.service');
const secureCredentials = new SecureCredentialsService();
let pbkdf2KeyFound = false;
const securityModes = ['none', 'password', 'os', 'proton-pass'];
for (const mode of securityModes) {
try {
const key = await secureCredentials.getPBKDF2Key(mode);
if (key) {
pbkdf2KeyFound = true;
console.log(`✅ PBKDF2 key found for security mode: ${mode}`);
break;
}
} catch (error) {
// Continue to next mode
}
}
if (!pbkdf2KeyFound) {
throw new Error('PBKDF2 key not found. Please complete security setup first.');
}
console.log('✅ All prerequisites verified');
// Connexion aux relais // Connexion aux relais
await services.connectAllRelays(); await services.connectAllRelays();
console.log('✅ Relays connected successfully'); console.log('✅ Relays connected successfully');
@ -45,7 +80,7 @@ document.addEventListener('DOMContentLoaded', async () => {
// Attendre que la hauteur de bloc soit définie avant de mettre à jour la date anniversaire // Attendre que la hauteur de bloc soit définie avant de mettre à jour la date anniversaire
updateStatus('⏳ Attente de la synchronisation avec le réseau...', 'loading'); updateStatus('⏳ Attente de la synchronisation avec le réseau...', 'loading');
// Attendre que la hauteur de bloc soit définie via le handshake // Attendre que la hauteur de bloc soit définie via le handshake
await new Promise<void>((resolve, reject) => { await new Promise<void>((resolve, reject) => {
const timeout = setTimeout(() => { const timeout = setTimeout(() => {
@ -75,7 +110,7 @@ document.addEventListener('DOMContentLoaded', async () => {
updateProgress(100); updateProgress(100);
console.log('🎉 Birthday setup completed successfully - redirecting to block sync'); console.log('🎉 Birthday setup completed successfully - redirecting to block sync');
// Rediriger vers la page de synchronisation des blocs // Rediriger vers la page de synchronisation des blocs
setTimeout(() => { setTimeout(() => {
window.location.href = '/src/pages/block-sync/block-sync.html'; window.location.href = '/src/pages/block-sync/block-sync.html';

View File

@ -109,6 +109,10 @@ document.addEventListener('DOMContentLoaded', async () => {
const { SecureCredentialsService } = await import('../../services/secure-credentials.service'); const { SecureCredentialsService } = await import('../../services/secure-credentials.service');
const secureCredentialsService = SecureCredentialsService.getInstance(); const secureCredentialsService = SecureCredentialsService.getInstance();
// Vérifier les prérequis en base de données
updateStatus('🔍 Vérification des prérequis...', 'loading');
updateProgress(20);
// Vérifier si des credentials existent déjà // Vérifier si des credentials existent déjà
// CRITICAL: wallet-setup ne doit PAS générer de credentials // CRITICAL: wallet-setup ne doit PAS générer de credentials
// Les credentials et clé PBKDF2 doivent être créés dans security-setup // Les credentials et clé PBKDF2 doivent être créés dans security-setup