summaryrefslogtreecommitdiffstats
path: root/apps/dav/appinfo/v1/carddav.php
diff options
context:
space:
mode:
authorThomas Müller <thomas.mueller@tmit.eu>2016-01-20 21:08:23 +0100
committerThomas Müller <thomas.mueller@tmit.eu>2016-02-08 10:52:30 +0100
commitcca2ade199f09c2e4c2c00c86e776dcc3b51d60f (patch)
tree048d4f64d0de92a12565d1a8111fc1817f7db8cc /apps/dav/appinfo/v1/carddav.php
parent9eef38c5937cf8c8a848a0b78afe8123fb922712 (diff)
downloadnextcloud-server-cca2ade199f09c2e4c2c00c86e776dcc3b51d60f.tar.gz
nextcloud-server-cca2ade199f09c2e4c2c00c86e776dcc3b51d60f.zip
Adding pre oc 9.0 CardDAV endpoint for migration of old clients
Diffstat (limited to 'apps/dav/appinfo/v1/carddav.php')
-rw-r--r--apps/dav/appinfo/v1/carddav.php70
1 files changed, 70 insertions, 0 deletions
diff --git a/apps/dav/appinfo/v1/carddav.php b/apps/dav/appinfo/v1/carddav.php
new file mode 100644
index 00000000000..e0c79c75b72
--- /dev/null
+++ b/apps/dav/appinfo/v1/carddav.php
@@ -0,0 +1,70 @@
+<?php
+/**
+ * @author Thomas Müller <thomas.mueller@tmit.eu>
+ *
+ * @copyright Copyright (c) 2016, ownCloud, Inc.
+ * @license AGPL-3.0
+ *
+ * This code is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License, version 3,
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License, version 3,
+ * along with this program. If not, see <http://www.gnu.org/licenses/>
+ *
+ */
+
+// Backends
+use OCA\DAV\CardDAV\AddressBookRoot;
+use OCA\DAV\CardDAV\CardDavBackend;
+use OCA\DAV\Connector\Sabre\AppEnabledPlugin;
+use OCA\DAV\Connector\Sabre\Auth;
+use OCA\DAV\Connector\Sabre\ExceptionLoggerPlugin;
+use OCA\DAV\Connector\Sabre\MaintenancePlugin;
+use OCA\DAV\Connector\Sabre\Principal;
+use Sabre\CardDAV\Plugin;
+
+$authBackend = new Auth(
+ \OC::$server->getSession(),
+ \OC::$server->getUserSession(),
+ 'principals/'
+);
+$principalBackend = new Principal(
+ \OC::$server->getUserManager(),
+ \OC::$server->getGroupManager(),
+ 'principals/'
+);
+$db = \OC::$server->getDatabaseConnection();
+$cardDavBackend = new CardDavBackend($db, $principalBackend);
+
+// Root nodes
+$principalCollection = new \Sabre\CalDAV\Principal\Collection($principalBackend);
+$principalCollection->disableListing = true; // Disable listing
+
+$addressBookRoot = new AddressBookRoot($principalBackend, $cardDavBackend);
+$addressBookRoot->disableListing = true; // Disable listing
+
+$nodes = array(
+ $principalCollection,
+ $addressBookRoot,
+);
+
+// Fire up server
+$server = new \Sabre\DAV\Server($nodes);
+$server->httpRequest->setUrl(\OC::$server->getRequest()->getRequestUri());
+$server->setBaseUri($baseuri);
+// Add plugins
+$server->addPlugin(new MaintenancePlugin());
+$server->addPlugin(new \Sabre\DAV\Auth\Plugin($authBackend, 'ownCloud'));
+$server->addPlugin(new Plugin());
+$server->addPlugin(new \Sabre\DAVACL\Plugin());
+$server->addPlugin(new \Sabre\CardDAV\VCFExportPlugin());
+$server->addPlugin(new ExceptionLoggerPlugin('carddav', \OC::$server->getLogger()));
+
+// And off we go!
+$server->exec();