SONUM v7 - Évolution v6 (éditeurs/blocs CRUD, tableau de bord stats) + vue liste alternance couleurs
This commit is contained in:
73
scripts/set-local-password.mjs
Normal file
73
scripts/set-local-password.mjs
Normal file
@@ -0,0 +1,73 @@
|
||||
import { drizzle } from "drizzle-orm/mysql2";
|
||||
import mysql from "mysql2/promise";
|
||||
import bcrypt from "bcryptjs";
|
||||
import { eq } from "drizzle-orm";
|
||||
import * as schema from "../drizzle/schema.ts";
|
||||
import dotenv from "dotenv";
|
||||
|
||||
dotenv.config();
|
||||
|
||||
const { users, localCredentials } = schema;
|
||||
|
||||
// ─── Paramètres ───────────────────────────────────────────────────────────────
|
||||
const TARGET_EMAIL = "o.pareige@itinova.org";
|
||||
const NEW_PASSWORD = "Itinova69!";
|
||||
// ─────────────────────────────────────────────────────────────────────────────
|
||||
|
||||
async function main() {
|
||||
if (!process.env.DATABASE_URL) {
|
||||
console.error("DATABASE_URL manquant");
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
const connection = await mysql.createConnection(process.env.DATABASE_URL);
|
||||
const db = drizzle(connection);
|
||||
|
||||
// Trouver l'utilisateur par email
|
||||
const result = await db
|
||||
.select()
|
||||
.from(users)
|
||||
.where(eq(users.email, TARGET_EMAIL))
|
||||
.limit(1);
|
||||
|
||||
if (!result.length) {
|
||||
console.error(`Aucun utilisateur trouvé avec l'email : ${TARGET_EMAIL}`);
|
||||
await connection.end();
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
const user = result[0];
|
||||
console.log(`Utilisateur trouvé : ${user.name} (id=${user.id}, rôle=${user.sonumRole})`);
|
||||
|
||||
// Hasher le mot de passe
|
||||
const passwordHash = await bcrypt.hash(NEW_PASSWORD, 12);
|
||||
|
||||
// Insérer ou mettre à jour les credentials locaux
|
||||
const existingCreds = await db
|
||||
.select()
|
||||
.from(localCredentials)
|
||||
.where(eq(localCredentials.userId, user.id))
|
||||
.limit(1);
|
||||
|
||||
if (existingCreds.length > 0) {
|
||||
await db
|
||||
.update(localCredentials)
|
||||
.set({ passwordHash, updatedAt: new Date() })
|
||||
.where(eq(localCredentials.userId, user.id));
|
||||
console.log("Mot de passe mis à jour.");
|
||||
} else {
|
||||
await db.insert(localCredentials).values({ userId: user.id, passwordHash });
|
||||
console.log("Credentials locaux créés.");
|
||||
}
|
||||
|
||||
console.log(`\n✅ Connexion locale activée pour ${TARGET_EMAIL}`);
|
||||
console.log(` Login : ${TARGET_EMAIL}`);
|
||||
console.log(` Rôle : ${user.sonumRole}`);
|
||||
|
||||
await connection.end();
|
||||
}
|
||||
|
||||
main().catch((err) => {
|
||||
console.error("Erreur :", err);
|
||||
process.exit(1);
|
||||
});
|
||||
Reference in New Issue
Block a user