43 Zeilen
1.2 KiB
JavaScript
43 Zeilen
1.2 KiB
JavaScript
/**
|
|
* Password Fix Script
|
|
* Setzt die Passwort-Hashes für alle Benutzer zurück
|
|
*/
|
|
|
|
const bcrypt = require('bcrypt');
|
|
const Database = require('better-sqlite3');
|
|
const path = require('path');
|
|
|
|
async function fixPasswords() {
|
|
const db = new Database(path.join(__dirname, 'data/taskmate.db'));
|
|
|
|
console.log('Setze Passwort-Hashes zurück...');
|
|
|
|
// Standard-Passwörter
|
|
const passwords = {
|
|
'admin': 'admin123',
|
|
'hendrik_gebhardt@gmx.de': 'Hzfne313!fdEF34',
|
|
'momohomma@googlemail.com': 'Hzfne313!fdEF34'
|
|
};
|
|
|
|
for (const [username, password] of Object.entries(passwords)) {
|
|
const hash = await bcrypt.hash(password, 12);
|
|
|
|
// Update basierend auf E-Mail oder Username
|
|
const result = db.prepare(`
|
|
UPDATE users
|
|
SET password_hash = ?, failed_attempts = 0, locked_until = NULL
|
|
WHERE email = ? OR username = ?
|
|
`).run(hash, username, username);
|
|
|
|
if (result.changes > 0) {
|
|
console.log(`✅ Passwort für ${username} aktualisiert`);
|
|
} else {
|
|
console.log(`❌ Benutzer ${username} nicht gefunden`);
|
|
}
|
|
}
|
|
|
|
db.close();
|
|
console.log('Passwort-Fix abgeschlossen!');
|
|
}
|
|
|
|
fixPasswords().catch(console.error); |