| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 | 
							- <?php
 
- require_once(__DIR__.'/../../common.php');
 
- require_once(__DIR__.'/constant.php');
 
- require_once __ROOT__.'/lib/sabre/autoload.php';
 
- 	
 
- global $conf;
 
- 	
 
- $pdo = new PDO('sqlite:'.__ROOT__.'/'.DB_NAME);
 
- $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
 
- // Backends
 
- $authBackend = new Sabre\DAV\Auth\Backend\BasicCallBack(function($userName, $password) {
 
-    
 
- 	$myUser = User::exist($userName, $password,false,false);
 
- 	if(!$myUser){
 
- 		$userManager = new User();
 
- 		$myUser = $userManager->load(array('token'=>$password));
 
- 	}
 
-    
 
-    return $myUser!=false;
 
- });
 
- $principalBackend = new Sabre\DAVACL\PrincipalBackend\PDO($pdo);
 
- $principalBackend->tableName = ENTITY_PREFIX.'plugin_caldav_principals';
 
- $principalBackend->groupMembersTableName = ENTITY_PREFIX.'plugin_caldav_groupmembers';
 
- $calendarBackend = new Sabre\CalDAV\Backend\PDO($pdo);
 
- $calendarBackend->calendarTableName = ENTITY_PREFIX.'plugin_caldav_calendars';
 
- $calendarBackend->calendarObjectTableName = ENTITY_PREFIX.'plugin_caldav_calendarobjects';
 
- $calendarBackend->calendarChangesTableName = ENTITY_PREFIX.'plugin_caldav_calendarchanges';
 
- $calendarBackend->schedulingObjectTableName = ENTITY_PREFIX.'plugin_caldav_schedulingobjects';
 
- $calendarBackend->calendarSubscriptionsTableName = ENTITY_PREFIX.'plugin_caldav_calendarsubscriptions';
 
- // Directory structure
 
- $tree = [
 
-     new Sabre\CalDAV\Principal\Collection($principalBackend),
 
-     new Sabre\CalDAV\CalendarRoot($principalBackend, $calendarBackend),
 
- ];
 
- // The object tree needs in turn to be passed to the server class
 
- $server = new Sabre\DAV\Server($tree);
 
- $server->setBaseUri($conf->get('WEBDAV_CALENDAR_URL'));
 
- // Plugins
 
- $server->addPlugin(new Sabre\DAV\Auth\Plugin($authBackend));
 
- $server->addPlugin(new Sabre\DAVACL\Plugin());
 
- /* CalDAV support */
 
- $caldavPlugin = new Sabre\CalDAV\Plugin();
 
- $server->addPlugin($caldavPlugin);
 
- /* Calendar subscription support */
 
- $server->addPlugin(new Sabre\CalDAV\Subscriptions\Plugin());
 
- /* Calendar scheduling support */
 
- $server->addPlugin(new Sabre\CalDAV\Schedule\Plugin());
 
- /* WebDAV-Sync plugin */
 
- $server->addPlugin(new Sabre\DAV\Sync\Plugin());
 
- // Support for html frontend
 
- $server->addPlugin( new Sabre\DAV\Browser\Plugin());
 
- $server->exec();
 
- ?>
 
 
  |