core/source/main.php
2025-09-09 10:07:53 +00:00

62 lines
1.4 KiB
PHP

<?php
namespace davigil;
require_once('vendor/autoload.php');
require_once('overwrites/principal_backend.php');
require_once('overwrites/auths/_factory.php');
require_once('overwrites/caldav_backend.php');
require_once('sources/_factory.php');
function main(
) : void
{
\davigil\conf\load('conf.json');
// \date_default_timezone_set('Europe/Berlin');
\date_default_timezone_set('UTC');
$source = \davigil\sources\make(\davigil\conf\get()['source']);
$principal_backend = new \davigil\overwrites\class_principle_backend();
$server = new \Sabre\DAV\Server(
[
new \Sabre\CalDAV\Principal\Collection($principal_backend),
new \Sabre\CalDAV\CalendarRoot($principal_backend, new \davigil\overwrites\class_caldav_backend($source)),
]
);
// $server->setBaseUri('/');
$server->addPlugin(
new \Sabre\DAV\Auth\Plugin(
\davigil\overwrites\make_auth_backend(
$source,
\davigil\conf\get()['auth']
)
)
);
/**
* this breaks authentication
*/
// $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();
?>