mkcart / backend /createAdmin.js
Kumar
updated
c2efbe6
const mongoose = require('mongoose');
const Admin = require('./models/adminModel');
const dotenv = require('dotenv');
const path = require('path');
dotenv.config({ path: path.join(__dirname, '..', 'config', 'config.env') });
const createInitialAdmin = async () => {
try {
await mongoose.connect(process.env.DB_URL);
console.log('βœ… Connected to MongoDB');
const adminData = {
username: 'admin',
email: 'admin@mkcart.com',
password: 'Admin@123',
firstName: 'Super',
lastName: 'Admin',
role: 'super_admin',
permissions: {
users: {
view: true,
create: true,
edit: true,
delete: true
},
products: {
view: true,
create: true,
edit: true,
delete: true
},
orders: {
view: true,
edit: true,
delete: true
},
analytics: {
view: true,
export: true
},
settings: {
view: true,
edit: true
}
},
isActive: true
};
const existingAdmin = await Admin.findOne({
$or: [{ username: adminData.username }, { email: adminData.email }]
});
if (existingAdmin) {
console.log('⚠️ Admin user already exists');
console.log('Username:', existingAdmin.username);
console.log('Email:', existingAdmin.email);
console.log('Role:', existingAdmin.role);
return;
}
const admin = new Admin(adminData);
await admin.save();
console.log('βœ… Initial admin user created successfully!');
console.log('Username:', admin.username);
console.log('Email:', admin.email);
console.log('Password:', adminData.password);
console.log('Role:', admin.role);
console.log('\nπŸ” Please change the password after first login!');
} catch (error) {
console.error('❌ Error creating admin user:', error.message);
} finally {
await mongoose.disconnect();
console.log('πŸ”Œ Disconnected from MongoDB');
}
};
createInitialAdmin();