Checkpoint: Connexion locale avec identifiant libre (non-email), compte adminItinova créé, page Login mise à jour avec champ Identifiant

This commit is contained in:
Manus
2026-03-22 13:23:16 -04:00
parent cd11059a89
commit d8d2ef14da
4 changed files with 77 additions and 14 deletions

52
scripts/create-admin.mjs Normal file
View File

@@ -0,0 +1,52 @@
import { createConnection } from "mysql2/promise";
import bcrypt from "bcrypt";
import * as dotenv from "dotenv";
dotenv.config();
const DATABASE_URL = process.env.DATABASE_URL;
async function main() {
console.log("Connexion à la base de données...");
const connection = await createConnection(DATABASE_URL);
try {
// Hash du mot de passe
const passwordHash = await bcrypt.hash("Itinova69!", 10);
// Vérifier si l'utilisateur existe déjà
const [existing] = await connection.execute(
"SELECT id FROM users WHERE email = ?",
["adminItinova"]
);
if (existing.length > 0) {
// Mettre à jour le mot de passe si l'utilisateur existe déjà
await connection.execute(
"UPDATE users SET passwordHash = ?, role = 'admin', isActive = 1 WHERE email = ?",
[passwordHash, "adminItinova"]
);
console.log("✅ Compte adminItinova mis à jour avec succès");
} else {
// Créer l'utilisateur
await connection.execute(
"INSERT INTO users (openId, name, email, passwordHash, loginMethod, role, isActive) VALUES (NULL, 'Administrateur Itinova', 'adminItinova', ?, 'local', 'admin', 1)",
[passwordHash]
);
console.log("✅ Compte adminItinova créé avec succès");
}
// Vérification
const [user] = await connection.execute(
"SELECT id, name, email, role, isActive FROM users WHERE email = ?",
["adminItinova"]
);
console.log("Utilisateur créé :", user[0]);
} finally {
await connection.end();
}
}
main().catch(console.error);