2013-09-10 14:27:31 +02:00
< ? php
2013-12-09 17:10:07 +01:00
/**
* Export all shifts using api - key .
*/
function shifts_json_export_all_controller () {
global $api_key ;
if ( $api_key == " " )
die ( " Config contains empty apikey. " );
if ( ! isset ( $_REQUEST [ 'api_key' ]))
die ( " Missing parameter api_key. " );
if ( $_REQUEST [ 'api_key' ] != $api_key )
die ( " Invalid api_key. " );
$shifts_source = Shifts ();
if ( $shifts_source === false )
die ( " Unable to load shifts. " );
header ( " Content-Type: application/json; charset=utf-8 " );
echo json_encode ( $shifts_source );
die ();
}
2013-09-10 14:27:31 +02:00
/**
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-12-09 17:10:07 +01:00
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. " );
2013-12-09 17:10:07 +01:00
2013-09-10 14:27:31 +02:00
$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-12-09 17:10:07 +01:00
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` " );
}
2013-12-09 17:10:07 +01:00
2013-09-10 14:27:31 +02:00
header ( " Content-Type: application/json; charset=utf-8 " );
echo json_encode ( $ical_shifts );
die ();
}
?>