2013-09-10 14:27:31 +02:00
< ? php
/**
2013-10-13 00:52:44 +02:00
* Export filtered shifts via JSON .
* ( Like iCal Export or shifts view )
2013-09-10 14:27:31 +02:00
*/
function shifts_json_export_controller () {
global $ical_shifts , $user ;
2013-10-13 00:52:44 +02:00
if ( isset ( $_REQUEST [ 'key' ]) && preg_match ( " /^[0-9a-f] { 32} $ / " , $_REQUEST [ 'key' ]))
2013-09-10 14:27:31 +02:00
$key = $_REQUEST [ 'key' ];
else
die ( " Missing key. " );
$user = User_by_api_key ( $key );
2013-10-13 00:52:44 +02:00
if ( $user === false )
2013-09-10 14:27:31 +02:00
die ( " Unable to find user. " );
2013-10-13 00:52:44 +02:00
if ( $user == null )
2013-09-10 14:27:31 +02:00
die ( " Key invalid. " );
2013-10-13 00:52:44 +02:00
if ( ! in_array ( 'shifts_json_export' , privileges_for_user ( $user [ 'UID' ])))
2013-09-10 14:27:31 +02:00
die ( " No privilege for shifts_json_export. " );
2013-10-13 00:52:44 +02:00
if ( isset ( $_REQUEST [ 'export' ]) && $_REQUEST [ 'export' ] == 'user_shifts' ) {
2013-09-10 14:27:31 +02:00
require_once ( 'includes/pages/user_shifts.php' );
view_user_shifts ();
} else {
$ical_shifts = sql_select ( " SELECT `Shifts`.*, `Room`.`Name` as `room_name` FROM `ShiftEntry` INNER JOIN `Shifts` ON (`ShiftEntry`.`SID` = `Shifts`.`SID`) INNER JOIN `Room` ON (`Shifts`.`RID` = `Room`.`RID`) WHERE `UID`= " . sql_escape ( $user [ 'UID' ]) . " ORDER BY `start` " );
}
header ( " Content-Type: application/json; charset=utf-8 " );
echo json_encode ( $ical_shifts );
die ();
}
?>