function process($plist)
 {
     // Check if uptime is set to determine this is a new client
     $new_client = $this->uptime ? FALSE : TRUE;
     require_once APP_PATH . 'lib/CFPropertyList/CFPropertyList.php';
     $parser = new CFPropertyList();
     $parser->parse($plist, CFPropertyList::FORMAT_XML);
     $mylist = $parser->toArray();
     // Remove serial_number from mylist, use the cleaned serial that was provided in the constructor.
     unset($mylist['serial_number']);
     // If console_user is empty, retain previous entry
     if (!$mylist['console_user']) {
         unset($mylist['console_user']);
     }
     // If long_username is empty, retain previous entry
     if (array_key_exists('long_username', $mylist) && empty($mylist['long_username'])) {
         unset($mylist['long_username']);
     }
     $this->merge($mylist)->register()->save();
     if ($new_client) {
         store_event($this->serial_number, 'reportdata', 'info', 'new_client');
     }
 }
Esempio n. 2
0
 /**
  * Store event
  *
  * Store event for this model, assumes we have a serial_number
  *
  * @param string $type Use one of 'danger', 'warning', 'info' or 'success'
  * @param string $msg The message
  **/
 public function store_event($type, $msg, $data = '')
 {
     store_event($this->serial_number, $this->tablename, $type, $msg, $data);
 }
Esempio n. 3
0
 /**
  * Report broken client
  *
  * Use this method to report on client-side
  * errors that prevent the client to
  * report properly
  *
  * @author AvB
  **/
 function broken_client()
 {
     // At least, we need a serial number
     if (!isset($_POST['serial'])) {
         $this->msg("Serial is missing", TRUE);
     }
     // Register check in reportdata
     $report = new Reportdata_model($_POST['serial']);
     $report->register()->save();
     // Clean POST data
     $data['module'] = isset($_POST['module']) ? $_POST['module'] : 'generic';
     $data['type'] = isset($_POST['type']) ? $_POST['type'] : 'danger';
     $data['msg'] = isset($_POST['msg']) ? $_POST['msg'] : 'Unknown';
     $data['timestamp'] = time();
     // Store event
     store_event($_POST['serial'], $data['module'], $data['type'], $data['msg']);
     echo "Recorded this message: " . $data['msg'] . "\n";
 }