45 lines
1.1 KiB
JavaScript
45 lines
1.1 KiB
JavaScript
import mongoose from "mongoose";
|
|
import bcrypt from "bcryptjs";
|
|
import dotenv from "dotenv";
|
|
import Staff from "../models/Staff.model.js";
|
|
|
|
dotenv.config();
|
|
|
|
mongoose
|
|
.connect(process.env.MONGO_URI, {
|
|
useNewUrlParser: true,
|
|
useUnifiedTopology: true,
|
|
})
|
|
.then(() => console.log("✅ MongoDB Connected"))
|
|
.catch((err) => console.error("❌ MongoDB Connection Error:", err));
|
|
|
|
const createAdmin = async () => {
|
|
const username = "admin";
|
|
const password = "88sO)£2igu-:";
|
|
|
|
try {
|
|
const existingAdmin = await Staff.findOne({ username });
|
|
if (existingAdmin) {
|
|
console.log("⚠️ Admin user already exists.");
|
|
process.exit(1);
|
|
}
|
|
|
|
const hashedPassword = await bcrypt.hash(password, 10);
|
|
|
|
const admin = new Staff({
|
|
username,
|
|
passwordHash: hashedPassword,
|
|
role: "admin",
|
|
});
|
|
|
|
await admin.save();
|
|
console.log(`✅ Admin user '${username}' created successfully!`);
|
|
process.exit();
|
|
} catch (error) {
|
|
console.error("❌ Error creating admin user:", error);
|
|
process.exit(1);
|
|
}
|
|
};
|
|
|
|
createAdmin();
|