lomavuokraus/scripts/reset-admin-password.js
Tero Halla-aho 0bb709d9c5
Some checks failed
CI / checks (push) Has been cancelled
chore: fix audit alerts and formatting
2026-02-04 12:43:03 +02:00

50 lines
1.4 KiB
JavaScript

/* Reset admin password for thallaa@gmail.com to a known value.
Usage: node scripts/reset-admin-password.js
*/
const path = require("path");
require("dotenv").config({ path: path.join(__dirname, "..", ".env") });
const { PrismaClient, Role, UserStatus } = require("@prisma/client");
const { PrismaPg } = require("@prisma/adapter-pg");
const { Pool } = require("pg");
const bcrypt = require("bcryptjs");
async function main() {
const email = process.env.ADMIN_EMAIL || "thallaa@gmail.com";
const newPassword = process.env.ADMIN_INITIAL_PASSWORD;
if (!newPassword) throw new Error("ADMIN_INITIAL_PASSWORD not set in env");
if (!process.env.DATABASE_URL) throw new Error("DATABASE_URL not set");
const prisma = new PrismaClient({
adapter: new PrismaPg(
new Pool({ connectionString: process.env.DATABASE_URL }),
),
});
const hash = await bcrypt.hash(newPassword, 12);
const user = await prisma.user.upsert({
where: { email },
update: {
passwordHash: hash,
role: Role.ADMIN,
status: UserStatus.ACTIVE,
emailVerifiedAt: new Date(),
approvedAt: new Date(),
},
create: {
email,
passwordHash: hash,
role: Role.ADMIN,
status: UserStatus.ACTIVE,
emailVerifiedAt: new Date(),
approvedAt: new Date(),
},
});
console.log("Password reset for", user.email);
await prisma.$disconnect();
}
main().catch((err) => {
console.error(err);
process.exit(1);
});