[admin] Ochrana prvního uživatele před smazáním, odkaz na admin v $auth_logout_html
This commit is contained in:
+23
-1
@@ -174,10 +174,16 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
||||
$chyba = 'Neplatné ID uživatele.';
|
||||
} elseif ($uzivatel_id === (int) $auth_uzivatel['id']) {
|
||||
$chyba = 'Nemůžeš smazat svůj vlastní účet.';
|
||||
} elseif ($uzivatel_id === 1) {
|
||||
// Uživatel s id=1 je první admin vytvořený při instalaci –
|
||||
// jeho smazání by mohlo zanechat systém bez správce
|
||||
$chyba = 'Prvního uživatele systému nelze smazat.';
|
||||
}
|
||||
|
||||
if (empty($chyba)) {
|
||||
try {
|
||||
// Díky FOREIGN KEY s ON DELETE CASCADE se automaticky
|
||||
// smažou i záznamy v navázaných tabulkách
|
||||
$stmt = $pdo->prepare("
|
||||
DELETE FROM `" . DB_TABULKA_UZIVATELE . "`
|
||||
WHERE `id` = :id
|
||||
@@ -284,6 +290,7 @@ try {
|
||||
<td><?php echo $u['admin'] ? 'ANO' : 'ne'; ?></td>
|
||||
<td><?php echo htmlspecialchars($u['vytvoreno']); ?></td>
|
||||
<td>
|
||||
<!-- Formulář pro změnu hesla -->
|
||||
<form method="POST" action="" style="display:inline;">
|
||||
<input type="hidden" name="csrf_token" value="<?php echo htmlspecialchars($csrf_token); ?>">
|
||||
<input type="hidden" name="akce" value="zmena_hesla">
|
||||
@@ -293,7 +300,14 @@ try {
|
||||
<button type="submit">Změnit heslo</button>
|
||||
</form>
|
||||
|
||||
<?php if ($u['id'] !== $auth_uzivatel['id']): ?>
|
||||
<?php
|
||||
// Tlačítko Smazat se nezobrazí pokud:
|
||||
// - jde o samotného přihlášeného admina
|
||||
// - jde o prvního uživatele systému (id = 1)
|
||||
$nelze_smazat = ($u['id'] === $auth_uzivatel['id'])
|
||||
|| ((int) $u['id'] === 1);
|
||||
if (!$nelze_smazat):
|
||||
?>
|
||||
<form method="POST" action="" style="display:inline;"
|
||||
onsubmit="return confirm('Opravdu smazat uživatele <?php echo htmlspecialchars(addslashes($u['email'])); ?>? Tato akce je nevratná.');">
|
||||
<input type="hidden" name="csrf_token" value="<?php echo htmlspecialchars($csrf_token); ?>">
|
||||
@@ -301,6 +315,13 @@ try {
|
||||
<input type="hidden" name="uzivatel_id" value="<?php echo htmlspecialchars($u['id']); ?>">
|
||||
<button type="submit">Smazat</button>
|
||||
</form>
|
||||
<?php else: ?>
|
||||
<!-- Vysvětlení proč nelze smazat -->
|
||||
<?php if ((int) $u['id'] === 1): ?>
|
||||
<em>(první uživatel systému – nelze smazat)</em>
|
||||
<?php else: ?>
|
||||
<em>(vlastní účet – nelze smazat)</em>
|
||||
<?php endif; ?>
|
||||
<?php endif; ?>
|
||||
</td>
|
||||
</tr>
|
||||
@@ -381,6 +402,7 @@ try {
|
||||
<tr><td>PROJEKT_URL</td><td><?php echo htmlspecialchars(PROJEKT_URL); ?></td></tr>
|
||||
<tr><td>AUTH_LOGIN_URL</td><td><?php echo htmlspecialchars(AUTH_LOGIN_URL); ?></td></tr>
|
||||
<tr><td>AUTH_LOGOUT_URL</td><td><?php echo htmlspecialchars(AUTH_LOGOUT_URL); ?></td></tr>
|
||||
<tr><td>AUTH_ADMIN_URL</td><td><?php echo htmlspecialchars(AUTH_ADMIN_URL); ?></td></tr>
|
||||
<tr><td>AUTH_REGISTRACE_URL</td><td><?php echo htmlspecialchars(AUTH_REGISTRACE_URL); ?></td></tr>
|
||||
<tr><td>AUTH_RESET_URL</td><td><?php echo htmlspecialchars(AUTH_RESET_URL); ?></td></tr>
|
||||
<tr><td>AUTH_REDIRECT_PO_PRIHLASENI</td><td><?php echo htmlspecialchars(AUTH_REDIRECT_PO_PRIHLASENI); ?></td></tr>
|
||||
|
||||
Reference in New Issue
Block a user