aboutsummaryrefslogtreecommitdiffstats
path: root/vendor/sabre/dav/examples
diff options
context:
space:
mode:
authorfriendica <info@friendica.com>2013-10-21 15:46:31 -0700
committerfriendica <info@friendica.com>2013-10-21 15:46:31 -0700
commitb35122f7a6ad42756c35bb60ba1f06c3dcd45c77 (patch)
treeccdf373ce6475d264778523259cc32899b732fe7 /vendor/sabre/dav/examples
parente3504df514d306cfe6b83e44a11f550664564af4 (diff)
downloadvolse-hubzilla-b35122f7a6ad42756c35bb60ba1f06c3dcd45c77.tar.gz
volse-hubzilla-b35122f7a6ad42756c35bb60ba1f06c3dcd45c77.tar.bz2
volse-hubzilla-b35122f7a6ad42756c35bb60ba1f06c3dcd45c77.zip
add sabre (1.8.x) via composer in the !@#$ place it wants to be
Diffstat (limited to 'vendor/sabre/dav/examples')
-rw-r--r--vendor/sabre/dav/examples/addressbookserver.php56
-rw-r--r--vendor/sabre/dav/examples/basicauth.php26
-rw-r--r--vendor/sabre/dav/examples/digestauth.php25
-rw-r--r--vendor/sabre/dav/examples/simplefsserver.php123
-rw-r--r--vendor/sabre/dav/examples/sql/mysql.addressbook.sql18
-rw-r--r--vendor/sabre/dav/examples/sql/mysql.calendars.sql28
-rw-r--r--vendor/sabre/dav/examples/sql/mysql.locks.sql13
-rw-r--r--vendor/sabre/dav/examples/sql/mysql.principals.sql22
-rw-r--r--vendor/sabre/dav/examples/sql/mysql.users.sql9
-rw-r--r--vendor/sabre/dav/examples/sql/pgsql.addressbook.sql33
-rw-r--r--vendor/sabre/dav/examples/sql/pgsql.calendars.sql42
-rw-r--r--vendor/sabre/dav/examples/sql/pgsql.locks.sql13
-rw-r--r--vendor/sabre/dav/examples/sql/pgsql.principals.sql40
-rw-r--r--vendor/sabre/dav/examples/sql/pgsql.users.sql15
-rw-r--r--vendor/sabre/dav/examples/sql/sqlite.addressbooks.sql17
-rw-r--r--vendor/sabre/dav/examples/sql/sqlite.calendars.sql26
-rw-r--r--vendor/sabre/dav/examples/sql/sqlite.locks.sql12
-rw-r--r--vendor/sabre/dav/examples/sql/sqlite.principals.sql21
-rw-r--r--vendor/sabre/dav/examples/sql/sqlite.users.sql9
-rw-r--r--vendor/sabre/dav/examples/webserver/apache2_htaccess.conf16
-rw-r--r--vendor/sabre/dav/examples/webserver/apache2_vhost.conf33
-rw-r--r--vendor/sabre/dav/examples/webserver/apache2_vhost_cgi.conf21
22 files changed, 618 insertions, 0 deletions
diff --git a/vendor/sabre/dav/examples/addressbookserver.php b/vendor/sabre/dav/examples/addressbookserver.php
new file mode 100644
index 000000000..b8986bc41
--- /dev/null
+++ b/vendor/sabre/dav/examples/addressbookserver.php
@@ -0,0 +1,56 @@
+<?php
+
+/*
+
+Addressbook/CardDAV server example
+
+This server features CardDAV support
+
+*/
+
+// settings
+date_default_timezone_set('Canada/Eastern');
+
+// Make sure this setting is turned on and reflect the root url for your WebDAV server.
+// This can be for example the root / or a complete path to your server script
+$baseUri = '/';
+
+/* Database */
+$pdo = new PDO('sqlite:data/db.sqlite');
+$pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
+
+//Mapping PHP errors to exceptions
+function exception_error_handler($errno, $errstr, $errfile, $errline ) {
+ throw new ErrorException($errstr, 0, $errno, $errfile, $errline);
+}
+set_error_handler("exception_error_handler");
+
+// Autoloader
+require_once 'vendor/autoload.php';
+
+// Backends
+$authBackend = new Sabre\DAV\Auth\Backend\PDO($pdo);
+$principalBackend = new Sabre\DAVACL\PrincipalBackend\PDO($pdo);
+$carddavBackend = new Sabre\CardDAV\Backend\PDO($pdo);
+//$caldavBackend = new Sabre\CalDAV\Backend\PDO($pdo);
+
+// Setting up the directory tree //
+$nodes = array(
+ new Sabre\DAVACL\PrincipalCollection($principalBackend),
+// new Sabre\CalDAV\CalendarRootNode($authBackend, $caldavBackend),
+ new Sabre\CardDAV\AddressBookRoot($principalBackend, $carddavBackend),
+);
+
+// The object tree needs in turn to be passed to the server class
+$server = new Sabre\DAV\Server($nodes);
+$server->setBaseUri($baseUri);
+
+// Plugins
+$server->addPlugin(new Sabre\DAV\Auth\Plugin($authBackend,'SabreDAV'));
+$server->addPlugin(new Sabre\DAV\Browser\Plugin());
+//$server->addPlugin(new Sabre\CalDAV\Plugin());
+$server->addPlugin(new Sabre\CardDAV\Plugin());
+$server->addPlugin(new Sabre\DAVACL\Plugin());
+
+// And off we go!
+$server->exec();
diff --git a/vendor/sabre/dav/examples/basicauth.php b/vendor/sabre/dav/examples/basicauth.php
new file mode 100644
index 000000000..743c07ce2
--- /dev/null
+++ b/vendor/sabre/dav/examples/basicauth.php
@@ -0,0 +1,26 @@
+<?php
+
+// !!!! Make sure the Sabre directory is in the include_path !!!
+// example:
+// set_include_path('lib/' . PATH_SEPARATOR . get_include_path());
+
+// settings
+date_default_timezone_set('Canada/Eastern');
+
+// Files we need
+require_once 'vendor/autoload.php';
+
+$u = 'admin';
+$p = '1234';
+
+$auth = new \Sabre\HTTP\BasicAuth();
+
+$result = $auth->getUserPass();
+
+if (!$result || $result[0]!=$u || $result[1]!=$p) {
+
+ $auth->requireLogin();
+ echo "Authentication required\n";
+ die();
+
+}
diff --git a/vendor/sabre/dav/examples/digestauth.php b/vendor/sabre/dav/examples/digestauth.php
new file mode 100644
index 000000000..1f4a74b44
--- /dev/null
+++ b/vendor/sabre/dav/examples/digestauth.php
@@ -0,0 +1,25 @@
+<?php
+
+// !!!! Make sure the Sabre directory is in the include_path !!!
+// example:
+// set_include_path('lib/' . PATH_SEPARATOR . get_include_path());
+
+// settings
+date_default_timezone_set('Canada/Eastern');
+
+// Files we need
+require_once 'vendor/autoload.php';
+
+$u = 'admin';
+$p = '1234';
+
+$auth = new \Sabre\HTTP\DigestAuth();
+$auth->init();
+
+if ($auth->getUsername() != $u || !$auth->validatePassword($p)) {
+
+ $auth->requireLogin();
+ echo "Authentication required\n";
+ die();
+
+}
diff --git a/vendor/sabre/dav/examples/simplefsserver.php b/vendor/sabre/dav/examples/simplefsserver.php
new file mode 100644
index 000000000..f1b4a1100
--- /dev/null
+++ b/vendor/sabre/dav/examples/simplefsserver.php
@@ -0,0 +1,123 @@
+<?php
+
+// !!!! Make sure the Sabre directory is in the include_path !!!
+// example:
+// set_include_path('lib/' . PATH_SEPARATOR . get_include_path());
+
+/*
+
+This example demonstrates a simple way to create your own virtual filesystems.
+By extending the _File and Directory classes, you can easily create a tree
+based on various datasources.
+
+The most obvious example is the filesystem itself. A more complete and documented
+example can be found in:
+
+lib/Sabre/DAV/FS/Node.php
+lib/Sabre/DAV/FS/Directory.php
+lib/Sabre/DAV/FS/File.php
+
+*/
+
+// settings
+date_default_timezone_set('Canada/Eastern');
+$publicDir = 'public';
+
+// Files we need
+require_once 'vendor/autoload.php';
+
+class MyCollection extends Sabre\DAV\Collection {
+
+ private $myPath;
+
+ function __construct($myPath) {
+
+ $this->myPath = $myPath;
+
+ }
+
+ function getChildren() {
+
+ $children = array();
+ // Loop through the directory, and create objects for each node
+ foreach(scandir($this->myPath) as $node) {
+
+ // Ignoring files staring with .
+ if ($node[0]==='.') continue;
+
+ $children[] = $this->getChild($node);
+
+ }
+
+ return $children;
+
+ }
+
+ function getChild($name) {
+
+ $path = $this->myPath . '/' . $name;
+
+ // We have to throw a NotFound exception if the file didn't exist
+ if (!file\exists($this->myPath)) throw new \Sabre\DAV\Exception\NotFound('The file with name: ' . $name . ' could not be found');
+ // Some added security
+
+ if ($name[0]=='.') throw new \Sabre\DAV\Exception\Forbidden('Access denied');
+
+ if (is_dir($path)) {
+
+ return new \MyCollection($name);
+
+ } else {
+
+ return new \MyFile($path);
+
+ }
+
+ }
+
+ function getName() {
+
+ return basename($this->myPath);
+
+ }
+
+}
+
+class MyFile extends \Sabre\DAV\File {
+
+ private $myPath;
+
+ function __construct($myPath) {
+
+ $this->myPath = $myPath;
+
+ }
+
+ function getName() {
+
+ return basename($this->myPath);
+
+ }
+
+ function get() {
+
+ return fopen($this->myPath,'r');
+
+ }
+
+ function getSize() {
+
+ return filesize($this->myPath);
+
+ }
+
+}
+
+// Make sure there is a directory in your current directory named 'public'. We will be exposing that directory to WebDAV
+$rootNode = new \MyCollection($publicDir);
+
+// The rootNode needs to be passed to the server object.
+$server = new \Sabre\DAV\Server($rootNode);
+
+// And off we go!
+$server->exec();
diff --git a/vendor/sabre/dav/examples/sql/mysql.addressbook.sql b/vendor/sabre/dav/examples/sql/mysql.addressbook.sql
new file mode 100644
index 000000000..f603ad4c5
--- /dev/null
+++ b/vendor/sabre/dav/examples/sql/mysql.addressbook.sql
@@ -0,0 +1,18 @@
+CREATE TABLE addressbooks (
+ id INT(11) UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
+ principaluri VARCHAR(255),
+ displayname VARCHAR(255),
+ uri VARCHAR(200),
+ description TEXT,
+ ctag INT(11) UNSIGNED NOT NULL DEFAULT '1',
+ UNIQUE(principaluri, uri)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+
+CREATE TABLE cards (
+ id INT(11) UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
+ addressbookid INT(11) UNSIGNED NOT NULL,
+ carddata MEDIUMBLOB,
+ uri VARCHAR(200),
+ lastmodified INT(11) UNSIGNED
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+
diff --git a/vendor/sabre/dav/examples/sql/mysql.calendars.sql b/vendor/sabre/dav/examples/sql/mysql.calendars.sql
new file mode 100644
index 000000000..a8eb102d1
--- /dev/null
+++ b/vendor/sabre/dav/examples/sql/mysql.calendars.sql
@@ -0,0 +1,28 @@
+CREATE TABLE calendarobjects (
+ id INTEGER UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
+ calendardata MEDIUMBLOB,
+ uri VARCHAR(200),
+ calendarid INTEGER UNSIGNED NOT NULL,
+ lastmodified INT(11) UNSIGNED,
+ etag VARCHAR(32),
+ size INT(11) UNSIGNED NOT NULL,
+ componenttype VARCHAR(8),
+ firstoccurence INT(11) UNSIGNED,
+ lastoccurence INT(11) UNSIGNED,
+ UNIQUE(calendarid, uri)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+
+CREATE TABLE calendars (
+ id INTEGER UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
+ principaluri VARCHAR(100),
+ displayname VARCHAR(100),
+ uri VARCHAR(200),
+ ctag INTEGER UNSIGNED NOT NULL DEFAULT '0',
+ description TEXT,
+ calendarorder INTEGER UNSIGNED NOT NULL DEFAULT '0',
+ calendarcolor VARCHAR(10),
+ timezone TEXT,
+ components VARCHAR(20),
+ transparent TINYINT(1) NOT NULL DEFAULT '0',
+ UNIQUE(principaluri, uri)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
diff --git a/vendor/sabre/dav/examples/sql/mysql.locks.sql b/vendor/sabre/dav/examples/sql/mysql.locks.sql
new file mode 100644
index 000000000..cf3caf4f7
--- /dev/null
+++ b/vendor/sabre/dav/examples/sql/mysql.locks.sql
@@ -0,0 +1,13 @@
+CREATE TABLE locks (
+ id INTEGER UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
+ owner VARCHAR(100),
+ timeout INTEGER UNSIGNED,
+ created INTEGER,
+ token VARCHAR(100),
+ scope TINYINT,
+ depth TINYINT,
+ uri VARCHAR(1000),
+ INDEX(token),
+ INDEX(uri)
+);
+
diff --git a/vendor/sabre/dav/examples/sql/mysql.principals.sql b/vendor/sabre/dav/examples/sql/mysql.principals.sql
new file mode 100644
index 000000000..da9282818
--- /dev/null
+++ b/vendor/sabre/dav/examples/sql/mysql.principals.sql
@@ -0,0 +1,22 @@
+CREATE TABLE principals (
+ id INTEGER UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
+ uri VARCHAR(200) NOT NULL,
+ email VARCHAR(80),
+ displayname VARCHAR(80),
+ vcardurl VARCHAR(255),
+ UNIQUE(uri)
+);
+
+CREATE TABLE groupmembers (
+ id INTEGER UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
+ principal_id INTEGER UNSIGNED NOT NULL,
+ member_id INTEGER UNSIGNED NOT NULL,
+ UNIQUE(principal_id, member_id)
+);
+
+
+INSERT INTO principals (uri,email,displayname) VALUES
+('principals/admin', 'admin@example.org','Administrator'),
+('principals/admin/calendar-proxy-read', null, null),
+('principals/admin/calendar-proxy-write', null, null);
+
diff --git a/vendor/sabre/dav/examples/sql/mysql.users.sql b/vendor/sabre/dav/examples/sql/mysql.users.sql
new file mode 100644
index 000000000..1244f596f
--- /dev/null
+++ b/vendor/sabre/dav/examples/sql/mysql.users.sql
@@ -0,0 +1,9 @@
+CREATE TABLE users (
+ id INTEGER UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
+ username VARCHAR(50),
+ digesta1 VARCHAR(32),
+ UNIQUE(username)
+);
+
+INSERT INTO users (username,digesta1) VALUES
+('admin', '87fd274b7b6c01e48d7c2f965da8ddf7');
diff --git a/vendor/sabre/dav/examples/sql/pgsql.addressbook.sql b/vendor/sabre/dav/examples/sql/pgsql.addressbook.sql
new file mode 100644
index 000000000..c3ca8b291
--- /dev/null
+++ b/vendor/sabre/dav/examples/sql/pgsql.addressbook.sql
@@ -0,0 +1,33 @@
+CREATE TABLE addressbooks (
+ id SERIAL NOT NULL,
+ principaluri VARCHAR(255),
+ displayname VARCHAR(255),
+ uri VARCHAR(200),
+ description TEXT,
+ ctag INTEGER NOT NULL DEFAULT 1
+);
+
+ALTER TABLE ONLY addressbooks
+ ADD CONSTRAINT addressbooks_pkey PRIMARY KEY (id);
+
+CREATE UNIQUE INDEX addressbooks_ukey
+ ON addressbooks USING btree (principaluri, uri);
+
+CREATE TABLE cards (
+ id SERIAL NOT NULL,
+ addressbookid INTEGER NOT NULL,
+ carddata TEXT,
+ uri VARCHAR(200),
+ lastmodified INTEGER
+);
+
+ALTER TABLE ONLY cards
+ ADD CONSTRAINT cards_pkey PRIMARY KEY (id);
+
+CREATE UNIQUE INDEX cards_ukey
+ ON cards USING btree (addressbookid, uri);
+
+ALTER TABLE ONLY cards
+ ADD CONSTRAINT cards_addressbookid_fkey FOREIGN KEY (addressbookid) REFERENCES addressbooks(id)
+ ON DELETE CASCADE;
+
diff --git a/vendor/sabre/dav/examples/sql/pgsql.calendars.sql b/vendor/sabre/dav/examples/sql/pgsql.calendars.sql
new file mode 100644
index 000000000..23465ae93
--- /dev/null
+++ b/vendor/sabre/dav/examples/sql/pgsql.calendars.sql
@@ -0,0 +1,42 @@
+CREATE TABLE calendars (
+ id SERIAL NOT NULL,
+ principaluri VARCHAR(100),
+ displayname VARCHAR(100),
+ uri VARCHAR(200),
+ ctag INTEGER NOT NULL DEFAULT 0,
+ description TEXT,
+ calendarorder INTEGER NOT NULL DEFAULT 0,
+ calendarcolor VARCHAR(10),
+ timezone TEXT,
+ components VARCHAR(20),
+ transparent SMALLINT NOT NULL DEFAULT '0'
+);
+
+ALTER TABLE ONLY calendars
+ ADD CONSTRAINT calendars_pkey PRIMARY KEY (id);
+
+CREATE UNIQUE INDEX calendars_ukey
+ ON calendars USING btree (principaluri, uri);
+
+CREATE TABLE calendarobjects (
+ id SERIAL NOT NULL,
+ calendarid INTEGER NOT NULL,
+ calendardata TEXT,
+ uri VARCHAR(200),
+ etag VARCHAR(32),
+ size INTEGER NOT NULL,
+ componenttype VARCHAR(8),
+ lastmodified INTEGER,
+ firstoccurence INTEGER,
+ lastoccurence INTEGER
+);
+
+ALTER TABLE ONLY calendarobjects
+ ADD CONSTRAINT calendarobjects_pkey PRIMARY KEY (id);
+
+CREATE UNIQUE INDEX calendarobjects_ukey
+ ON calendarobjects USING btree (calendarid, uri);
+
+ALTER TABLE ONLY calendarobjects
+ ADD CONSTRAINT calendarobjects_calendarid_fkey FOREIGN KEY (calendarid) REFERENCES calendars(id)
+ ON DELETE CASCADE;
diff --git a/vendor/sabre/dav/examples/sql/pgsql.locks.sql b/vendor/sabre/dav/examples/sql/pgsql.locks.sql
new file mode 100644
index 000000000..ca6c82e96
--- /dev/null
+++ b/vendor/sabre/dav/examples/sql/pgsql.locks.sql
@@ -0,0 +1,13 @@
+CREATE TABLE locks (
+ id SERIAL NOT NULL,
+ owner VARCHAR(100),
+ timeout INTEGER,
+ created INTEGER,
+ token VARCHAR(100),
+ scope smallint,
+ depth smallint,
+ uri text
+);
+
+ALTER TABLE ONLY locks
+ ADD CONSTRAINT locks_pkey PRIMARY KEY (id);
diff --git a/vendor/sabre/dav/examples/sql/pgsql.principals.sql b/vendor/sabre/dav/examples/sql/pgsql.principals.sql
new file mode 100644
index 000000000..4afe51063
--- /dev/null
+++ b/vendor/sabre/dav/examples/sql/pgsql.principals.sql
@@ -0,0 +1,40 @@
+CREATE TABLE principals (
+ id SERIAL NOT NULL,
+ uri VARCHAR(100) NOT NULL,
+ email VARCHAR(80),
+ displayname VARCHAR(80),
+ vcardurl VARCHAR(255)
+);
+
+ALTER TABLE ONLY principals
+ ADD CONSTRAINT principals_pkey PRIMARY KEY (id);
+
+CREATE UNIQUE INDEX principals_ukey
+ ON principals USING btree (uri);
+
+CREATE TABLE groupmembers (
+ id SERIAL NOT NULL,
+ principal_id INTEGER NOT NULL,
+ member_id INTEGER NOT NULL
+);
+
+ALTER TABLE ONLY groupmembers
+ ADD CONSTRAINT groupmembers_pkey PRIMARY KEY (id);
+
+CREATE UNIQUE INDEX groupmembers_ukey
+ ON groupmembers USING btree (principal_id, member_id);
+
+ALTER TABLE ONLY groupmembers
+ ADD CONSTRAINT groupmembers_principal_id_fkey FOREIGN KEY (principal_id) REFERENCES principals(id)
+ ON DELETE CASCADE;
+
+-- Is this correct correct link ... or not?
+-- ALTER TABLE ONLY groupmembers
+-- ADD CONSTRAINT groupmembers_member_id_id_fkey FOREIGN KEY (member_id) REFERENCES users(id)
+-- ON DELETE CASCADE;
+
+INSERT INTO principals (uri,email,displayname) VALUES
+('principals/admin', 'admin@example.org','Administrator'),
+('principals/admin/calendar-proxy-read', null, null),
+('principals/admin/calendar-proxy-write', null, null);
+
diff --git a/vendor/sabre/dav/examples/sql/pgsql.users.sql b/vendor/sabre/dav/examples/sql/pgsql.users.sql
new file mode 100644
index 000000000..939c931d8
--- /dev/null
+++ b/vendor/sabre/dav/examples/sql/pgsql.users.sql
@@ -0,0 +1,15 @@
+CREATE TABLE users (
+ id SERIAL NOT NULL,
+ username VARCHAR(50),
+ digesta1 VARCHAR(32),
+ UNIQUE(username)
+);
+
+ALTER TABLE ONLY users
+ ADD CONSTRAINT users_pkey PRIMARY KEY (id);
+
+CREATE UNIQUE INDEX users_ukey
+ ON users USING btree (username);
+
+INSERT INTO users (username,digesta1) VALUES
+('admin', '87fd274b7b6c01e48d7c2f965da8ddf7');
diff --git a/vendor/sabre/dav/examples/sql/sqlite.addressbooks.sql b/vendor/sabre/dav/examples/sql/sqlite.addressbooks.sql
new file mode 100644
index 000000000..aa7639c5f
--- /dev/null
+++ b/vendor/sabre/dav/examples/sql/sqlite.addressbooks.sql
@@ -0,0 +1,17 @@
+CREATE TABLE addressbooks (
+ id integer primary key asc,
+ principaluri text,
+ displayname text,
+ uri text,
+ description text,
+ ctag integer
+);
+
+CREATE TABLE cards (
+ id integer primary key asc,
+ addressbookid integer,
+ carddata blob,
+ uri text,
+ lastmodified integer
+);
+
diff --git a/vendor/sabre/dav/examples/sql/sqlite.calendars.sql b/vendor/sabre/dav/examples/sql/sqlite.calendars.sql
new file mode 100644
index 000000000..537789906
--- /dev/null
+++ b/vendor/sabre/dav/examples/sql/sqlite.calendars.sql
@@ -0,0 +1,26 @@
+CREATE TABLE calendarobjects (
+ id integer primary key asc,
+ calendardata blob,
+ uri text,
+ calendarid integer,
+ lastmodified integer,
+ etag text,
+ size integer,
+ componenttype text,
+ firstoccurence integer,
+ lastoccurence integer
+);
+
+CREATE TABLE calendars (
+ id integer primary key asc,
+ principaluri text,
+ displayname text,
+ uri text,
+ ctag integer,
+ description text,
+ calendarorder integer,
+ calendarcolor text,
+ timezone text,
+ components text,
+ transparent bool
+);
diff --git a/vendor/sabre/dav/examples/sql/sqlite.locks.sql b/vendor/sabre/dav/examples/sql/sqlite.locks.sql
new file mode 100644
index 000000000..fd89b41eb
--- /dev/null
+++ b/vendor/sabre/dav/examples/sql/sqlite.locks.sql
@@ -0,0 +1,12 @@
+BEGIN TRANSACTION;
+CREATE TABLE locks (
+ id integer primary key asc,
+ owner text,
+ timeout integer,
+ created integer,
+ token text,
+ scope integer,
+ depth integer,
+ uri text
+);
+COMMIT;
diff --git a/vendor/sabre/dav/examples/sql/sqlite.principals.sql b/vendor/sabre/dav/examples/sql/sqlite.principals.sql
new file mode 100644
index 000000000..09dbc4d24
--- /dev/null
+++ b/vendor/sabre/dav/examples/sql/sqlite.principals.sql
@@ -0,0 +1,21 @@
+CREATE TABLE principals (
+ id INTEGER PRIMARY KEY ASC,
+ uri TEXT,
+ email TEXT,
+ displayname TEXT,
+ vcardurl TEXT,
+ UNIQUE(uri)
+);
+
+CREATE TABLE groupmembers (
+ id INTEGER PRIMARY KEY ASC,
+ principal_id INTEGER,
+ member_id INTEGER,
+ UNIQUE(principal_id, member_id)
+);
+
+
+INSERT INTO principals (uri,email,displayname) VALUES ('principals/admin', 'admin@example.org','Administrator');
+INSERT INTO principals (uri,email,displayname) VALUES ('principals/admin/calendar-proxy-read', null, null);
+INSERT INTO principals (uri,email,displayname) VALUES ('principals/admin/calendar-proxy-write', null, null);
+
diff --git a/vendor/sabre/dav/examples/sql/sqlite.users.sql b/vendor/sabre/dav/examples/sql/sqlite.users.sql
new file mode 100644
index 000000000..f4b2c1674
--- /dev/null
+++ b/vendor/sabre/dav/examples/sql/sqlite.users.sql
@@ -0,0 +1,9 @@
+CREATE TABLE users (
+ id integer primary key asc,
+ username TEXT,
+ digesta1 TEXT,
+ UNIQUE(username)
+);
+
+INSERT INTO users (username,digesta1) VALUES
+('admin', '87fd274b7b6c01e48d7c2f965da8ddf7');
diff --git a/vendor/sabre/dav/examples/webserver/apache2_htaccess.conf b/vendor/sabre/dav/examples/webserver/apache2_htaccess.conf
new file mode 100644
index 000000000..c5f29ba80
--- /dev/null
+++ b/vendor/sabre/dav/examples/webserver/apache2_htaccess.conf
@@ -0,0 +1,16 @@
+RewriteEngine On
+# This makes every request go to server.php
+RewriteRule (.*) server.php [L]
+
+# Output buffering needs to be off, to prevent high memory usage
+php_flag output_buffering off
+
+# This is also to prevent high memory usage
+php_flag always_populate_raw_post_data off
+
+# This is almost a given, but magic quotes is *still* on on some
+# linux distributions
+php_flag magic_quotes_gpc off
+
+# SabreDAV is not compatible with mbstring function overloading
+php_flag mbstring.func_overload off
diff --git a/vendor/sabre/dav/examples/webserver/apache2_vhost.conf b/vendor/sabre/dav/examples/webserver/apache2_vhost.conf
new file mode 100644
index 000000000..bb374eb0f
--- /dev/null
+++ b/vendor/sabre/dav/examples/webserver/apache2_vhost.conf
@@ -0,0 +1,33 @@
+# This is a sample configuration to setup a dedicated Apache vhost for WebDAV.
+#
+# The main thing that should be configured is the servername, and the path to
+# your SabreDAV installation (DocumentRoot).
+#
+# This configuration assumed mod_php5 is used, as it sets a few default php
+# settings as well.
+<VirtualHost *:*>
+
+ # Don't forget to change the server name
+ # ServerName dav.example.org
+
+ # The DocumentRoot is also required
+ # DocumentRoot /home/sabredav/
+
+ RewriteEngine On
+ # This makes every request go to server.php
+ RewriteRule ^/(.*)$ /server.php [L]
+
+ # Output buffering needs to be off, to prevent high memory usage
+ php_flag output_buffering off
+
+ # This is also to prevent high memory usage
+ php_flag always_populate_raw_post_data off
+
+ # This is almost a given, but magic quotes is *still* on on some
+ # linux distributions
+ php_flag magic_quotes_gpc off
+
+ # SabreDAV is not compatible with mbstring function overloading
+ php_flag mbstring.func_overload off
+
+</VirtualHost *:*>
diff --git a/vendor/sabre/dav/examples/webserver/apache2_vhost_cgi.conf b/vendor/sabre/dav/examples/webserver/apache2_vhost_cgi.conf
new file mode 100644
index 000000000..607254c6e
--- /dev/null
+++ b/vendor/sabre/dav/examples/webserver/apache2_vhost_cgi.conf
@@ -0,0 +1,21 @@
+# This is a sample configuration to setup a dedicated Apache vhost for WebDAV.
+#
+# The main thing that should be configured is the servername, and the path to
+# your SabreDAV installation (DocumentRoot).
+#
+# This configuration assumes CGI or FastCGI is used.
+<VirtualHost *:*>
+
+ # Don't forget to change the server name
+ # ServerName dav.example.org
+
+ # The DocumentRoot is also required
+ # DocumentRoot /home/sabredav/
+
+ # This makes every request go to server.php. This also makes sure
+ # the Authentication information is available. If your server script is
+ # not called server.php, be sure to change it.
+ RewriteEngine On
+ RewriteRule ^/(.*)$ /server.php [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
+
+</VirtualHost *:*>