[FÁZE-1][install] Tabulky přejmenovány na anglické názvy s prefixem auth_

This commit is contained in:
stepan
2026-03-16 23:21:15 +01:00
parent f4fba3fcea
commit c39ed094ba
+18 -11
View File
@@ -40,7 +40,7 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$heslo = $_POST['heslo'] ?? ''; $heslo = $_POST['heslo'] ?? '';
$heslo2 = $_POST['heslo2'] ?? ''; $heslo2 = $_POST['heslo2'] ?? '';
// Základní validace emailu // Validace emailu
if (empty($email)) { if (empty($email)) {
$chyba = 'Email nesmí být prázdný.'; $chyba = 'Email nesmí být prázdný.';
} elseif (!filter_var($email, FILTER_VALIDATE_EMAIL)) { } elseif (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
@@ -66,7 +66,7 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
// ------------------------------------------------ // ------------------------------------------------
// Tabulka uživatelů přihlašovacího systému // Tabulka uživatelů přihlašovacího systému
// utf8mb4 = plná podpora Unicode (diakritika, emoji) // utf8mb4 = plná podpora Unicode (diakritika, emoji, ...)
$pdo->exec(" $pdo->exec("
CREATE TABLE IF NOT EXISTS `" . DB_TABULKA_UZIVATELE . "` ( CREATE TABLE IF NOT EXISTS `" . DB_TABULKA_UZIVATELE . "` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT, `id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
@@ -91,12 +91,14 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
`expiruje` DATETIME NOT NULL, `expiruje` DATETIME NOT NULL,
PRIMARY KEY (`id`), PRIMARY KEY (`id`),
UNIQUE KEY `selector` (`selector`), UNIQUE KEY `selector` (`selector`),
FOREIGN KEY (`uzivatel_id`) REFERENCES `" . DB_TABULKA_UZIVATELE . "` (`id`) ON DELETE CASCADE FOREIGN KEY (`uzivatel_id`)
REFERENCES `" . DB_TABULKA_UZIVATELE . "` (`id`)
ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
"); ");
// Tabulka brute force záznamů // Tabulka brute force záznamů
// Ukládají se neúspěšné pokusy o přihlášení // Ukládají se neúspěšné pokusy o přihlášení (IP adresa, email, čas)
$pdo->exec(" $pdo->exec("
CREATE TABLE IF NOT EXISTS `" . DB_TABULKA_BRUTE . "` ( CREATE TABLE IF NOT EXISTS `" . DB_TABULKA_BRUTE . "` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT, `id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
@@ -110,7 +112,7 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
"); ");
// Tabulka tokenů pro obnovu hesla // Tabulka tokenů pro obnovu hesla
// Token je platný jen omezenou dobu (viz config.php) // Token je jednorázový a platí omezenou dobu (viz config.php)
$pdo->exec(" $pdo->exec("
CREATE TABLE IF NOT EXISTS `" . DB_TABULKA_RESET . "` ( CREATE TABLE IF NOT EXISTS `" . DB_TABULKA_RESET . "` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT, `id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
@@ -118,13 +120,15 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
`token_hash` VARCHAR(255) NOT NULL, `token_hash` VARCHAR(255) NOT NULL,
`expiruje` DATETIME NOT NULL, `expiruje` DATETIME NOT NULL,
PRIMARY KEY (`id`), PRIMARY KEY (`id`),
FOREIGN KEY (`uzivatel_id`) REFERENCES `" . DB_TABULKA_UZIVATELE . "` (`id`) ON DELETE CASCADE FOREIGN KEY (`uzivatel_id`)
REFERENCES `" . DB_TABULKA_UZIVATELE . "` (`id`)
ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
"); ");
// Tabulka uživatelů konkrétní služby (pokud je nastavena) // Tabulka uživatelů konkrétní služby (pokud je nastavena v config.php)
// Tato tabulka slouží pro data specifická pro tvůj projekt // Tato tabulka slouží pro data specifická pro tvůj projekt.
// (jméno, nastavení, kontaktní údaje apod.) // Zatím obsahuje jen vazbu na auth_users sloupce si přidáš sám.
if (DB_TABULKA_SLUZBA !== '') { if (DB_TABULKA_SLUZBA !== '') {
$pdo->exec(" $pdo->exec("
CREATE TABLE IF NOT EXISTS `" . DB_TABULKA_SLUZBA . "` ( CREATE TABLE IF NOT EXISTS `" . DB_TABULKA_SLUZBA . "` (
@@ -132,7 +136,9 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
`uzivatel_id` INT UNSIGNED NOT NULL, `uzivatel_id` INT UNSIGNED NOT NULL,
PRIMARY KEY (`id`), PRIMARY KEY (`id`),
UNIQUE KEY `uzivatel_id` (`uzivatel_id`), UNIQUE KEY `uzivatel_id` (`uzivatel_id`),
FOREIGN KEY (`uzivatel_id`) REFERENCES `" . DB_TABULKA_UZIVATELE . "` (`id`) ON DELETE CASCADE FOREIGN KEY (`uzivatel_id`)
REFERENCES `" . DB_TABULKA_UZIVATELE . "` (`id`)
ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
"); ");
} }
@@ -141,6 +147,7 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
// VYTVOŘENÍ PRVNÍHO ADMIN UŽIVATELE // VYTVOŘENÍ PRVNÍHO ADMIN UŽIVATELE
// ------------------------------------------------ // ------------------------------------------------
// Heslo zahashujeme pomocí bcrypt nikdy neukládáme plaintext!
$heslo_hash = password_hash($heslo, PASSWORD_DEFAULT); $heslo_hash = password_hash($heslo, PASSWORD_DEFAULT);
$stmt = $pdo->prepare(" $stmt = $pdo->prepare("
@@ -156,7 +163,7 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$novy_uzivatel_id = $pdo->lastInsertId(); $novy_uzivatel_id = $pdo->lastInsertId();
// Pokud existuje tabulka služby, vytvoříme prázdný řádek // Pokud existuje tabulka služby, vytvoříme k novému uživateli prázdný řádek
if (DB_TABULKA_SLUZBA !== '') { if (DB_TABULKA_SLUZBA !== '') {
$stmt2 = $pdo->prepare(" $stmt2 = $pdo->prepare("
INSERT INTO `" . DB_TABULKA_SLUZBA . "` INSERT INTO `" . DB_TABULKA_SLUZBA . "`