36 lines
1.3 KiB
JavaScript
36 lines
1.3 KiB
JavaScript
/**
|
|
* Seed : crée le compte administrateur par défaut si inexistant.
|
|
* Login : adminItinova | Mot de passe : Itinova69!
|
|
*/
|
|
import mysql from 'mysql2/promise';
|
|
import bcrypt from 'bcrypt';
|
|
|
|
const conn = await mysql.createConnection(process.env.DATABASE_URL);
|
|
|
|
// Vérifier si adminItinova existe déjà
|
|
const [rows] = await conn.execute("SELECT id FROM users WHERE login = 'adminItinova' LIMIT 1");
|
|
if (rows.length > 0) {
|
|
console.log('Compte adminItinova déjà existant, seed ignoré.');
|
|
await conn.end();
|
|
process.exit(0);
|
|
}
|
|
|
|
// Créer l'utilisateur adminItinova
|
|
const [result] = await conn.execute(
|
|
`INSERT INTO users (login, email, firstName, lastName, name, role, sonumRole, isActive, loginMethod, cguAccepted, lastSignedIn, createdAt, updatedAt)
|
|
VALUES (?, ?, ?, ?, ?, 'admin', 'gestionnaire', 1, 'local', 1, NOW(), NOW(), NOW())`,
|
|
['adminItinova', 'adminItinova@santinova-soft.org', 'Admin', 'SONUM', 'Admin SONUM']
|
|
);
|
|
|
|
const userId = result.insertId;
|
|
|
|
// Hasher le mot de passe Itinova69!
|
|
const hash = await bcrypt.hash('Itinova69!', 10);
|
|
await conn.execute(
|
|
`INSERT INTO local_credentials (userId, passwordHash, createdAt, updatedAt) VALUES (?, ?, NOW(), NOW())`,
|
|
[userId, hash]
|
|
);
|
|
|
|
console.log(`Compte adminItinova créé avec succès (id=${userId})`);
|
|
await conn.end();
|