From 15ba2a41002d0fb72a5a6ee7f3cb129b03acc4e5 Mon Sep 17 00:00:00 2001 From: Lukas Reschke Date: Mon, 15 Jun 2015 17:54:48 +0200 Subject: [PATCH 1/3] Reintroduce user cache This was required by avatars and was broken with https://github.com/owncloud/core/pull/16200 Fixes https://github.com/owncloud/core/issues/16942 --- lib/private/avatar.php | 1 + lib/private/server.php | 6 +++--- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/lib/private/avatar.php b/lib/private/avatar.php index 61a179810f..133ab4bcd6 100644 --- a/lib/private/avatar.php +++ b/lib/private/avatar.php @@ -90,6 +90,7 @@ class Avatar implements \OCP\IAvatar { * @return void */ public function set ($data) { + if($data instanceOf \OCP\IImage) { $img = $data; $data = $img->data(); diff --git a/lib/private/server.php b/lib/private/server.php index 5ed9d78f41..f2685bb3e8 100644 --- a/lib/private/server.php +++ b/lib/private/server.php @@ -218,8 +218,8 @@ class Server extends SimpleContainer implements IServerContainer { $this->registerService('AppHelper', function ($c) { return new \OC\AppHelper(); }); - $this->registerService('NullCache', function ($c) { - return new NullCache(); + $this->registerService('UserCache', function ($c) { + return new Cache\File(); }); $this->registerService('MemCacheFactory', function (Server $c) { $config = $c->getConfig(); @@ -667,7 +667,7 @@ class Server extends SimpleContainer implements IServerContainer { * @deprecated 8.1.0 use getMemCacheFactory to obtain a proper cache */ public function getCache() { - return $this->query('NullCache'); + return $this->query('UserCache'); } /** From 34f5541088e99367a8bcdc1ca2ba4fa8524eec68 Mon Sep 17 00:00:00 2001 From: Lukas Reschke Date: Mon, 15 Jun 2015 18:35:41 +0200 Subject: [PATCH 2/3] Add `no-store` to AppFramework --- core/avatar/avatarcontroller.php | 3 +-- lib/public/appframework/http/response.php | 2 +- tests/lib/appframework/http/ResponseTest.php | 2 +- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/core/avatar/avatarcontroller.php b/core/avatar/avatarcontroller.php index 9eb7069166..5ddd80c45a 100644 --- a/core/avatar/avatarcontroller.php +++ b/core/avatar/avatarcontroller.php @@ -209,8 +209,7 @@ class AvatarController extends Controller { $resp = new DataDisplayResponse($image->data(), Http::STATUS_OK, - ['Content-Type' => $image->mimeType(), - 'Pragma' => 'public']); + ['Content-Type' => $image->mimeType()]); $resp->setETag(crc32($image->data())); $resp->cacheFor(0); diff --git a/lib/public/appframework/http/response.php b/lib/public/appframework/http/response.php index 8fd5fdd8f5..f6c9460ff1 100644 --- a/lib/public/appframework/http/response.php +++ b/lib/public/appframework/http/response.php @@ -94,7 +94,7 @@ class Response { $this->addHeader('Cache-Control', 'max-age=' . $cacheSeconds . ', must-revalidate'); } else { - $this->addHeader('Cache-Control', 'no-cache, must-revalidate'); + $this->addHeader('Cache-Control', 'no-cache, no-store, must-revalidate'); } return $this; diff --git a/tests/lib/appframework/http/ResponseTest.php b/tests/lib/appframework/http/ResponseTest.php index 77e9441b52..c8b79fbd8b 100644 --- a/tests/lib/appframework/http/ResponseTest.php +++ b/tests/lib/appframework/http/ResponseTest.php @@ -221,7 +221,7 @@ class ResponseTest extends \Test\TestCase { $this->childResponse->cacheFor(0); $headers = $this->childResponse->getHeaders(); - $this->assertEquals('no-cache, must-revalidate', $headers['Cache-Control']); + $this->assertEquals('no-cache, no-store, must-revalidate', $headers['Cache-Control']); } From fffef529ee60de1123f9fba11385a36697637dce Mon Sep 17 00:00:00 2001 From: Lukas Reschke Date: Mon, 15 Jun 2015 19:16:48 +0200 Subject: [PATCH 3/3] Adjust NullCache tests --- tests/lib/server.php | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/tests/lib/server.php b/tests/lib/server.php index 9d45d069b6..f2971fea25 100644 --- a/tests/lib/server.php +++ b/tests/lib/server.php @@ -98,9 +98,7 @@ class Server extends \Test\TestCase { ['NavigationManager', '\OC\NavigationManager'], ['NavigationManager', '\OCP\INavigationManager'], - ['NullCache', '\OC\Memcache\NullCache'], - ['NullCache', '\OC\Memcache\Cache'], - ['NullCache', '\OCP\IMemcache'], + ['UserCache', '\OC\Cache\File'], ['OcsClient', '\OC\OCSClient'],