Files
TaskMate/backend/query_users.js
2026-01-04 00:24:11 +00:00

87 Zeilen
2.7 KiB
JavaScript

#!/usr/bin/env node
/**
* Script zum Abfragen der Benutzer aus der SQLite-Datenbank
* Verwendung: node query_users.js
*/
const Database = require('better-sqlite3');
const path = require('path');
// Datenbank-Pfad - angepasst für Docker-Container
const DB_PATH = process.env.DB_PATH || './data/taskmate.db';
try {
console.log('Verbinde zur Datenbank:', DB_PATH);
// Datenbank öffnen
const db = new Database(DB_PATH);
// Alle Benutzer abfragen
const users = db.prepare(`
SELECT
id,
username,
display_name,
color,
role,
email,
repositories_base_path,
created_at,
last_login,
failed_attempts,
locked_until
FROM users
ORDER BY id
`).all();
console.log('\n=== BENUTZER IN DER DATENBANK ===\n');
if (users.length === 0) {
console.log('Keine Benutzer gefunden!');
} else {
users.forEach(user => {
console.log(`ID: ${user.id}`);
console.log(`Benutzername: ${user.username}`);
console.log(`Anzeigename: ${user.display_name}`);
console.log(`Farbe: ${user.color}`);
console.log(`Rolle: ${user.role || 'user'}`);
console.log(`E-Mail: ${user.email || 'nicht gesetzt'}`);
console.log(`Repository-Basispfad: ${user.repositories_base_path || 'nicht gesetzt'}`);
console.log(`Erstellt am: ${user.created_at}`);
console.log(`Letzter Login: ${user.last_login || 'noch nie'}`);
console.log(`Fehlgeschlagene Versuche: ${user.failed_attempts}`);
console.log(`Gesperrt bis: ${user.locked_until || 'nicht gesperrt'}`);
console.log('-----------------------------------');
});
console.log(`\nGesamt: ${users.length} Benutzer gefunden`);
}
// Prüfe auch Login-Audit für weitere Informationen
const recentAttempts = db.prepare(`
SELECT
la.timestamp,
la.ip_address,
la.success,
la.user_agent,
u.username
FROM login_audit la
LEFT JOIN users u ON la.user_id = u.id
ORDER BY la.timestamp DESC
LIMIT 10
`).all();
if (recentAttempts.length > 0) {
console.log('\n=== LETZTE LOGIN-VERSUCHE ===\n');
recentAttempts.forEach(attempt => {
console.log(`${attempt.timestamp}: ${attempt.username || 'Unbekannt'} - ${attempt.success ? 'ERFOLGREICH' : 'FEHLGESCHLAGEN'} - IP: ${attempt.ip_address}`);
});
}
// Datenbank schließen
db.close();
} catch (error) {
console.error('Fehler beim Abfragen der Datenbank:', error.message);
process.exit(1);
}