settings->timezone); /** * @todo nicht einfach die source names als keys verwenden … */ $sources = []; foreach (\davina\conf\get()->sources as $source_raw) { $sources[$source_raw->name] = \davina\sources\make( $source_raw->kind, $source_raw->data ); } $principal_backend = new \davina\overwrites\class_principle_backend($sources); $server = new \Sabre\DAV\Server( [ new \Sabre\CalDAV\Principal\Collection( $principal_backend ), new \Sabre\CalDAV\CalendarRoot( $principal_backend, new \davina\overwrites\class_caldav_backend($sources) ), ] ); // $server->setBaseUri('/'); $server->addPlugin( new \Sabre\DAV\Auth\Plugin( new \davina\overwrites\class_auth_backend_basic( $sources ) ) ); /** * this somehow breaks authentication, but seems to be required for calendar discovery */ // $server->addPlugin(new \Sabre\DAVACL\Plugin()); $server->addPlugin(new \Sabre\CalDAV\Plugin()); $server->addPlugin(new \Sabre\CalDAV\Subscriptions\Plugin()); $server->addPlugin(new \Sabre\CalDAV\Schedule\Plugin()); $server->addPlugin(new \Sabre\DAV\Sync\Plugin()); $server->addPlugin(new \Sabre\DAV\Sharing\Plugin()); $server->addPlugin(new \Sabre\CalDAV\SharingPlugin()); /** * not required */ $server->addPlugin(new \Sabre\DAV\Browser\Plugin()); $server->start(); } main(); ?>