Checkpoint: v9c : Correction déploiement VPS - migration DB (colonnes login/firstName/lastName/isActive), correction JWT name vide, protection OAuth Invalid URL, seed-admin avec openId automatique

This commit is contained in:
Manus
2026-04-21 13:00:55 -04:00
parent 971449de41
commit 8c0c75fb17
7 changed files with 126 additions and 31 deletions

View File

@@ -4,22 +4,33 @@
*/
import mysql from 'mysql2/promise';
import bcrypt from 'bcrypt';
import { randomUUID } from 'crypto';
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");
const [rows] = await conn.execute("SELECT id, openId FROM users WHERE login = 'adminItinova' LIMIT 1");
if (rows.length > 0) {
console.log('Compte adminItinova déjà existant, seed ignoré.');
const existing = rows[0];
// Si openId est null, le corriger pour permettre la connexion JWT
if (!existing.openId) {
const openId = `local:adminItinova:${randomUUID()}`;
await conn.execute("UPDATE users SET openId = ? WHERE id = ?", [openId, existing.id]);
console.log(`Compte adminItinova : openId corrigé (id=${existing.id})`);
} else {
console.log('Compte adminItinova déjà existant, seed ignoré.');
}
await conn.end();
process.exit(0);
}
// Créer l'utilisateur adminItinova
// Créer l'utilisateur adminItinova avec un openId local unique
const openId = `local:adminItinova:${randomUUID()}`;
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']
`INSERT INTO users (login, email, firstName, lastName, name, openId, 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', openId]
);
const userId = result.insertId;
@@ -31,5 +42,5 @@ await conn.execute(
[userId, hash]
);
console.log(`Compte adminItinova créé avec succès (id=${userId})`);
console.log(`Compte adminItinova créé avec succès (id=${userId}, openId=${openId})`);
await conn.end();