46 lines
1.4 KiB
JavaScript
46 lines
1.4 KiB
JavaScript
const db = require('./db');
|
|
const crypto = require('crypto');
|
|
require('dotenv').config();
|
|
|
|
const ID = 'admin';
|
|
const PASSWORD = 'admin'; // Default password
|
|
const NAME = '시스템 관리자';
|
|
|
|
function hashPassword(password) {
|
|
return crypto.createHash('sha256').update(password).digest('hex');
|
|
}
|
|
|
|
async function createAdmin() {
|
|
console.log(`Creating/Updating admin user...`);
|
|
console.log(`ID: ${ID}`);
|
|
console.log(`Password: ${PASSWORD}`);
|
|
|
|
try {
|
|
const hashedPassword = hashPassword(PASSWORD);
|
|
|
|
// Check if exists
|
|
const [existing] = await db.query('SELECT * FROM users WHERE id = ?', [ID]);
|
|
|
|
if (existing.length > 0) {
|
|
console.log('User exists using UPDATE...');
|
|
await db.query('UPDATE users SET password = ?, name = ?, role = "admin" WHERE id = ?', [hashedPassword, NAME, ID]);
|
|
} else {
|
|
console.log('User does not exist. creating...');
|
|
await db.query(`
|
|
INSERT INTO users (id, password, name, role, department, position)
|
|
VALUES (?, ?, ?, 'admin', 'IT팀', '관리자')
|
|
`, [ID, hashedPassword, NAME]);
|
|
}
|
|
|
|
console.log('✅ Admin user setup complete.');
|
|
console.log(`You can now login with ID: '${ID}' and password: '${PASSWORD}'`);
|
|
process.exit(0);
|
|
|
|
} catch (error) {
|
|
console.error('❌ Failed to create admin:', error);
|
|
process.exit(1);
|
|
}
|
|
}
|
|
|
|
createAdmin();
|