$_SESSION['user_id'] ?? null, 'email' => $_SESSION['user_email'] ?? '', 'full_name' => $_SESSION['full_name'] ?? '', 'phone' => $_SESSION['user_phone'] ?? '', 'city' => $_SESSION['user_city'] ?? '', 'is_admin' => $_SESSION['isAdmin'] ?? false, 'login_time' => $_SESSION['login_time'] ?? null ]; } /** * Проверить, авторизован ли пользователь */ protected function isAuthenticated(): bool { return isset($_SESSION['isLoggedIn']) && $_SESSION['isLoggedIn'] === true; } /** * Проверить, является ли пользователь администратором */ protected function isAdmin(): bool { return $this->isAuthenticated() && isset($_SESSION['isAdmin']) && $_SESSION['isAdmin'] === true; } /** * Требовать авторизацию */ protected function requireAuth(): void { if (!$this->isAuthenticated()) { $redirect = urlencode($_SERVER['REQUEST_URI']); $this->redirect("/login?redirect={$redirect}"); } } /** * Требовать права администратора */ protected function requireAdmin(): void { if (!$this->isAdmin()) { $this->redirect('/login'); } } /** * Получить POST данные */ protected function getPost(?string $key = null, $default = null) { if ($key === null) { return $_POST; } return $_POST[$key] ?? $default; } /** * Получить GET данные */ protected function getQuery(?string $key = null, $default = null) { if ($key === null) { return $_GET; } return $_GET[$key] ?? $default; } /** * Установить flash-сообщение */ protected function setFlash(string $type, string $message): void { $_SESSION['flash'][$type] = $message; } /** * Получить flash-сообщение */ protected function getFlash(string $type): ?string { $message = $_SESSION['flash'][$type] ?? null; unset($_SESSION['flash'][$type]); return $message; } }