Example #1
0
 /**
  * Generates an audit event log (to be sent later).
  *
  * @param  integer $severity Importance of the event that will be reported, values from one to five.
  * @param  string  $location In which part of the system was the event triggered.
  * @param  string  $message  The explanation of the event.
  * @param  boolean $internal Whether the event will be publicly visible or not.
  * @return boolean           TRUE if the event was logged in the monitoring service, FALSE otherwise.
  */
 private static function report_event($severity = 0, $location = '', $message = '', $internal = false)
 {
     $user = wp_get_current_user();
     $username = false;
     $current_time = date('Y-m-d H:i:s');
     $remote_ip = self::get_remote_addr();
     // Identify current user in session.
     if ($user instanceof WP_User && isset($user->user_login) && !empty($user->user_login)) {
         if ($user->user_login != $user->display_name) {
             $username = sprintf(" %s (%s),", $user->display_name, $user->user_login);
         } else {
             $username = sprintf(" %s,", $user->user_login);
         }
     }
     // Fixing severity value.
     $severity = (int) $severity;
     // Convert the severity number into a readable string.
     switch ($severity) {
         case 0:
             $severity_name = 'Debug';
             break;
         case 1:
             $severity_name = 'Notice';
             break;
         case 2:
             $severity_name = 'Info';
             break;
         case 3:
             $severity_name = 'Warning';
             break;
         case 4:
             $severity_name = 'Error';
             break;
         case 5:
             $severity_name = 'Critical';
             break;
         default:
             $severity_name = 'Info';
             break;
     }
     // Mark the event as internal if necessary.
     if ($internal === true) {
         $severity_name = '@' . $severity_name;
     }
     // Clear event message.
     $message = strip_tags($message);
     $message = str_replace("\r", '', $message);
     $message = str_replace("\n", '', $message);
     $message = str_replace("\t", '', $message);
     $event_message = sprintf('%s:%s %s; %s', $severity_name, $username, $remote_ip, $message);
     return SucuriScanAPI::send_log($event_message);
 }