53 lines
1.6 KiB
JavaScript
53 lines
1.6 KiB
JavaScript
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);
|