예제 #1
0
* CalDAV Server - handle PUT method
*
* @package   davical
* @subpackage   caldav
* @author    Andrew McMillan <*****@*****.**>
* @copyright Catalyst .Net Ltd, Morphoss Ltd
* @license   http://gnu.org/copyleft/gpl.html GNU GPL v2 or later
*/
dbg_error_log("PUT", "method handler");
require_once 'DAVResource.php';
include_once 'caldav-PUT-functions.php';
$vcalendar = new vCalendar($request->raw_post);
$uid = $vcalendar->GetUID();
if (empty($uid)) {
    $uid = uuid();
    $vcalendar->SetUID($uid);
}
if ($add_member) {
    $request->path = $request->dav_name() . $uid . '.ics';
    $dav_resource = new DAVResource($request->path);
    if ($dav_resource->Exists()) {
        $uid = uuid();
        $vcalendar->SetUID($uid);
        $request->path = $request->dav_name() . $uid . '.ics';
        $dav_resource = new DAVResource($request->path);
        if ($dav_resource->Exists()) {
            throw new Exception("Failed to generate unique segment name for add-member!");
        }
    }
} else {
    $dav_resource = new DAVResource($request->path);