File size: 2,087 Bytes
c2efbe6 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 | 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(); |