diff --git a/CHANGELOG.md b/CHANGELOG.md index a416b5029..ea3d60488 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +# v1.6.16 +## 09/19/2019 + +1. [](#bugfix) + * Fixed Flex user creation if file storage is being used [#2444](https://github.com/getgrav/grav/issues/2444) + * Fixed `Badly encoded JSON data` warning when uploading files [#2663](https://github.com/getgrav/grav/issues/2663) + # v1.6.15 ## 08/20/2019 diff --git a/system/defines.php b/system/defines.php index bee2c1caf..85d88d8f7 100644 --- a/system/defines.php +++ b/system/defines.php @@ -8,7 +8,7 @@ // Some standard defines define('GRAV', true); -define('GRAV_VERSION', '1.6.15'); +define('GRAV_VERSION', '1.6.16'); define('GRAV_TESTING', false); define('DS', '/'); diff --git a/system/src/Grav/Common/Page/Page.php b/system/src/Grav/Common/Page/Page.php index 6da3bbaed..173035981 100644 --- a/system/src/Grav/Common/Page/Page.php +++ b/system/src/Grav/Common/Page/Page.php @@ -2855,9 +2855,9 @@ class Page implements PageInterface $result = []; foreach ((array)$value as $key => $val) { if (is_int($key)) { - $result = $result + $this->evaluate($val)->toArray(); + $result = $result + $this->evaluate($val, $only_published)->toArray(); } else { - $result = $result + $this->evaluate([$key => $val])->toArray(); + $result = $result + $this->evaluate([$key => $val], $only_published)->toArray(); } } diff --git a/system/src/Grav/Common/User/FlexUser/User.php b/system/src/Grav/Common/User/FlexUser/User.php index e95992aae..0d83c5173 100644 --- a/system/src/Grav/Common/User/FlexUser/User.php +++ b/system/src/Grav/Common/User/FlexUser/User.php @@ -22,6 +22,7 @@ use Grav\Framework\File\Formatter\JsonFormatter; use Grav\Framework\File\Formatter\YamlFormatter; use Grav\Framework\Flex\FlexDirectory; use Grav\Framework\Flex\FlexObject; +use Grav\Framework\Flex\Storage\FileStorage; use Grav\Framework\Flex\Traits\FlexAuthorizeTrait; use Grav\Framework\Flex\Traits\FlexMediaTrait; use Grav\Framework\Form\FormFlashFile; @@ -446,6 +447,15 @@ class User extends FlexObject implements UserInterface, MediaManipulationInterfa */ public function save() { + // TODO: We may want to handle this in the storage layer in the future. + $key = $this->getStorageKey(); + if (!$key || strpos($key, '@@')) { + $storage = $this->getFlexDirectory()->getStorage(); + if ($storage instanceof FileStorage) { + $this->setStorageKey($this->getKey()); + } + } + $password = $this->getProperty('password'); if (null !== $password) { $this->unsetProperty('password'); diff --git a/system/src/Grav/Framework/Form/Traits/FormTrait.php b/system/src/Grav/Framework/Form/Traits/FormTrait.php index 31c4ff920..d47504817 100644 --- a/system/src/Grav/Framework/Form/Traits/FormTrait.php +++ b/system/src/Grav/Framework/Form/Traits/FormTrait.php @@ -640,7 +640,7 @@ trait FormTrait foreach ($data as $key => &$value) { if (\is_array($value)) { $value = $this->jsonDecode($value); - } elseif ($value === '') { + } elseif (trim($value) === '') { unset($data[$key]); } else { $value = json_decode($value, true);