Baza danych i zapis akcji przywoływania kelnera. Czekam na endpointy lub coś z KDS
This commit is contained in:
54
public/staff/auth.php
Normal file
54
public/staff/auth.php
Normal file
@@ -0,0 +1,54 @@
|
||||
<?php
|
||||
|
||||
const ADMIN_USERNAME = 'admin';
|
||||
const ADMIN_PASSWORD = 'karczma2026!';
|
||||
|
||||
function startAdminSession(): void
|
||||
{
|
||||
if (session_status() === PHP_SESSION_NONE) {
|
||||
session_start();
|
||||
}
|
||||
}
|
||||
|
||||
function isAdminLoggedIn(): bool
|
||||
{
|
||||
startAdminSession();
|
||||
return !empty($_SESSION['staff_logged_in']) && $_SESSION['staff_logged_in'] === true;
|
||||
}
|
||||
|
||||
function requireAdminAuth(bool $redirectToLogin = true): void
|
||||
{
|
||||
if (isAdminLoggedIn()) {
|
||||
return;
|
||||
}
|
||||
|
||||
if ($redirectToLogin) {
|
||||
header('Location: login.php');
|
||||
exit;
|
||||
}
|
||||
}
|
||||
|
||||
function attemptAdminLogin(string $username, string $password): bool
|
||||
{
|
||||
startAdminSession();
|
||||
|
||||
if (hash_equals(ADMIN_USERNAME, $username) && hash_equals(ADMIN_PASSWORD, $password)) {
|
||||
$_SESSION['staff_logged_in'] = true;
|
||||
$_SESSION['staff_username'] = ADMIN_USERNAME;
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
function adminLogout(): void
|
||||
{
|
||||
startAdminSession();
|
||||
$_SESSION = [];
|
||||
if (ini_get('session.use_cookies')) {
|
||||
$params = session_get_cookie_params();
|
||||
setcookie(session_name(), '', time() - 42000, $params['path'], $params['domain'], $params['secure'], $params['httponly']);
|
||||
}
|
||||
session_destroy();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user