diff --git a/inc/caldav-MKCALENDAR.php b/inc/caldav-MKCALENDAR.php index eccb27b1..18a8a528 100644 --- a/inc/caldav-MKCALENDAR.php +++ b/inc/caldav-MKCALENDAR.php @@ -10,10 +10,6 @@ */ dbg_error_log("MKCALENDAR", "method handler"); -dbg_log_array( "MKCOL", 'HEADERS', $raw_headers ); -dbg_log_array( "MKCOL", '_SERVER', $_SERVER, true ); -dbg_error_log( "MKCOL", "RAW: %s", str_replace("\n", "",str_replace("\r", "", $raw_post)) ); - $make_path = $_SERVER['PATH_INFO']; $displayname = $make_path; @@ -22,6 +18,18 @@ if ( preg_match( '#^(.*/)([^/]+)(/)?$#', $make_path, $matches ) ) { $parent_container = $matches[1]; $displayname = $matches[2]; } +$sql = "SELECT * FROM collection WHERE user_no = ? AND dav_name = ?;"; +$qry = new PgQuery( $sql, $session->user_no, $make_path ); +if ( ! $qry->Exec("MKCALENDAR") ) { + header("HTTP/1.1 500 Infernal Server Error"); + dbg_error_log( "ERROR", " MKCALENDAR Failed (database error) for '%s' named '%s', user '%d' in parent '%s'", $make_path, $displayname, $session->user_no, $parent_container); + exit(0); +} +if ( $qry->rows != 0 ) { + header("HTTP/1.1 412 Calendar Already Exists"); + dbg_error_log( "ERROR", " MKCALENDAR Failed (already exists) for '%s' named '%s', user '%d' in parent '%s'", $make_path, $displayname, $session->user_no, $parent_container); + exit(0); +} $sql = "INSERT INTO collection ( user_no, parent_container, dav_name, dav_etag, dav_displayname, is_calendar, created, modified ) VALUES( ?, ?, ?, ?, ?, TRUE, current_timestamp, current_timestamp );"; $qry = new PgQuery( $sql, $session->user_no, $parent_container, $make_path, md5($session->user_no. $make_path), $displayname ); @@ -32,48 +40,49 @@ if ( $qry->Exec("MKCALENDAR",__LINE__,__FILE__) ) { } else { header("HTTP/1.1 500 Infernal Server Error"); - dbg_error_log( "ERROR", " MKCOL Failed for '%s' named '%s', user '%d' in parent '%s'", $make_path, $displayname, $session->user_no, $parent_container); + dbg_error_log( "ERROR", " MKCALENDAR Failed for '%s' named '%s', user '%d' in parent '%s'", $make_path, $displayname, $session->user_no, $parent_container); + exit(0); } /** -* We could also respond to the request... +* FIXME: We could also respond to the request... +* +* +* +* +* +* Lisa's Events +* Calendar restricted to events. +* +* +* +* +* +* +* * - - - - - Lisa's Events - Calendar restricted to events. - - - - - - - - */ ?> \ No newline at end of file