| <?php |
| /** |
| * ***************************************************************************** |
| * Copyright (c) 2004,2007,2016 Eclipse Foundation and others. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/epl-v10.html |
| * |
| * Contributors: |
| * Denis Roy (Eclipse Foundation)- initial API and implementation |
| * ***************************************************************************** |
| */ |
| |
| /** |
| * Description: Functions and modules related to a modification log entry |
| */ |
| |
| define('MAX_LOG_DAYS', 365); |
| $dblog = "/home/data/httpd/eclipse-php-classes/system/dbconnection_rw.class.php"; |
| |
| if (is_readable($dblog)) { |
| require_once ("/home/data/httpd/eclipse-php-classes/system/dbconnection_rw.class.php"); |
| define('LOG_TO_DB', TRUE); |
| } |
| else { |
| define('LOG_TO_DB', FALSE); |
| } |
| |
| if (!class_exists("EvtLog")) { |
| class EvtLog { |
| |
| var $LogID = 0; |
| var $LogTable = ""; |
| var $PK1 = ""; |
| var $PK2 = ""; |
| var $LogAction = ""; |
| var $uid = ""; |
| var $EvtDateTime = ""; |
| |
| /** |
| * Fetch Log Records |
| * |
| * $fields = array('LogAction' => 'mail_invalid', 'uid' => 'mmisingname0mv'); |
| * print_r(EvtLog::fetchLogRecord($fields)); |
| * |
| * @param array $fields |
| */ |
| public static function fetchLogRecord($fields = array()) { |
| $App = new App(); |
| $allowed_fields = array('LogID', 'LogTable', 'PK1', 'PK2', 'LogAction', 'uid', 'EvtDateTime'); |
| |
| $sql = "SELECT LogID, LogTable, PK1, PK2, LogAction, uid, EvtDateTime FROM SYS_EvtLog"; |
| $conditions = array(); |
| foreach ($allowed_fields as $field) { |
| if (isset($fields[$field]) && $fields[$field] != "") { |
| $conditions[] = $field . " = " . $App->returnQuotedString($App->sqlSanitize($fields[$field])); |
| } |
| } |
| |
| if (!empty($conditions)) { |
| $sql .= ' WHERE '; |
| $sql .= implode(' and ', $conditions); |
| } |
| |
| $sql .= " LIMIT 100"; |
| $result = $App->eclipse_sql($sql); |
| $return = array(); |
| while ($row = mysql_fetch_assoc($result)) { |
| $return[] = $row; |
| } |
| return $return; |
| } |
| |
| function getLogID() { |
| return $this->LogID; |
| } |
| |
| function getLogTable() { |
| return $this->LogTable; |
| } |
| |
| function getPK1() { |
| return $this->PK1; |
| } |
| |
| function getPK2() { |
| return $this->PK2; |
| } |
| |
| function getLogAction() { |
| return $this->LogAction; |
| } |
| |
| function getuid() { |
| return $this->PersonID; |
| } |
| |
| function getEvtDateTime() { |
| return $this->EvtDateTime; |
| } |
| |
| function setLogID($_LogID) { |
| $this->LogID = $_LogID; |
| } |
| |
| function setLogTable($_LogTable) { |
| $this->LogTable = $_LogTable; |
| } |
| |
| function setPK1($_PK1) { |
| $this->PK1 = $_PK1; |
| } |
| |
| function setPK2($_PK2) { |
| $this->PK2 = $_PK2; |
| } |
| |
| function setLogAction($_LogAction) { |
| $this->LogAction = $_LogAction; |
| } |
| |
| function setuid($_uid) { |
| $this->uid = $_uid; |
| } |
| |
| function setEvtDateTime($_EvtDateTime) { |
| $this->EvtDateTime = $_EvtDateTime; |
| } |
| |
| function insertModLog($_uid) { |
| $uid = $_uid; |
| if (LOG_TO_DB) { |
| // $var != "" is not a valid check here because we might want to log 0 |
| if ($this->getLogTable() !== "" && $this->getPK1() !== "" && $this->getLogAction() !== "" && $uid !== "") { |
| $App = new App(); |
| $dbc = new DBConnectionRW(); |
| $dbh = $dbc->connect(); |
| |
| $sql = "INSERT INTO SYS_EvtLog ( |
| LogID, |
| LogTable, |
| PK1, |
| PK2, |
| LogAction, |
| uid, |
| EvtDateTime) |
| VALUES ( |
| NULL, |
| " . $App->returnQuotedString($App->sqlSanitize($this->getLogTable(), $dbh)) . ", |
| " . $App->returnQuotedString($App->sqlSanitize($this->getPK1(), $dbh)) . ", |
| " . $App->returnQuotedString($App->sqlSanitize($this->getPK2(), $dbh)) . ", |
| " . $App->returnQuotedString($App->sqlSanitize($this->getLogAction(), $dbh)) . ", |
| " . $App->returnQuotedString($App->sqlSanitize($uid), $dbh) . ", |
| NOW() |
| )"; |
| |
| mysql_query($sql, $dbh); |
| if (mysql_error() != "") { |
| echo "An unknown database error has occurred while logging information. Please contact the System Administrator."; |
| echo mysql_error(); |
| exit(); |
| } |
| |
| $dbc->disconnect(); |
| |
| // 1% of each hits will perform clean up |
| if (rand(0, 100) < 1) { |
| $this->cleanup(); |
| } |
| } |
| else { |
| echo "An unknown system error has occurred while logging information. Please contact the System Administrator."; |
| exit(); |
| } |
| } |
| else { |
| // TODO: local logging |
| } |
| } |
| |
| function cleanup() { |
| $sql = "DELETE FROM SYS_EvtLog WHERE EvtDateTime < " . MAX_LOG_DAYS; |
| |
| $dbc = new DBConnectionRW(); |
| $dbh = $dbc->connect(); |
| mysql_query($sql, $dbh); |
| $dbc->disconnect(); |
| } |
| |
| } |
| } |