Källkodsbrowser

admin.php

123 lines UTF-8 Unix (LF)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
<?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>&copy; 2025 Din Bank - Adminpanel</p>
    </footer>
</body>

</html>