summaryrefslogtreecommitdiffstats
path: root/lib/private/cache/file.php
diff options
context:
space:
mode:
authorRobin Appelman <icewind@owncloud.com>2015-02-04 16:52:50 +0100
committerRobin Appelman <icewind@owncloud.com>2015-02-04 16:52:50 +0100
commit4a9c64e96be52243b8fc480242bd90428bc470c1 (patch)
tree2e5b9327fc90112792123193730726497dd43033 /lib/private/cache/file.php
parent09216ef49b04f2a37d853d160853d15741bbe015 (diff)
downloadnextcloud-server-4a9c64e96be52243b8fc480242bd90428bc470c1.tar.gz
nextcloud-server-4a9c64e96be52243b8fc480242bd90428bc470c1.zip
Only make sure the cache directory exists when we use it
Diffstat (limited to 'lib/private/cache/file.php')
-rw-r--r--lib/private/cache/file.php45
1 files changed, 27 insertions, 18 deletions
diff --git a/lib/private/cache/file.php b/lib/private/cache/file.php
index 4e7c065678e..d321a954bd2 100644
--- a/lib/private/cache/file.php
+++ b/lib/private/cache/file.php
@@ -9,22 +9,31 @@
namespace OC\Cache;
+use OC\Files\Filesystem;
+use OC\Files\View;
+
class File {
protected $storage;
/**
* Returns the cache storage for the logged in user
+ *
* @return \OC\Files\View cache storage
*/
protected function getStorage() {
if (isset($this->storage)) {
return $this->storage;
}
- if(\OC_User::isLoggedIn()) {
- \OC\Files\Filesystem::initMountPoints(\OC_User::getUser());
- $this->storage = new \OC\Files\View('/' . \OC_User::getUser() . '/cache');
+ if (\OC_User::isLoggedIn()) {
+ $rootView = new View();
+ $user = \OC::$server->getUserSession()->getUser();
+ Filesystem::initMountPoints($user->getUID());
+ if (!$rootView->file_exists('/' . $user->getUID() . '/cache')) {
+ $rootView->mkdir('/' . $user->getUID() . '/cache');
+ }
+ $this->storage = new View('/' . $user->getUID() . '/cache');
return $this->storage;
- }else{
+ } else {
\OC_Log::write('core', 'Can\'t get cache storage, user not logged in', \OC_Log::ERROR);
throw new \OC\ForbiddenException('Can\t get cache storage, user not logged in');
}
@@ -66,7 +75,7 @@ class File {
/**
* @param string $key
*/
- public function set($key, $value, $ttl=0) {
+ public function set($key, $value, $ttl = 0) {
$storage = $this->getStorage();
$result = false;
$proxyStatus = \OC_FileProxy::$enabled;
@@ -94,20 +103,20 @@ class File {
*/
public function remove($key) {
$storage = $this->getStorage();
- if(!$storage) {
+ if (!$storage) {
return false;
}
return $storage->unlink($key);
}
- public function clear($prefix='') {
+ public function clear($prefix = '') {
$storage = $this->getStorage();
- if($storage and $storage->is_dir('/')) {
- $dh=$storage->opendir('/');
- if(is_resource($dh)) {
+ if ($storage and $storage->is_dir('/')) {
+ $dh = $storage->opendir('/');
+ if (is_resource($dh)) {
while (($file = readdir($dh)) !== false) {
- if($file!='.' and $file!='..' and ($prefix==='' || strpos($file, $prefix) === 0)) {
- $storage->unlink('/'.$file);
+ if ($file != '.' and $file != '..' and ($prefix === '' || strpos($file, $prefix) === 0)) {
+ $storage->unlink('/' . $file);
}
}
}
@@ -117,17 +126,17 @@ class File {
public function gc() {
$storage = $this->getStorage();
- if($storage and $storage->is_dir('/')) {
+ if ($storage and $storage->is_dir('/')) {
$now = time();
- $dh=$storage->opendir('/');
- if(!is_resource($dh)) {
+ $dh = $storage->opendir('/');
+ if (!is_resource($dh)) {
return null;
}
while (($file = readdir($dh)) !== false) {
- if($file!='.' and $file!='..') {
- $mtime = $storage->filemtime('/'.$file);
+ if ($file != '.' and $file != '..') {
+ $mtime = $storage->filemtime('/' . $file);
if ($mtime < $now) {
- $storage->unlink('/'.$file);
+ $storage->unlink('/' . $file);
}
}
}