mirror of
https://gitlab.com/davical-project/davical.git
synced 2026-07-14 10:50:48 +00:00
ischedule: make invites and replies work
This commit is contained in:
parent
86cfed0dd0
commit
5359e6fb98
@ -80,7 +80,7 @@ function handle_freebusy_request( $ic ) {
|
||||
if ( $qry->rows() == 0 ) {
|
||||
$remote = new iSchedule ();
|
||||
$answer = $remote->sendRequest ( $attendee->Value(), 'VFREEBUSY/REQUEST', $ical->Render() );
|
||||
if ( $a === false ) {
|
||||
if ( $answer === false ) {
|
||||
$reply->CalDAVElement($response, "request-status", "3.7;Invalid Calendar User" );
|
||||
$reply->CalDAVElement($response, "calendar-data" );
|
||||
continue;
|
||||
|
||||
@ -19,6 +19,7 @@ require_once('AwlCache.php');
|
||||
require_once('vComponent.php');
|
||||
require_once('vCalendar.php');
|
||||
require_once('WritableCollection.php');
|
||||
include_once('iSchedule.php');
|
||||
|
||||
$bad_events = null;
|
||||
|
||||
@ -532,6 +533,27 @@ function do_scheduling_requests( vCalendar $resource, $create, $old_data = null
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
$remote = new iSchedule ();
|
||||
$answer = $remote->sendRequest ( $email, 'VEVENT/REQUEST', $schedule_request->Render() );
|
||||
if ( $answer === false ) {
|
||||
$response = "3.7;Invalid Calendar User" ;
|
||||
}
|
||||
else {
|
||||
foreach ( $answer as $a ) // should only be one element in array
|
||||
{
|
||||
if ( $a === false ) {
|
||||
$response = "3.7;Invalid Calendar User" ;
|
||||
}
|
||||
elseif ( substr( $a, 0, 1 ) >= 1 ) {
|
||||
$response = $a ;
|
||||
}
|
||||
else {
|
||||
$response = "2.0;Success" ;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
dbg_error_log( 'PUT', 'Status for attendee <%s> set to "%s"', $attendee->Value(), $response );
|
||||
$attendee->SetParameterValue( 'SCHEDULE-STATUS', $response );
|
||||
$scheduling_actions = true;
|
||||
|
||||
@ -138,6 +138,7 @@ function ischedule_freebusy_request( $ic, $attendees, $attendees_fail) {
|
||||
|
||||
$vcal = new vCalendar( array('METHOD' => 'REPLY') );
|
||||
$vcal->AddComponent( $fb );
|
||||
$vcal->AddComponent( $fb );
|
||||
|
||||
$response = $reply->NewXMLElement( "response", false, false, 'urn:ietf:params:xml:ns:ischedule' );
|
||||
$response->NewElement( "recipient", 'mailto:'.$attendee->email, false, 'urn:ietf:params:xml:ns:ischedule' );
|
||||
@ -159,7 +160,7 @@ function ischedule_freebusy_request( $ic, $attendees, $attendees_fail) {
|
||||
|
||||
function ischedule_request( $ic, $attendees, $attendees_fail ) {
|
||||
global $c, $session, $request;
|
||||
$reply = new XMLDocument( array("DAV:" => "", "urn:ietf:params:xml:ns:caldav" => "C", "urn:ietf:params:xml:ns:ischedule" => "I" ) );
|
||||
$reply = new XMLDocument( array( "urn:ietf:params:xml:ns:ischedule" => "I" ) );
|
||||
$responses = array();
|
||||
$ical = $ic->GetComponents('VEVENT');
|
||||
$ical = $ical[0];
|
||||
@ -186,15 +187,15 @@ function ischedule_request( $ic, $attendees, $attendees_fail ) {
|
||||
}
|
||||
}
|
||||
}
|
||||
dbg_error_log( 'PUT', 'Status for attendee <%s> set to "%s"', $attendee->email, $response );
|
||||
$XMLresponse->NewElement("recipient", $reply->href('mailto:'.$attendee->email), false, 'urn:ietf:params:xml:ns:ischedule' );
|
||||
dbg_error_log( 'ischedule', 'Status for attendee <%s> set to "%s"', $attendee->email, $response );
|
||||
$XMLresponse->NewElement("recipient", 'mailto:'.$attendee->email, false, 'urn:ietf:params:xml:ns:ischedule' );
|
||||
$XMLresponse->NewElement("request-status", $response, false, 'urn:ietf:params:xml:ns:ischedule' );
|
||||
$responses[] = $XMLresponse;
|
||||
}
|
||||
|
||||
foreach ( $attendees_fail AS $k => $attendee ) {
|
||||
$XMLresponse = $reply->NewXMLElement("response", false, false, 'urn:ietf:params:xml:ns:ischedule');
|
||||
$XMLresponse->NewElement("recipient", $reply->href('mailto:'.$attendee->email), false, 'urn:ietf:params:xml:ns:ischedule' );
|
||||
$XMLresponse->NewElement("recipient", 'mailto:'.$attendee->email, false, 'urn:ietf:params:xml:ns:ischedule' );
|
||||
$XMLresponse->NewElement("request-status", '5.3;cannot schedule this user, unknown or access denied', false, 'urn:ietf:params:xml:ns:ischedule' );
|
||||
$responses[] = $XMLresponse;
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user