48 lines
908 B
JavaScript
48 lines
908 B
JavaScript
import prisma from "../prisma/client.js";
|
|
import { hashPassword } from "./password.js";
|
|
async function main() {
|
|
const username = process.argv[2];
|
|
const password = process.argv[3];
|
|
const role = process.argv[4] || "admin";
|
|
|
|
if (!username || !password) {
|
|
console.log(
|
|
"Usage: node scripts/createUser.js <username> <password> [role]",
|
|
);
|
|
process.exit(1);
|
|
}
|
|
|
|
const existingUser = await prisma.user.findUnique({
|
|
where: { username },
|
|
});
|
|
|
|
if (existingUser) {
|
|
console.log("User already exists");
|
|
process.exit(1);
|
|
}
|
|
|
|
const hashedPassword = await hashPassword(password);
|
|
|
|
const user = await prisma.user.create({
|
|
data: {
|
|
username,
|
|
password: hashedPassword,
|
|
role,
|
|
},
|
|
});
|
|
|
|
console.log("User created:", {
|
|
id: user.id,
|
|
username: user.username,
|
|
role: user.role,
|
|
});
|
|
}
|
|
|
|
main()
|
|
.catch((e) => {
|
|
console.error(e);
|
|
})
|
|
.finally(async () => {
|
|
await prisma.$disconnect();
|
|
});
|