43 lines
1.5 KiB
TypeScript
43 lines
1.5 KiB
TypeScript
import 'dotenv/config';
|
|
import prisma from './lib/prisma';
|
|
import bcrypt from 'bcryptjs';
|
|
|
|
async function main() {
|
|
const users = await prisma.user.findMany();
|
|
console.log("Users in DB:", users.length);
|
|
for (const u of users) {
|
|
console.log(`- ID: ${u.id}, Username: ${u.username}`);
|
|
}
|
|
|
|
if (users.length > 0) {
|
|
// Force reset the password of the first user to what's in .env just in case
|
|
const username = process.env.ADMIN_USERNAME || "admin";
|
|
const password = process.env.ADMIN_PASSWORD || "secretpassword";
|
|
console.log(`Updating password for user ${username} to ${password}...`);
|
|
const hashedPassword = await bcrypt.hash(password, 10);
|
|
|
|
// Check if the exact user exists
|
|
const exactUser = await prisma.user.findUnique({ where: { username } });
|
|
if (exactUser) {
|
|
await prisma.user.update({
|
|
where: { username },
|
|
data: { password: hashedPassword }
|
|
});
|
|
console.log(`Password reset successfully for ${username}.`);
|
|
} else {
|
|
console.log(`No exact user found with username ${username}. Updating first user.`);
|
|
await prisma.user.update({
|
|
where: { id: users[0].id },
|
|
data: { username: username, password: hashedPassword }
|
|
});
|
|
console.log(`Updated first user to be ${username} with new password.`);
|
|
}
|
|
} else {
|
|
console.log("No users exist in DB. The auth code will create one automatically.");
|
|
}
|
|
}
|
|
|
|
main()
|
|
.catch(e => console.error(e))
|
|
.finally(() => prisma.$disconnect());
|