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)
|
* Récupère ou crée l'entrée user preferences (avec upsert pour éviter les doublons)
|
||||||
*/
|
*/
|
||||||
private async getOrCreateUserPreferences(userId: string) {
|
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
|
// Utiliser upsert pour éviter les conditions de course
|
||||||
const userPrefs = await prisma.userPreferences.upsert({
|
const userPrefs = await prisma.userPreferences.upsert({
|
||||||
where: { userId }, // Utiliser userId au lieu de id
|
where: { userId }, // Utiliser userId au lieu de id
|
||||||
|
|||||||
Reference in New Issue
Block a user