0byt3m1n1
Path:
/
data
/
applications
/
aps.bak
/
webcalendar
/
1.2.0-4
/
standard
/
htdocs
/
ws
/
[
Home
]
File: activity_log.php
<?php /* $Id: activity_log.php,v 1.11.2.2 2007/08/06 02:28:33 cknudsen Exp $ * * Description: * Web Service functionality to get the activity log. * Uses REST-style Web Services. * * Parameters: * startid* - Optional first id to start list from * num* - Number of entries to return * * Comments: * Client apps must use the same authentication as the web browser. * If WebCalendar is setup to use web-based authentication, then the login.php * found in this directory should be used to obtain a session cookie. * * Developer Notes: * If you enable the WS_DEBUG option below, * all data will be written to a debug file in /tmp also. */ $WS_DEBUG = false; $MAX_ENTRIES = 1000; // Do not allow a client to ask for more than this. require_once 'ws.php'; // Initialize... ws_init (); $num = getGetValue ( 'num' ); $startid = getGetValue ( 'startid' ); if ( empty ( $num ) || $num < 0 ) $num = 100; if ( $num > $MAX_ENTRIES ) $num = $MAX_ENTRIES; header ( 'Content-type: text/xml' ); // header ( 'Content-type: text/plain' ); echo '<?xml version="1.0" encoding="UTF-8"?' . ">\n"; // If login is public user, make sure public can view others... if ( $login == '__public__' && $login != $user ) { if ( $PUBLIC_ACCESS_OTHERS != 'Y' ) { $out = ' <error>' . translate ( 'Not authorized' ) . '</error> </events> '; exit; } } // TODO: Move this SQL along with the SQL in activity_log.php to a shared function. $sql_params = array (); $sql = 'SELECT wel.cal_login, wel.cal_user_cal, wel.cal_type, wel.cal_date, wel.cal_time, we.cal_name, wel.cal_log_id FROM webcal_entry_log wel, webcal_entry we WHERE wel.cal_entry_id = we.cal_id '; if ( ! empty ( $startid ) ) { $sql .= 'AND wel.cal_log_id <= ? '; $sql_params[] = $startid; } $sql .= 'ORDER BY wel.cal_log_id DESC'; if ( ! empty ( $WS_DEBUG ) && $WS_DEBUG ) ws_log_message ( 'SQL> ' . $sql . "\n\n" ); $res = dbi_execute ( $sql, $sql_params ); $out = ' <activitylog>'; if ( $res ) { $out .= ' <!-- in if -->'; $cnt = 0; while ( ( $row = dbi_fetch_row ( $res ) ) && $cnt < $num ) { $out .= ' <!-- in while type: $row[2] --> <log> <login>' . ws_escape_xml ( $row[0] ) . '</login> <calendar>' . ws_escape_xml ( $row[1] ) . '</calendar> <type>' . ws_escape_xml ( $row[2] ) . '</type> <date>' . ws_escape_xml ( $row[3] ) . '</date> <time>' . ws_escape_xml ( $row[4] ) . '</time> <action>' . ws_escape_xml ( $row[5] ) . '</action> <id>' . ws_escape_xml ( $row[6] ) . '</id> </log> '; $cnt++; } dbi_free_result ( $res ); } else $out .= ' <error>' . ws_escape_xml ( dbi_error () ) . '</error>'; $out .= ' </activitylog> '; // If web servic debugging is on... if ( ! empty ( $WS_DEBUG ) && $WS_DEBUG ) ws_log_message ( $out ); // Send output now... echo $out; ?>