summaryrefslogtreecommitdiffstats
path: root/lib/private
diff options
context:
space:
mode:
authorMorris Jobke <hey@morrisjobke.de>2015-03-11 16:49:24 +0100
committerMorris Jobke <hey@morrisjobke.de>2015-03-11 16:49:24 +0100
commit82254ad5efb65e8650567f49343ec37eb55e2f3e (patch)
treecff7ae5f85d05e3b92796288d3cdaec05eb87e9c /lib/private
parent73dc02d42c385cc451eb65d0aaf6ec06eaceb6a6 (diff)
parent4a9c64e96be52243b8fc480242bd90428bc470c1 (diff)
downloadnextcloud-server-82254ad5efb65e8650567f49343ec37eb55e2f3e.tar.gz
nextcloud-server-82254ad5efb65e8650567f49343ec37eb55e2f3e.zip
Merge pull request #13893 from owncloud/create-cachedir-on-user
Only make sure the cache directory exists when we use it
Diffstat (limited to 'lib/private')
-rw-r--r--lib/private/cache/file.php45
-rw-r--r--lib/private/files/filesystem.php9
2 files changed, 28 insertions, 26 deletions
diff --git a/lib/private/cache/file.php b/lib/private/cache/file.php
index 3b500c4e45b..6fa7686ea96 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);
}
}
}
diff --git a/lib/private/files/filesystem.php b/lib/private/files/filesystem.php
index 04f82d88cd1..c3a062cd2d6 100644
--- a/lib/private/files/filesystem.php
+++ b/lib/private/files/filesystem.php
@@ -395,14 +395,7 @@ class Filesystem {
*/
private static function mountCacheDir($user) {
$cacheBaseDir = \OC_Config::getValue('cache_path', '');
- if ($cacheBaseDir === '') {
- // use local cache dir relative to the user's home
- $subdir = 'cache';
- $view = new \OC\Files\View('/' . $user);
- if(!$view->file_exists($subdir)) {
- $view->mkdir($subdir);
- }
- } else {
+ if ($cacheBaseDir !== '') {
$cacheDir = rtrim($cacheBaseDir, '/') . '/' . $user;
if (!file_exists($cacheDir)) {
mkdir($cacheDir, 0770, true);