| 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(); |