$_SESSION['user_id'], 'username' => $_SESSION['username'], 'email' => $_SESSION['email'] ?? '', 'first_name' => $_SESSION['first_name'], 'last_name' => $_SESSION['last_name'], 'role' => $_SESSION['role'] ); } return null; } public static function requireAuth() { if (!self::isLoggedIn()) { http_response_code(401); echo json_encode(array('message' => 'Unauthorized')); exit(); } } public static function requireRole($required_role) { $user = self::getCurrentUser(); if (!$user || $user['role'] !== $required_role) { http_response_code(403); echo json_encode(array('message' => 'Insufficient permissions')); exit(); } } public static function requireAdmin() { self::requireRole('admin'); } } ?>