<?php
require 'check_login.php';
require 'db_connect.php';
// Endast admin får komma hit
if ($_SESSION['role'] !== 'admin') {
header("Location: user.php?msg=Du har inte rättigheter");
exit();
}
// Ta bort användare
if (isset($_GET['delete'])) {
$userToDelete = $_GET['delete'];
try {
// Ta bort användaren från databasen
$stmt = $pdo->prepare("DELETE FROM users WHERE username = ?");
$stmt->execute([$userToDelete]);
// Ta bort alla transaktioner för användaren
$stmt = $pdo->prepare("DELETE FROM trasaktioner WHERE username = ?");
$stmt->execute([$userToDelete]);
header("Location: admin.php?msg=Användaren $userToDelete har tagits bort");
exit();
} catch (\PDOException $e) {
error_log("Database error in admin deletion: " . $e->getMessage());
header("Location: admin.php?msg=Kunde inte ta bort användaren.");
exit();
}
}
// Hämta alla användare från databasen
try {
$stmt = $pdo->query("SELECT username, role FROM users");
$users = $stmt->fetchAll();
} catch (\PDOException $e) {
error_log("Database error in admin fetch: " . $e->getMessage());
$users = [];
}
// Funktion för att räkna saldo från transaktioner
function getSaldo($pdo, $username) {
$stmt = $pdo->prepare("
SELECT SUM(CASE WHEN type='credit' THEN amount ELSE -amount END) AS saldo
FROM trasaktioner
WHERE username = ?
");
$stmt->execute([$username]);
$result = $stmt->fetch();
return $result['saldo'] ?? 0;
}
?>
<!DOCTYPE html>
<html lang="sv">
<head>
<meta charset="UTF-8">
<title>Adminpanel</title>
<style>
body { font-family: Arial; background: #f0f2f5; margin: 0; }
header, footer { background: #333; color: white; text-align: center; padding: 15px; }
table { border-collapse: collapse; width: 90%; margin: 20px auto; background: white; border-radius: 10px; overflow: hidden; box-shadow: 0 0 6px rgba(0,0,0,0.1); }
th, td { padding: 12px; border-bottom: 1px solid #ddd; text-align: center; }
th { background: #1b91f8; color: white; }
tr:hover { background: #f1f1f1; }
a.btn { background: #f44336; color: white; padding: 6px 10px; border-radius: 4px; text-decoration: none; transition: 0.3s; }
a.btn:hover { background: #d32f2f; }
.logout { background: #555; color: white; padding: 8px 14px; border-radius: 5px; text-decoration: none; }
.logout:hover { background: #333; }
.msg { text-align: center; margin-top: 10px; color: green; }
</style>
<script>
function confirmDelete(username) {
if (confirm("Är du säker på att du vill ta bort användaren '" + username + "'?")) {
window.location = "admin.php?delete=" + username;
}
}
</script>
</head>
<body>
<header>
<h1>Adminpanel</h1>
<p>Inloggad som <?= htmlspecialchars($_SESSION['username']) ?></p>
<a href="logout.php" class="logout">Logga ut</a>
</header>
<?php if (!empty($_GET['msg'])): ?>
<p class="msg"><?= htmlspecialchars($_GET['msg']) ?></p>
<?php endif; ?>
<table>
<tr>
<th>Användarnamn</th>
<th>Roll</th>
<th>Saldo</th>
<th>Åtgärder</th>
</tr>
<?php
foreach ($users as $user_data):
$u = $user_data['username'];
$r = $user_data['role'];
if ($r === "admin")
continue;
$saldo = getSaldo($pdo, $u);
?>
<tr>
<td><?= htmlspecialchars($u) ?></td>
<td><?= htmlspecialchars($r) ?></td>
<td><?= $saldo ?> kr</td>
<td><a href="#" class="btn" onclick="confirmDelete('<?= $u ?>')">Ta bort</a></td>
</tr>
<?php endforeach; ?>
</table>
<footer>
<p>© 2025 Din Bank - Adminpanel</p>
</footer>
</body>
</html>