| Server IP : 193.86.120.172 / Your IP : 216.73.216.215 Web Server : Apache/2.4.63 (Unix) System : Linux JServices 3.10.108 #86003 SMP Wed Oct 22 13:20:46 CST 2025 x86_64 User : kubec ( 1026) PHP Version : 8.2.28 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /volume1/web/hotellesnizatisi_cz/new/ |
Upload File : |
<?php
require_once __DIR__ . '/includes/auth.php';
$user = require_role(['admin', 'manazer']);
require_once __DIR__ . '/includes/layout.php';
if ($user['role'] === 'admin') {
$uzivatele = db()->query("
SELECT * FROM uzivatele
ORDER BY FIELD(role,'admin','manazer','zamestnanec'), prijmeni
")->fetchAll();
} else {
$uzivatele = db()->query("
SELECT * FROM uzivatele WHERE role = 'zamestnanec' ORDER BY prijmeni
")->fetchAll();
}
$roleLabel = ['admin' => 'Admin', 'manazer' => 'Manažer', 'zamestnanec' => 'Zaměstnanec'];
$opravneniMap = [];
foreach (db()->query('SELECT uzivatel_id, sekce FROM uzivatele_opravneni')->fetchAll() as $row) {
$opravneniMap[$row['uzivatel_id']][] = $row['sekce'];
}
admin_layout_start('uzivatele', 'Uživatelé', 'Přístupy do administrace', $user);
render_flash();
?>
<div class="panel__head">
<p><?= $user['role'] === 'admin'
? 'Všechny účty s přístupem do administrace. Reset hesla vygeneruje nové dočasné heslo.'
: 'Účty zaměstnanců, které spravujete. Reset hesla vygeneruje nové dočasné heslo.' ?></p>
<a class="btn btn-primary" href="uzivatele-upravit.php">+ Přidat uživatele</a>
</div>
<div class="table-wrap">
<table>
<thead>
<tr>
<th>Jméno</th><th>Uživatelské jméno</th><th>E-mail</th><th>Role</th>
<th>Stav</th><th>Poslední přihlášení</th><th></th>
</tr>
</thead>
<tbody>
<?php foreach ($uzivatele as $u): ?>
<tr>
<td><?= htmlspecialchars($u['jmeno'] . ' ' . $u['prijmeni']) ?><?= (int)$u['id'] === (int)$user['id'] ? ' <span style="color:var(--ink-faint);font-size:.78rem;">(vy)</span>' : '' ?></td>
<td class="mono"><?= htmlspecialchars($u['uzivatelske_jmeno']) ?></td>
<td style="color:var(--ink-soft);"><?= htmlspecialchars($u['email'] ?? '—') ?></td>
<td>
<span class="badge badge-role"><?= htmlspecialchars($roleLabel[$u['role']] ?? $u['role']) ?></span>
<?php if ($u['role'] === 'zamestnanec'): ?>
<div style="font-size:.74rem;color:var(--ink-faint);margin-top:4px;">
<?php
$sekceUzivatele = $opravneniMap[$u['id']] ?? [];
echo $sekceUzivatele
? htmlspecialchars(implode(', ', array_map(fn($s) => SEKCE_NAZEV[$s] ?? $s, $sekceUzivatele)))
: 'bez přístupu';
?>
</div>
<?php endif; ?>
</td>
<td><?= $u['aktivni'] ? '<span class="badge badge-on">Aktivní</span>' : '<span class="badge badge-off">Neaktivní</span>' ?></td>
<td style="color:var(--ink-soft);"><?= $u['posledni_prihlaseni'] ? date('d.m.Y H:i', strtotime($u['posledni_prihlaseni'])) : '—' ?></td>
<td class="actions">
<a class="btn-text" href="uzivatele-upravit.php?id=<?= (int)$u['id'] ?>">Upravit</a>
<form method="post" action="uzivatele-reset-heslo.php" style="display:inline;"
onsubmit="return confirm('Resetovat heslo pro <?= htmlspecialchars(addslashes($u['jmeno'] . ' ' . $u['prijmeni'])) ?>? Vygeneruje se nové dočasné heslo.');">
<input type="hidden" name="id" value="<?= (int)$u['id'] ?>">
<button type="submit" class="btn-text" style="background:none;border:none;padding:0;cursor:pointer;">Reset hesla</button>
</form>
<?php if ((int)$u['id'] !== (int)$user['id']): ?>
<form method="post" action="uzivatele-smazat.php" style="display:inline;"
onsubmit="return confirm('Opravdu trvale smazat účet <?= htmlspecialchars(addslashes($u['jmeno'] . ' ' . $u['prijmeni'])) ?>? Tuto akci nelze vrátit zpět.');">
<input type="hidden" name="id" value="<?= (int)$u['id'] ?>">
<button type="submit" class="btn-text" style="background:none;border:none;padding:0;cursor:pointer;color:var(--red);">Smazat</button>
</form>
<?php endif; ?>
</td>
</tr>
<?php endforeach; ?>
<?php if (!$uzivatele): ?>
<tr><td colspan="7" style="color:var(--ink-soft);text-align:center;padding:24px;">Zatím žádní uživatelé.</td></tr>
<?php endif; ?>
</tbody>
</table>
</div>
<?php admin_layout_end(); ?>