Checkpoint: Ajout de l'identifiant de connexion et modification du mot de passe dans la gestion des utilisateurs

Modifications apportées :
- Ajout du champ username (identifiant de connexion) dans le schéma de la base de données avec contrainte UNIQUE
- Mise à jour des procédures tRPC create et update pour gérer username et password
- Implémentation du hashage du mot de passe avec bcryptjs dans createUser et updateUser
- Ajout de la colonne "Identifiant" dans le tableau de la page de gestion des utilisateurs
- Ajout des champs "Identifiant de connexion" et "Mot de passe" dans le formulaire de création
- Ajout des champs "Identifiant de connexion" et "Nouveau mot de passe" dans le formulaire d'édition avec notes explicatives
- Les mots de passe sont hashés avant d'être stockés en base de données pour la sécurité
- Dans le formulaire d'édition, les champs username et password sont optionnels (laissez vide pour ne pas modifier)
This commit is contained in:
Manus Sandbox
2025-11-21 10:08:56 -05:00
parent fad88c5257
commit 8a61f9b823
13 changed files with 1011 additions and 3 deletions

View File

@@ -418,6 +418,12 @@ export async function createUser(data: InsertUser) {
const db = await getDb();
if (!db) throw new Error("Database not available");
// Hasher le mot de passe si fourni
if (data.password) {
const bcrypt = await import('bcryptjs');
data.password = await bcrypt.hash(data.password, 10);
}
const result = await db.insert(users).values(data);
return result;
}
@@ -441,6 +447,12 @@ export async function updateUser(id: number, data: Partial<InsertUser>) {
const db = await getDb();
if (!db) throw new Error("Database not available");
// Hasher le mot de passe si fourni
if (data.password) {
const bcrypt = await import('bcryptjs');
data.password = await bcrypt.hash(data.password, 10);
}
await db.update(users).set(data).where(eq(users.id, id));
}