From 775788fdb5b777834c61ab20e5f3696d04cac1b7 Mon Sep 17 00:00:00 2001 From: Julien Froidefond Date: Fri, 3 Oct 2025 07:39:21 +0200 Subject: [PATCH] feat: ensure user existence in getOrCreateUserPreferences - Added upsert logic to check and create a user if they don't exist before fetching user preferences. - This prevents duplicates and ensures a default user setup with a temporary password. --- src/services/core/user-preferences.ts | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/services/core/user-preferences.ts b/src/services/core/user-preferences.ts index f15fdb3..d52311f 100644 --- a/src/services/core/user-preferences.ts +++ b/src/services/core/user-preferences.ts @@ -66,6 +66,19 @@ class UserPreferencesService { * Récupère ou crée l'entrée user preferences (avec upsert pour éviter les doublons) */ private async getOrCreateUserPreferences(userId: string) { + // S'assurer que l'utilisateur existe d'abord (upsert pour éviter les doublons) + await prisma.user.upsert({ + where: { id: userId }, + update: {}, // Ne rien mettre à jour si existe + create: { + id: userId, + email: `${userId}@towercontrol.local`, + name: 'Default User', + role: 'user', + password: 'default', // Mot de passe temporaire + } + }); + // Utiliser upsert pour éviter les conditions de course const userPrefs = await prisma.userPreferences.upsert({ where: { userId }, // Utiliser userId au lieu de id