diff options
-rw-r--r-- | include/RedDAV/RedDirectory.php | 10 | ||||
-rw-r--r-- | include/RedDAV/RedFile.php | 3 | ||||
-rw-r--r-- | include/reddav.php | 10 |
3 files changed, 14 insertions, 9 deletions
diff --git a/include/RedDAV/RedDirectory.php b/include/RedDAV/RedDirectory.php index ee01d4a17..c7921d96f 100644 --- a/include/RedDAV/RedDirectory.php +++ b/include/RedDAV/RedDirectory.php @@ -50,7 +50,7 @@ class RedDirectory extends DAV\Node implements DAV\ICollection, DAV\IQuota { */ public function __construct($ext_path, &$auth_plugin) { // $ext_path = urldecode($ext_path); - //logger('directory ' . $ext_path, LOGGER_DATA); + logger('directory ' . $ext_path, LOGGER_DATA); $this->ext_path = $ext_path; // remove "/cloud" from the beginning of the path $modulename = get_app()->module; @@ -80,7 +80,7 @@ class RedDirectory extends DAV\Node implements DAV\ICollection, DAV\IQuota { * @return array \Sabre\DAV\INode[] */ public function getChildren() { - //logger('children for ' . $this->ext_path, LOGGER_DATA); + logger('children for ' . $this->ext_path, LOGGER_DATA); $this->log(); if (get_config('system', 'block_public') && (! $this->auth->channel_id) && (! $this->auth->observer)) { @@ -370,15 +370,14 @@ class RedDirectory extends DAV\Node implements DAV\ICollection, DAV\IQuota { * @return void */ function getDir() { - //logger($this->ext_path, LOGGER_DEBUG); + + logger('GetDir: ' . $this->ext_path, LOGGER_DEBUG); $this->auth->log(); $modulename = get_app()->module; $file = $this->ext_path; $x = strpos($file, '/' . $modulename); - if ($x === false) - return; if ($x === 0) { $file = substr($file, strlen($modulename) + 1); } @@ -419,7 +418,6 @@ class RedDirectory extends DAV\Node implements DAV\ICollection, DAV\IQuota { dbesc($path_arr[$x]), intval($channel_id) ); - if ($r && intval($r[0]['is_dir'])) { $folder = $r[0]['hash']; if (strlen($os_path)) diff --git a/include/RedDAV/RedFile.php b/include/RedDAV/RedFile.php index b33b30832..31fdb39b2 100644 --- a/include/RedDAV/RedFile.php +++ b/include/RedDAV/RedFile.php @@ -49,7 +49,7 @@ class RedFile extends DAV\Node implements DAV\IFile { $this->data = $data; $this->auth = $auth; - //logger(print_r($this->data, true), LOGGER_DATA); + logger(print_r($this->data, true), LOGGER_DATA); } /** @@ -207,6 +207,7 @@ class RedFile extends DAV\Node implements DAV\IFile { */ public function get() { logger('get file ' . basename($this->name), LOGGER_DEBUG); + logger('os_path: ' . $this->os_path, LOGGER_DATA); $r = q("SELECT data, flags, os_storage, filename, filetype FROM attach WHERE hash = '%s' AND uid = %d LIMIT 1", dbesc($this->data['hash']), diff --git a/include/reddav.php b/include/reddav.php index 76b475ffd..c592597a9 100644 --- a/include/reddav.php +++ b/include/reddav.php @@ -196,6 +196,12 @@ function RedFileData($file, &$auth, $test = false) { if ($x === 0) { $file = substr($file, 6); } + else { + $x = strpos($file,'/dav'); + if($x === 0) + $file = substr($file,4); + } + if ((! $file) || ($file === '/')) { return new RedDAV\RedDirectory('/', $auth); @@ -244,7 +250,7 @@ function RedFileData($file, &$auth, $test = false) { $path = $path . '/' . $r[0]['filename']; } if (! $r) { - $r = q("select id, uid, hash, filename, filetype, filesize, revision, folder, flags, is_dir, created, edited from attach + $r = q("select id, uid, hash, filename, filetype, filesize, revision, folder, flags, is_dir, os_storage, created, edited from attach where folder = '%s' and filename = '%s' and uid = %d $perms order by filename limit 1", dbesc($folder), dbesc(basename($file)), @@ -253,7 +259,7 @@ function RedFileData($file, &$auth, $test = false) { } if (! $r) { $errors = true; - $r = q("select id, uid, hash, filename, filetype, filesize, revision, folder, flags, is_dir, created, edited from attach + $r = q("select id, uid, hash, filename, filetype, filesize, revision, folder, flags, is_dir, os_storage, created, edited from attach where folder = '%s' and filename = '%s' and uid = %d order by filename limit 1", dbesc($folder), dbesc(basename($file)), |