]> git.mxchange.org Git - friendica-addons.git/blobdiff - dav/common/calendar.fnk.php
Move StatusNet addon dependencies in own library subfolder
[friendica-addons.git] / dav / common / calendar.fnk.php
index ea04bdae038b8f6c8683776523413388b7020f07..11f31f7de4e7f3792dec1def9348e12678a89319 100644 (file)
@@ -7,7 +7,9 @@ define("DAV_DISPLAYNAME", "{DAV:}displayname");
 define("DAV_CALENDARCOLOR", "{http://apple.com/ns/ical/}calendar-color");
 
 
-class DAVVersionMismatchException extends Exception {}
+class DAVVersionMismatchException extends Exception
+{
+}
 
 
 class vcard_source_data_email
@@ -99,16 +101,13 @@ class vcard_source_data
        public $photo;
 }
 
-;
-
-
 /**
  * @param vcard_source_data $vcardsource
  * @return string
  */
 function vcard_source_compile($vcardsource)
 {
-       $str = "BEGIN:VCARD\r\nVERSION:3.0\r\nPRODID:-//" . DAV_APPNAME . "//DAV-Plugin//EN\r\n";
+       $str = "BEGIN:VCARD\r\nVERSION:3.0\r\nPRODID:-//Friendica//DAV-Plugin//EN\r\n";
        $str .= "N:" . str_replace(";", ",", $vcardsource->name_last) . ";" . str_replace(";", ",", $vcardsource->name_first) . ";" . str_replace(";", ",", $vcardsource->name_middle) . ";;\r\n";
        $str .= "FN:" . str_replace(";", ",", $vcardsource->name_first) . " " . str_replace(";", ",", $vcardsource->name_middle) . " " . str_replace(";", ",", $vcardsource->name_last) . "\r\n";
        $str .= "REV:" . str_replace(" ", "T", $vcardsource->last_update) . "Z\r\n";
@@ -235,9 +234,9 @@ function dav_create_server($force_authentication = false, $needs_caldav = true,
 // The object tree needs in turn to be passed to the server class
        $server = new Sabre_DAV_Server($tree);
 
-       $server->setBaseUri(CALDAV_URL_PREFIX);
+       if (CALDAV_URL_PREFIX != "") $server->setBaseUri(CALDAV_URL_PREFIX);
 
-       $authPlugin = new Sabre_DAV_Auth_Plugin(Sabre_DAV_Auth_Backend_Std::getInstance(), 'SabreDAV');
+       $authPlugin = new Sabre_DAV_Auth_Plugin(Sabre_DAV_Auth_Backend_Std::getInstance(), DAV_APPNAME);
        $server->addPlugin($authPlugin);
 
        if ($needs_caldav) {
@@ -249,6 +248,16 @@ function dav_create_server($force_authentication = false, $needs_caldav = true,
                $server->addPlugin($carddavPlugin);
        }
 
+       if ($GLOBALS["CALDAV_ACL_PLUGIN_CLASS"] != "") {
+               $aclPlugin                      = new $GLOBALS["CALDAV_ACL_PLUGIN_CLASS"]();
+               $aclPlugin->defaultUsernamePath = "principals/users";
+               $server->addPlugin($aclPlugin);
+       } else {
+               $aclPlugin                      = new Sabre_DAVACL_Plugin();
+               $aclPlugin->defaultUsernamePath = "principals/users";
+               $server->addPlugin($aclPlugin);
+       }
+
        if ($force_authentication) $server->broadcastEvent('beforeMethod', array("GET", "/")); // Make it authenticate
 
        return $server;
@@ -275,7 +284,7 @@ function dav_get_current_user_calendars(&$server, $with_privilege = "")
        $calendars = array();
        /** @var Sabre_DAVACL_Plugin $aclplugin  */
        $aclplugin = $server->getPlugin("acl");
-       foreach ($children as $child) if (is_a($child, "Sabre_CalDAV_Calendar")) {
+       foreach ($children as $child) if (is_a($child, "Sabre_CalDAV_Calendar") || is_subclass_of($child, "Sabre_CalDAV_Calendar")) {
                if ($with_privilege != "") {
                        $caluri = $calendar_path . $child->getName();
                        if ($aclplugin->checkPrivileges($caluri, $with_privilege, Sabre_DAVACL_Plugin::R_PARENT, false)) $calendars[] = $child;
@@ -292,7 +301,7 @@ function dav_get_current_user_calendars(&$server, $with_privilege = "")
  * @param Sabre_CalDAV_Calendar $calendar
  * @param string $calendarobject_uri
  * @param string $with_privilege
- * @return null|Sabre_VObject_Component_VCalendar
+ * @return null|Sabre\VObject\Component\VCalendar
  */
 function dav_get_current_user_calendarobject(&$server, &$calendar, $calendarobject_uri, $with_privilege = "")
 {
@@ -308,7 +317,7 @@ function dav_get_current_user_calendarobject(&$server, &$calendar, $calendarobje
        if (!$aclplugin->checkPrivileges($uri, $with_privilege, Sabre_DAVACL_Plugin::R_PARENT, false)) return null;
 
        $data    = $obj->get();
-       $vObject = Sabre_VObject_Reader::read($data);
+       $vObject = Sabre\VObject\Reader::read($data);
 
        return $vObject;
 }
@@ -336,20 +345,19 @@ function dav_get_current_user_calendar_by_id(&$server, $id, $with_privilege = ""
 
 /**
  * @param string $uid
- * @return Sabre_VObject_Component_VCalendar $vObject
+ * @return Sabre\VObject\Component\VCalendar $vObject
  */
 function dav_create_empty_vevent($uid = "")
 {
-       $a = get_app();
        if ($uid == "") $uid = uniqid();
-       return Sabre_VObject_Reader::read("BEGIN:VCALENDAR\r\nVERSION:2.0\r\nPRODID:-//" . DAV_APPNAME . "//DAV-Plugin//EN\r\nBEGIN:VEVENT\r\nUID:" . $uid . "@" . dav_compat_get_hostname() .
+       return Sabre\VObject\Reader::read("BEGIN:VCALENDAR\r\nVERSION:2.0\r\nPRODID:-//" . DAV_APPNAME . "//DAV-Plugin//EN\r\nBEGIN:VEVENT\r\nUID:" . $uid . "@" . dav_compat_get_hostname() .
                "\r\nDTSTAMP:" . date("Ymd") . "T" . date("His") . "Z\r\nEND:VEVENT\r\nEND:VCALENDAR\r\n");
 }
 
 
 /**
- * @param Sabre_VObject_Component_VCalendar $vObject
- * @return Sabre_VObject_Component_VEvent|null
+ * @param Sabre\VObject\Component\VCalendar $vObject
+ * @return Sabre\VObject\Component\VEvent|null
  */
 function dav_get_eventComponent(&$vObject)
 {