fixed PROPFIND did not return additional properties if path contained special chars like ? or #

This commit is contained in:
Ralf Becker 2012-07-13 15:55:29 +00:00
parent f4724ee3d4
commit 49a90413e4

View File

@ -354,8 +354,18 @@ class vfs_webdav_server extends HTTP_WebDAV_Server_Filesystem
$path2n = array(); $path2n = array();
foreach($files['files'] as $n => $info) foreach($files['files'] as $n => $info)
{ {
// do NOT report /clientsync/.favorites/, as it fails
if (strpos($info['path'],'/clientsync/.favorites/') === 0)
{
unset($files['files'][$n]);
continue;
}
$path = $info['path']; $path = $info['path'];
if (!$n && $info['path'] != '/' && substr($info['path'],-1) == '/') $path = substr($info['path'],0,-1); if (!$n && $info['path'] != '/' && substr($info['path'],-1) == '/') $path = substr($info['path'],0,-1);
// need to encode path again, as $info['path'] is NOT encoded, but egw_vfs::(stat|propfind) require it
// otherwise pathes containing url special chars like ? or # will not stat
$path = egw_vfs::encodePath($path);
$path2n[$path] = $n; $path2n[$path] = $n;
// adding some properties used instead of regular DAV times // adding some properties used instead of regular DAV times
@ -614,7 +624,7 @@ class vfs_webdav_server extends HTTP_WebDAV_Server_Filesystem
{ {
if (($ok = parent::GET($options)) && $this->force_download) if (($ok = parent::GET($options)) && $this->force_download)
{ {
if(html::$user_agent == 'msie') // && self::$ua_version == '5.5') if(html::$user_agent == 'msie' && self::$ua_version < 9.0)
{ {
$attachment = ''; $attachment = '';
} }