db = Database::getInstance(); } public function login($username, $password) { $sql = "SELECT * FROM users WHERE username = ?"; $user = $this->db->fetch($sql, [$username]); if ($user && password_verify($password, $user['password'])) { $_SESSION['user_id'] = $user['id']; $_SESSION['username'] = $user['username']; $_SESSION['role'] = $user['role']; $_SESSION['logged_in'] = true; return true; } return false; } public function logout() { session_destroy(); unset($_SESSION); } public function isLoggedIn() { return isset($_SESSION['logged_in']) && $_SESSION['logged_in'] === true; } public function requireAuth() { if (!$this->isLoggedIn()) { header('Location: login.php'); exit; } } public function getUser() { if ($this->isLoggedIn()) { return [ 'id' => $_SESSION['user_id'], 'username' => $_SESSION['username'], 'role' => $_SESSION['role'] ]; } return null; } public function isAdmin() { return $this->isLoggedIn() && $_SESSION['role'] === 'admin'; } } // Initialize session if (session_status() === PHP_SESSION_NONE) { session_start(); }