1<?php 2/** 3 * @package tikiwiki 4 */ 5// (c) Copyright by authors of the Tiki Wiki CMS Groupware Project 6// 7// All Rights Reserved. See copyright.txt for details and a complete list of authors. 8// Licensed under the GNU LESSER GENERAL PUBLIC LICENSE. See license.txt for details. 9// $Id$ 10 11use Sabre\DAV; 12use Sabre\CalDAV; 13use Sabre\DAVACL; 14use Tiki\SabreDav\BasicAuth; 15use Tiki\SabreDav\CalDAVBackend; 16use Tiki\SabreDav\PrincipalBackend; 17use Tiki\SabreDav\AclPlugin; 18 19require_once 'tiki-setup.php'; 20$access->check_feature('feature_calendar'); 21include_once('lib/calendar/calrecurrence.php'); 22 23// Backends 24$authBackend = new BasicAuth(); 25$principalBackend = new PrincipalBackend(); 26$calendarBackend = new CalDAVBackend(); 27 28// Directory tree 29$tree = array( 30 new DAVACL\PrincipalCollection($principalBackend), 31 new CalDAV\CalendarRoot($principalBackend, $calendarBackend) 32); 33 34// The object tree needs in turn to be passed to the server class 35$server = new DAV\Server($tree); 36$server->setBaseUri($tikiroot.'tiki-caldav.php'); 37 38// Authentication plugin 39$authPlugin = new DAV\Auth\Plugin($authBackend); 40$server->addPlugin($authPlugin); 41 42// CalDAV plugin 43$caldavPlugin = new CalDAV\Plugin(); 44$server->addPlugin($caldavPlugin); 45 46// CalDAV addons 47$server->addPlugin(new CalDAV\Schedule\Plugin()); 48$server->addPlugin(new DAV\Sharing\Plugin()); 49$server->addPlugin(new CalDAV\SharingPlugin()); 50$server->addPlugin(new CalDAV\ICSExportPlugin()); 51 52// ACL plugin 53$aclPlugin = new AclPlugin(); 54$aclPlugin->allowUnauthenticatedAccess = false; 55$server->addPlugin($aclPlugin); 56 57// Support for html frontend 58$browser = new DAV\Browser\Plugin(); 59$server->addPlugin($browser); 60 61// And off we go! 62$server->exec(); 63