diff options
Diffstat (limited to 'Zotlabs')
-rw-r--r-- | Zotlabs/Module/Cloud.php | 1 | ||||
-rw-r--r-- | Zotlabs/Module/Dav.php | 113 | ||||
-rw-r--r-- | Zotlabs/Storage/BasicAuth.php | 4 | ||||
-rw-r--r-- | Zotlabs/Storage/Browser.php | 10 |
4 files changed, 69 insertions, 59 deletions
diff --git a/Zotlabs/Module/Cloud.php b/Zotlabs/Module/Cloud.php index 5f40f4af1..f3767e3f0 100644 --- a/Zotlabs/Module/Cloud.php +++ b/Zotlabs/Module/Cloud.php @@ -90,7 +90,6 @@ class Cloud extends \Zotlabs\Web\Controller { } } - // require_once('\Zotlabs/Storage/Browser.php'); // provide a directory view for the cloud in Hubzilla $browser = new \Zotlabs\Storage\Browser($auth); $auth->setBrowserPlugin($browser); diff --git a/Zotlabs/Module/Dav.php b/Zotlabs/Module/Dav.php index 9af059974..549c992cc 100644 --- a/Zotlabs/Module/Dav.php +++ b/Zotlabs/Module/Dav.php @@ -60,38 +60,53 @@ class Dav extends \Zotlabs\Web\Controller { if ($which) profile_load($a, $which, $profile); + + + $auth = new \Zotlabs\Storage\BasicAuth(); - - $ob_hash = get_observer_hash(); - - if ($ob_hash) { - if (local_channel()) { - $channel = \App::get_channel(); - $auth->setCurrentUser($channel['channel_address']); - $auth->channel_id = $channel['channel_id']; - $auth->channel_hash = $channel['channel_hash']; - $auth->channel_account_id = $channel['channel_account_id']; - if($channel['channel_timezone']) - $auth->setTimezone($channel['channel_timezone']); - } - $auth->observer = $ob_hash; - } - - if ($_GET['davguest']) - $_SESSION['davguest'] = true; - - $_SERVER['QUERY_STRING'] = str_replace(array('?f=', '&f='), array('', ''), $_SERVER['QUERY_STRING']); - $_SERVER['QUERY_STRING'] = strip_zids($_SERVER['QUERY_STRING']); - $_SERVER['QUERY_STRING'] = preg_replace('/[\?&]davguest=(.*?)([\?&]|$)/ism', '', $_SERVER['QUERY_STRING']); - - $_SERVER['REQUEST_URI'] = str_replace(array('?f=', '&f='), array('', ''), $_SERVER['REQUEST_URI']); - $_SERVER['REQUEST_URI'] = strip_zids($_SERVER['REQUEST_URI']); - $_SERVER['REQUEST_URI'] = preg_replace('/[\?&]davguest=(.*?)([\?&]|$)/ism', '', $_SERVER['REQUEST_URI']); + +// $authBackend = new \Sabre\DAV\Auth\Backend\BasicCallBack(function($userName,$password) { +// if(account_verify_password($userName,$password)) +// return true; +// return false; +// }); + +// $ob_hash = get_observer_hash(); + +// if ($ob_hash) { +// if (local_channel()) { +// $channel = \App::get_channel(); +// $auth->setCurrentUser($channel['channel_address']); +// $auth->channel_id = $channel['channel_id']; +// $auth->channel_hash = $channel['channel_hash']; +// $auth->channel_account_id = $channel['channel_account_id']; +// if($channel['channel_timezone']) +// $auth->setTimezone($channel['channel_timezone']); +// } +// $auth->observer = $ob_hash; +// } + +// if ($_GET['davguest']) +// $_SESSION['davguest'] = true; + +// $_SERVER['QUERY_STRING'] = str_replace(array('?f=', '&f='), array('', ''), $_SERVER['QUERY_STRING']); +// $_SERVER['QUERY_STRING'] = strip_zids($_SERVER['QUERY_STRING']); +// $_SERVER['QUERY_STRING'] = preg_replace('/[\?&]davguest=(.*?)([\?&]|$)/ism', '', $_SERVER['QUERY_STRING']); +// +// $_SERVER['REQUEST_URI'] = str_replace(array('?f=', '&f='), array('', ''), $_SERVER['REQUEST_URI']); +// $_SERVER['REQUEST_URI'] = strip_zids($_SERVER['REQUEST_URI']); +// $_SERVER['REQUEST_URI'] = preg_replace('/[\?&]davguest=(.*?)([\?&]|$)/ism', '', $_SERVER['REQUEST_URI']); $rootDirectory = new \Zotlabs\Storage\Directory('/', $auth); // A SabreDAV server-object $server = new SDAV\Server($rootDirectory); + + + $authPlugin = new \Sabre\DAV\Auth\Plugin($auth); + $server->addPlugin($authPlugin); + + // prevent overwriting changes each other with a lock backend $lockBackend = new SDAV\Locks\Backend\File('store/[data]/locks'); $lockPlugin = new SDAV\Locks\Plugin($lockBackend); @@ -108,29 +123,29 @@ class Dav extends \Zotlabs\Web\Controller { // In order to avoid prompting for passwords for viewing a DIRECTORY, add // the URL query parameter 'davguest=1'. - $isapublic_file = false; - $davguest = ((x($_SESSION, 'davguest')) ? true : false); - - if ((! $auth->observer) && ($_SERVER['REQUEST_METHOD'] === 'GET')) { - try { - $x = RedFileData('/' . \App::$cmd, $auth); - if($x instanceof \Zotlabs\Storage\File) - $isapublic_file = true; - } - catch (Exception $e) { - $isapublic_file = false; - } - } - - if ((! $auth->observer) && (! $isapublic_file) && (! $davguest)) { - try { - $auth->Authenticate($server, t('$Projectname channel')); - } - catch (Exception $e) { - logger('mod_cloud: auth exception' . $e->getMessage()); - http_status_exit($e->getHTTPCode(), $e->getMessage()); - } - } +// $isapublic_file = false; +// $davguest = ((x($_SESSION, 'davguest')) ? true : false); + +// if ((! $auth->observer) && ($_SERVER['REQUEST_METHOD'] === 'GET')) { +// try { +// $x = RedFileData('/' . \App::$cmd, $auth); +// if($x instanceof \Zotlabs\Storage\File) +// $isapublic_file = true; +// } +// catch (Exception $e) { +// $isapublic_file = false; +// } +// } + +// if ((! $auth->observer) && (! $isapublic_file) && (! $davguest)) { +// try { +// $auth->Authenticate($server, t('$Projectname channel')); +// } +// catch (Exception $e) { +// logger('mod_cloud: auth exception' . $e->getMessage()); +// http_status_exit($e->getHTTPCode(), $e->getMessage()); +// } +// } // require_once('Zotlabs/Storage/Browser.php'); // provide a directory view for the cloud in Hubzilla diff --git a/Zotlabs/Storage/BasicAuth.php b/Zotlabs/Storage/BasicAuth.php index 637cd222f..da5af7659 100644 --- a/Zotlabs/Storage/BasicAuth.php +++ b/Zotlabs/Storage/BasicAuth.php @@ -84,10 +84,6 @@ class BasicAuth extends DAV\Auth\Backend\AbstractBasic { * @return bool */ protected function validateUserPass($username, $password) { - if (trim($password) === '+++') { - logger('guest: ' . $username); - return true; - } require_once('include/auth.php'); $record = account_verify_password($username, $password); diff --git a/Zotlabs/Storage/Browser.php b/Zotlabs/Storage/Browser.php index 294baaa28..ca262b739 100644 --- a/Zotlabs/Storage/Browser.php +++ b/Zotlabs/Storage/Browser.php @@ -101,8 +101,8 @@ class Browser extends DAV\Browser\Plugin { $parentpath = array(); // only show parent if not leaving /cloud/; TODO how to improve this? if ($path && $path != "cloud") { - list($parentUri) = DAV\URLUtil::splitPath($path); - $fullPath = DAV\URLUtil::encodePath($this->server->getBaseUri() . $parentUri); + list($parentUri) = \Sabre\HTTP\URLUtil::splitPath($path); + $fullPath = \Sabre\HTTP\URLUtil::encodePath($this->server->getBaseUri() . $parentUri); $parentpath['icon'] = $this->enableAssets ? '<a href="' . $fullPath . '"><img src="' . $this->getAssetUrl('icons/parent' . $this->iconExtension) . '" width="24" alt="' . t('parent') . '"></a>' : ''; $parentpath['path'] = $fullPath; @@ -116,7 +116,7 @@ class Browser extends DAV\Browser\Plugin { // This is the current directory, we can skip it if (rtrim($file['href'],'/') == $path) continue; - list(, $name) = DAV\URLUtil::splitPath($file['href']); + list(, $name) = \Sabre\HTTP\URLUtil::splitPath($file['href']); if (isset($file[200]['{DAV:}resourcetype'])) { $type = $file[200]['{DAV:}resourcetype']->getValue(); @@ -166,7 +166,7 @@ class Browser extends DAV\Browser\Plugin { $size = isset($file[200]['{DAV:}getcontentlength']) ? (int)$file[200]['{DAV:}getcontentlength'] : ''; $lastmodified = ((isset($file[200]['{DAV:}getlastmodified'])) ? $file[200]['{DAV:}getlastmodified']->getTime()->format('Y-m-d H:i:s') : ''); - $fullPath = DAV\URLUtil::encodePath('/' . trim($this->server->getBaseUri() . ($path ? $path . '/' : '') . $name, '/')); + $fullPath = \Sabre\HTTP\URLUtil::encodePath('/' . trim($this->server->getBaseUri() . ($path ? $path . '/' : '') . $name, '/')); $displayName = isset($file[200]['{DAV:}displayname']) ? $file[200]['{DAV:}displayname'] : $name; @@ -219,7 +219,7 @@ class Browser extends DAV\Browser\Plugin { $output = ''; if ($this->enablePost) { - $this->server->broadcastEvent('onHTMLActionsPanel', array($parent, &$output)); + $this->server->emit('onHTMLActionsPanel', array($parent, &$output)); } $html .= replace_macros(get_markup_template('cloud.tpl'), array( |