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.
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user