. * */ require_once('lib/base.php'); // Backends we always need (auth, principal and files) $backends = array( 'auth' => new OC_Connector_Sabre_Auth(), 'principal' => new OC_Connector_Sabre_Principal() ); // Root nodes $nodes = array( new Sabre_CalDAV_Principal_Collection($backends['principal']) ); // Plugins $plugins = array( new Sabre_DAV_Auth_Plugin($backends['auth'],'ownCloud'), new Sabre_DAVACL_Plugin(), new Sabre_DAV_Browser_Plugin(false) // Show something in the Browser, but no upload ); // Load the plugins etc we need for usual file sharing $backends['lock'] = new OC_Connector_Sabre_Locks(); $plugins[] = new Sabre_DAV_Locks_Plugin($backends['lock']); // Add a RESTful user directory // /files/$username/ if( OC_User::isLoggedIn()){ $currentuser = OC_User::getUser(); $files = new Sabre_DAV_SimpleCollection('files'); foreach( OC_User::getUsers() as $username ){ if( $username == $currentuser ){ $public = new OC_Connector_Sabre_Directory('.'); $files->addChild( new Sabre_DAV_SimpleCollection( $username, $public->getChildren())); } else{ $files->addChild(new Sabre_DAV_SimpleCollection( $username )); } } $nodes[] = $files; } // Get the other plugins and nodes OC_Hook::emit( 'OC_DAV', 'initialize', array( 'backends' => &$backends, 'nodes' => &$nodes, 'plugins' => &$plugins )); // Fire up server $server = new Sabre_DAV_Server($nodes); $server->setBaseUri(OC::$WEBROOT.'/dav.php'); // Load additional plugins foreach( $plugins as &$plugin ){ $server->addPlugin( $plugin ); } unset( $plugin ); // Always do this after foreach with references! // And off we go! $server->exec();