From e9c11bbef26030557e8a40307cf4dd931351d678 Mon Sep 17 00:00:00 2001 From: Matias Griese Date: Wed, 28 Jun 2017 11:50:39 +0300 Subject: [PATCH 1/8] Fixed global media files disappearing after a reload (#1545) --- CHANGELOG.md | 6 ++++++ system/src/Grav/Common/Page/Media.php | 13 ++++++++++--- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 25f3e9c71..9aab9aa73 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,9 @@ +# v1.3.0-rc.5 +## mm/dd/2017 + +1. [](#bugfix) + * Fixed global media files disappearing after a reload (#1545) + # v1.3.0-rc.4 ## 06/22/2017 diff --git a/system/src/Grav/Common/Page/Media.php b/system/src/Grav/Common/Page/Media.php index 0a76a2bb7..e83ec77df 100644 --- a/system/src/Grav/Common/Page/Media.php +++ b/system/src/Grav/Common/Page/Media.php @@ -30,12 +30,19 @@ class Media extends AbstractMedia { $this->path = $path; + $this->__wakeup(); + $this->init(); + } + + /** + * Initialize static variables on unserialize. + */ + public function __wakeup() + { if (!isset(static::$global)) { // Add fallback to global media. - static::$global = new GlobalMedia($path); + static::$global = new GlobalMedia(); } - - $this->init(); } /** From 144fcf43cfe6d3a65e40dcde992b86ed98ca973b Mon Sep 17 00:00:00 2001 From: Flavio Copes Date: Thu, 29 Jun 2017 15:29:19 +0200 Subject: [PATCH 2/8] Set folder name as required during validation, fix https://github.com/getgrav/grav-plugin-admin/issues/1146 --- CHANGELOG.md | 3 ++- system/blueprints/pages/default.yaml | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9aab9aa73..6b6f0e3c3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,8 @@ ## mm/dd/2017 1. [](#bugfix) - * Fixed global media files disappearing after a reload (#1545) + * Fixed global media files disappearing after a reload [#1545](https://github.com/getgrav/grav/issues/1545) + * Set folder name as required during validation [grav-plugin-admin#1146](https://github.com/getgrav/grav-plugin-admin/issues/1146) # v1.3.0-rc.4 ## 06/22/2017 diff --git a/system/blueprints/pages/default.yaml b/system/blueprints/pages/default.yaml index 929a067c3..25e3d0774 100644 --- a/system/blueprints/pages/default.yaml +++ b/system/blueprints/pages/default.yaml @@ -122,6 +122,7 @@ form: label: PLUGIN_ADMIN.FOLDER_NAME validate: rule: slug + required: true route: type: parents From 08920d5b10d96c41841bad0135dfd37e2ead7929 Mon Sep 17 00:00:00 2001 From: Flavio Copes Date: Thu, 29 Jun 2017 15:32:35 +0200 Subject: [PATCH 3/8] Allow to set `system.session.timeout` to 0 to clear session on browser close (#1538) * Allow to set expire to 0 to clear session on browser close * Changelog --- CHANGELOG.md | 2 ++ system/src/Grav/Common/Session.php | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6b6f0e3c3..c3db40adf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,8 @@ # v1.3.0-rc.5 ## mm/dd/2017 +1. [](#new) + * Setting `system.session.timeout` to 0 clears the session when the browser session ends [#1538](https://github.com/getgrav/grav/pull/1538) 1. [](#bugfix) * Fixed global media files disappearing after a reload [#1545](https://github.com/getgrav/grav/issues/1545) * Set folder name as required during validation [grav-plugin-admin#1146](https://github.com/getgrav/grav-plugin-admin/issues/1146) diff --git a/system/src/Grav/Common/Session.php b/system/src/Grav/Common/Session.php index aeaf881fc..67aaab5ae 100644 --- a/system/src/Grav/Common/Session.php +++ b/system/src/Grav/Common/Session.php @@ -84,7 +84,7 @@ class Session extends BaseSession } $this->setName($session_name); $this->start(); - setcookie(session_name(), session_id(), time() + $session_timeout, $session_path, $domain, $secure, $httponly); + setcookie(session_name(), session_id(), $session_timeout ? time() + $session_timeout : 0, $session_path, $domain, $secure, $httponly); } } From 5e3dbbf092227cd0e1ab8baa176412b6b7adc3d5 Mon Sep 17 00:00:00 2001 From: Andy Miller Date: Thu, 29 Jun 2017 14:07:31 -0600 Subject: [PATCH 4/8] Fix for broken regex redirects/routes --- system/src/Grav/Common/Page/Pages.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/src/Grav/Common/Page/Pages.php b/system/src/Grav/Common/Page/Pages.php index d3b5f86b2..3a28dec02 100644 --- a/system/src/Grav/Common/Page/Pages.php +++ b/system/src/Grav/Common/Page/Pages.php @@ -480,7 +480,7 @@ class Pages $site_redirects = $config->get("site.redirects"); if (is_array($site_redirects)) { foreach ((array)$site_redirects as $pattern => $replace) { - $pattern = '#^' . preg_quote(ltrim($pattern, '^')) . '#'; + $pattern = '#^' . str_replace('/', '\/', ltrim($pattern, '^')) . '#'; try { $found = preg_replace($pattern, $replace, $source_url); if ($found != $source_url) { From eac96c00dcee770f3eee47a3a6b71c137d639c21 Mon Sep 17 00:00:00 2001 From: Andy Miller Date: Thu, 29 Jun 2017 14:09:34 -0600 Subject: [PATCH 5/8] Also for routes --- system/src/Grav/Common/Page/Pages.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/src/Grav/Common/Page/Pages.php b/system/src/Grav/Common/Page/Pages.php index 3a28dec02..ffb280f9d 100644 --- a/system/src/Grav/Common/Page/Pages.php +++ b/system/src/Grav/Common/Page/Pages.php @@ -496,7 +496,7 @@ class Pages $site_routes = $config->get("site.routes"); if (is_array($site_routes)) { foreach ((array)$site_routes as $pattern => $replace) { - $pattern = '#^' . preg_quote(ltrim($pattern, '^')) . '#'; + $pattern = '#^' . str_replace('/', '\/', ltrim($pattern, '^')) . '#'; try { $found = preg_replace($pattern, $replace, $source_url); if ($found != $source_url) { From 876380b9a7e7257133e67cfb6f11519b50c0cf82 Mon Sep 17 00:00:00 2001 From: Andy Miller Date: Thu, 29 Jun 2017 17:15:39 -0600 Subject: [PATCH 6/8] Updated changelog --- CHANGELOG.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c3db40adf..466538cfd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,11 +1,15 @@ # v1.3.0-rc.5 -## mm/dd/2017 +## xx/xx/2017 1. [](#new) * Setting `system.session.timeout` to 0 clears the session when the browser session ends [#1538](https://github.com/getgrav/grav/pull/1538) + * Created a `CODE_OF_CONDUCT.md` so everyone knows how to behave :) +1. [](#improved) + * Renamed new `media()` Twig function to `media_directory()` to avoid conflict with Page's `media` object 1. [](#bugfix) * Fixed global media files disappearing after a reload [#1545](https://github.com/getgrav/grav/issues/1545) * Set folder name as required during validation [grav-plugin-admin#1146](https://github.com/getgrav/grav-plugin-admin/issues/1146) + * Fix for broken regex redirects/routes via `site.yaml` # v1.3.0-rc.4 ## 06/22/2017 From 823244a787683bdff690fe46edca4eaab88e38ed Mon Sep 17 00:00:00 2001 From: Flavio Copes Date: Fri, 30 Jun 2017 10:40:49 +0200 Subject: [PATCH 7/8] Revert "Set folder name as required during validation [grav-plugin-admin#1146](https://github.com/getgrav/grav-plugin-admin/issues/1146)", was preventing validation --- CHANGELOG.md | 3 +-- system/blueprints/pages/default.yaml | 1 - 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 466538cfd..f6df0f475 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,10 +5,9 @@ * Setting `system.session.timeout` to 0 clears the session when the browser session ends [#1538](https://github.com/getgrav/grav/pull/1538) * Created a `CODE_OF_CONDUCT.md` so everyone knows how to behave :) 1. [](#improved) - * Renamed new `media()` Twig function to `media_directory()` to avoid conflict with Page's `media` object + * Renamed new `media()` Twig function to `media_directory()` to avoid conflict with Page's `media` object 1. [](#bugfix) * Fixed global media files disappearing after a reload [#1545](https://github.com/getgrav/grav/issues/1545) - * Set folder name as required during validation [grav-plugin-admin#1146](https://github.com/getgrav/grav-plugin-admin/issues/1146) * Fix for broken regex redirects/routes via `site.yaml` # v1.3.0-rc.4 diff --git a/system/blueprints/pages/default.yaml b/system/blueprints/pages/default.yaml index 25e3d0774..929a067c3 100644 --- a/system/blueprints/pages/default.yaml +++ b/system/blueprints/pages/default.yaml @@ -122,7 +122,6 @@ form: label: PLUGIN_ADMIN.FOLDER_NAME validate: rule: slug - required: true route: type: parents From 4b723832eaf1e7c0c776f08a8eddd2a4dd8fea4c Mon Sep 17 00:00:00 2001 From: Flavio Copes Date: Mon, 3 Jul 2017 17:10:22 +0200 Subject: [PATCH 8/8] Sanitize the error message in the error handler page --- CHANGELOG.md | 1 + system/src/Grav/Common/Errors/SimplePageHandler.php | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f6df0f475..6bd4ad125 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ 1. [](#bugfix) * Fixed global media files disappearing after a reload [#1545](https://github.com/getgrav/grav/issues/1545) * Fix for broken regex redirects/routes via `site.yaml` + * Sanitize the error message in the error handler page # v1.3.0-rc.4 ## 06/22/2017 diff --git a/system/src/Grav/Common/Errors/SimplePageHandler.php b/system/src/Grav/Common/Errors/SimplePageHandler.php index f236e53e7..9616b9d61 100644 --- a/system/src/Grav/Common/Errors/SimplePageHandler.php +++ b/system/src/Grav/Common/Errors/SimplePageHandler.php @@ -44,7 +44,7 @@ class SimplePageHandler extends Handler $vars = array( "stylesheet" => file_get_contents($cssFile), "code" => $code, - "message" => $message, + "message" => filter_var(rawurldecode($message), FILTER_SANITIZE_STRING), ); $helper->setVariables($vars);