diff --git a/CHANGELOG.md b/CHANGELOG.md index b916b2ea3..aae1dc4ad 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,8 @@ # v1.7.0-rc.17 ## mm/dd/2020 +1. [](#new) + * Added a `getAllHeaders()` compatibility function 1. [](#improved) * Fall back through various templates scenarios if they don't exist in theme to avoid unhelpful error. * Added default templates for `external.html.twig`, `default.html.twig`, and `modular.html.twig` @@ -16,6 +18,7 @@ * Fixed `FlexObject::freeMedia()` method causing media to become null * Fixed bug in `Flex Form` making it impossible to set nested values * Fixed `Flex User` avatar when using folder storage, also allow multiple images + * Fixed Referer reference during GPM calls. * Fixed fatal error with toggled lists # v1.7.0-rc.16 diff --git a/system/src/Grav/Common/GPM/Response.php b/system/src/Grav/Common/GPM/Response.php index fc0f9f8c3..b2852e6a8 100644 --- a/system/src/Grav/Common/GPM/Response.php +++ b/system/src/Grav/Common/GPM/Response.php @@ -30,7 +30,6 @@ class Response public static $callback = null; private static $headers = [ - 'Referer' => 'Grav CMS', 'User-Agent' => 'Grav CMS' ]; @@ -58,10 +57,11 @@ class Response } $config = Grav::instance()['config']; + $referer = Grav::instance()['uri']->rootUrl(true); $options = new HttpOptions(); // Set default Headers - $options->setHeaders(self::$headers); + $options->setHeaders(array_merge([ 'Referer' => $referer ], self::$headers)); // Disable verify Peer if required $verify_peer = $config->get('system.gpm.verify_peer', true); diff --git a/system/src/Grav/Common/Uri.php b/system/src/Grav/Common/Uri.php index 01ffd5df8..fdbcd8a95 100644 --- a/system/src/Grav/Common/Uri.php +++ b/system/src/Grav/Common/Uri.php @@ -1436,6 +1436,24 @@ class Uri return $this; } + + /** + * Compatibility in case getallheaders() is not available on platform + */ + public static function getAllHeaders() + { + if (!function_exists('getallheaders')) { + $headers = []; + foreach ($_SERVER as $name => $value) { + if (substr($name, 0, 5) == 'HTTP_') { + $headers[str_replace(' ', '-', ucwords(strtolower(str_replace('_', ' ', substr($name, 5)))))] = $value; + } + } + return $headers; + } + return getallheaders(); + } + /** * Get the base URI with port if needed *