Initial commit
Dieser Commit ist enthalten in:
74
.cleanup-backup/reset-admin.js
Normale Datei
74
.cleanup-backup/reset-admin.js
Normale Datei
@ -0,0 +1,74 @@
|
||||
const Database = require('better-sqlite3');
|
||||
const bcrypt = require('bcrypt');
|
||||
const CryptoJS = require('crypto-js');
|
||||
const path = require('path');
|
||||
|
||||
// Get encryption key from environment
|
||||
const FIELD_ENCRYPTION_KEY = process.env.FIELD_ENCRYPTION_KEY || 'dev_field_key_change_in_production_32chars_min!';
|
||||
|
||||
// Encryption function
|
||||
function encrypt(text) {
|
||||
if (!text) return null;
|
||||
try {
|
||||
return CryptoJS.AES.encrypt(text, FIELD_ENCRYPTION_KEY).toString();
|
||||
} catch (error) {
|
||||
console.error('Encryption error:', error);
|
||||
return text;
|
||||
}
|
||||
}
|
||||
|
||||
async function resetAdmin() {
|
||||
const dbPath = path.join(__dirname, 'skillmate.dev.db');
|
||||
console.log(`Opening database at: ${dbPath}`);
|
||||
const db = new Database(dbPath);
|
||||
|
||||
try {
|
||||
console.log('\n=== Resetting Admin User ===\n');
|
||||
|
||||
// Check if admin exists
|
||||
const existingAdmin = db.prepare('SELECT * FROM users WHERE username = ?').get('admin');
|
||||
|
||||
const password = 'admin123';
|
||||
const hashedPassword = await bcrypt.hash(password, 10);
|
||||
const encryptedEmail = encrypt('admin@skillmate.local');
|
||||
|
||||
if (existingAdmin) {
|
||||
console.log('Admin user exists, updating...');
|
||||
db.prepare(`
|
||||
UPDATE users
|
||||
SET password = ?, email = ?, role = 'admin', is_active = 1, updated_at = ?
|
||||
WHERE username = 'admin'
|
||||
`).run(hashedPassword, encryptedEmail, new Date().toISOString());
|
||||
} else {
|
||||
console.log('Creating new admin user...');
|
||||
const adminId = 'admin-' + Date.now();
|
||||
db.prepare(`
|
||||
INSERT INTO users (id, username, email, password, role, is_active, created_at, updated_at)
|
||||
VALUES (?, ?, ?, ?, ?, ?, ?, ?)
|
||||
`).run(
|
||||
adminId,
|
||||
'admin',
|
||||
encryptedEmail,
|
||||
hashedPassword,
|
||||
'admin',
|
||||
1,
|
||||
new Date().toISOString(),
|
||||
new Date().toISOString()
|
||||
);
|
||||
}
|
||||
|
||||
console.log('\n✓ Admin user reset successfully!');
|
||||
console.log('Username: admin');
|
||||
console.log('Password: admin123');
|
||||
console.log('Email: admin@skillmate.local');
|
||||
|
||||
} catch (error) {
|
||||
console.error('Error resetting admin:', error);
|
||||
process.exit(1);
|
||||
} finally {
|
||||
db.close();
|
||||
}
|
||||
}
|
||||
|
||||
// Run the reset
|
||||
resetAdmin();
|
||||
In neuem Issue referenzieren
Einen Benutzer sperren