87 Zeilen
2.7 KiB
JavaScript
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);
|
|
} |