File: /var/www/html/nt/application/helpers/audit_log_helper.php
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
if (!function_exists('save_audit_log')) {
function save_audit_log($audit_data) {
$CI =& get_instance();
// Load model for audit log
$CI->load->model('mcommon');
// Add event name if available
if (!isset($audit_data['event_name'])) {
$audit_data['event_name'] = $CI->router->method; // Controller method name
}
// Retrieve current URI path
$audit_data['module_path'] = base_url(uri_string());
//$audit_data['module_path'] = $_SERVER['REQUEST_URI'];
// Add user ID if available
if (!isset($audit_data['user_id'])) {
$audit_data['user_id'] = $CI->session->userdata('admin')['user_id'];
}
// Set default values for user IP and device if not provided
if (!isset($audit_data['user_ip'])) {
$audit_data['user_ip'] = $CI->input->ip_address();
}
if (!isset($audit_data['user_device'])) {
$audit_data['user_device'] = $CI->input->user_agent();
}
if (isset($audit_data['pk_value'])) {
$table_data = $CI->mcommon->get_table_data($audit_data['table_name'], $audit_data['table_pkkey'],$audit_data['pk_value']);
$audit_data['content'] = $table_data;
} else {
$audit_data['content'] = '';
}
switch ($audit_data['event_type']) {
case 'L':
$audit_data['remarks'] = 'User logged in.';
break;
case 'O':
$audit_data['remarks'] = 'User logged out.';
break;
case 'C':
$audit_data['remarks'] = 'Record created.';
if (isset($audit_data['pk_value']) && isset($audit_data['table_name'])) {
$audit_data['remarks'] .= ' Table: ' . $audit_data['table_name'] . ', ID: ' . $audit_data['pk_value'];
}
break;
case 'U':
$audit_data['remarks'] = 'Record updated.';
if (isset($audit_data['pk_value']) && isset($audit_data['table_name'])) {
$audit_data['remarks'] .= ' Table: ' . $audit_data['table_name'] . ', ID: ' . $audit_data['pk_value'];
}
break;
case 'D':
$audit_data['remarks'] = 'Record deleted.';
if (isset($audit_data['pk_value']) && isset($audit_data['table_name'])) {
$audit_data['remarks'] .= ' Table: ' . $audit_data['table_name'] . ', ID: ' . $audit_data['pk_value'];
}
break;
default:
$audit_data['remarks'] = 'Unknown event type.';
}
// Append user ID to remarks
if (isset($audit_data['user_id'])) {
$audit_data['remarks'] .= ' User ID: ' . $audit_data['user_id'];
}
// Remove pk_value if present
if (isset($audit_data['pk_value'])) {
unset($audit_data['pk_value']);
}
// Call model method to save audit log
$CI->mcommon->save_audit_log($audit_data);
}
}
?>