/** * Create a Tag * **/ function save() { $out = array(); // Sanitize $serial_number = post('serial_number'); $tag = post('tag'); if ($serial_number and $tag) { if (authorized_for_serial($serial_number)) { $tagm = new Tag_model(); $tagm->retrieve_record($serial_number, 'tag=?', array($tag)); $tagm->serial_number = $serial_number; $tagm->tag = $tag; $tagm->user = $_SESSION['user']; $tagm->timestamp = time(); $tagm->save(); $out = $tagm->rs; } else { $out['status'] = 'error'; $out['msg'] = 'Not authorized for this serial'; } } else { $out['status'] = 'error'; $out['msg'] = 'Missing data'; } $obj = new View(); $obj->view('json', array('msg' => $out)); }
/** * Create a comment * **/ function save() { $out = array(); // Sanitize $serial_number = post('serial_number'); $section = post('section'); $text = post('text'); $html = post('html'); if ($serial_number and $section and $text) { if (authorized_for_serial($serial_number)) { $comment = new Comment_model(); $comment->retrieve_record($serial_number, 'section=?', array($section)); $comment->serial_number = $serial_number; $comment->section = $section; $comment->text = $text; $comment->html = $html; $comment->user = $_SESSION['user']; $comment->timestamp = time(); $comment->save(); $out['status'] = 'saved'; } else { $out['status'] = 'error'; $out['msg'] = 'Not authorized for this serial'; } } else { $out['status'] = 'error'; $out['msg'] = 'Missing data'; } $obj = new View(); $obj->view('json', array('msg' => $out)); }
/** * Force recheck warranty * * @return void * @author AvB **/ function recheck_warranty($serial = '') { // Authenticate if (!$this->authorized()) { die('Authenticate first.'); // Todo: return json? } if (authorized_for_serial($serial)) { $warranty = new Warranty_model($serial); $warranty->check_status($force = TRUE); } redirect("clients/detail/{$serial}"); }
/** * Force recheck GSX * * @return void * @author John Eberle **/ function recheck_gsx($serial = '') { // Authenticate if (!$this->authorized()) { die('Authenticate first.'); // Todo: return json? } if (authorized_for_serial($serial)) { $gsx = new gsx_model($serial); //$gsx->get_gsx_stats($force=TRUE); $gsx->run_gsx_stats(); } redirect("clients/detail/{$serial}#tab_gsx-tab"); }
/** * Get some data for serial_number * * @author AvB **/ function get_data($serial_number = '') { $obj = new View(); if (authorized_for_serial($serial_number)) { $machine = new Machine_model(); new Reportdata_model(); new Disk_report_model(); new Warranty_model(); new Localadmin_model(); $sql = "SELECT m.*, r.*, w.purchase_date, w.end_date, w.status,\n l.users, d.TotalSize, d.FreeSpace, d.SMARTStatus, d.CoreStorageEncrypted\n FROM machine m \n LEFT JOIN reportdata r ON (m.serial_number = r.serial_number)\n LEFT JOIN warranty w ON (m.serial_number = w.serial_number)\n LEFT JOIN localadmin l ON (m.serial_number = l.serial_number)\n LEFT JOIN diskreport d ON (m.serial_number = d.serial_number AND d.MountPoint = '/')\n WHERE m.serial_number = ?\n "; $obj->view('json', array('msg' => $machine->query($sql, $serial_number))); } else { $obj->view('json', array('msg' => array())); } }
/** * Get some data for serial_number * * @author AvB **/ function get_data($serial_number = '') { $obj = new View(); if (authorized_for_serial($serial_number)) { $machine = new Machine_model(); new Reportdata_model(); new Disk_report_model(); new Warranty_model(); new Localadmin_model(); new Security_model(); $sql = "SELECT m.*, r.console_user, r.long_username, r.remote_ip,\n\t\t\t\t\t\tr.uptime, r.reg_timestamp, r.machine_group, r.timestamp,\n\t\t\t\t\t\ts.gatekeeper, s.sip, w.purchase_date, w.end_date,\n\t\t\t\t\t\tw.status, l.users, d.TotalSize, d.FreeSpace,\n\t\t\t\t\t\td.SMARTStatus, d.CoreStorageEncrypted\n FROM machine m \n\t\t\t\tLEFT JOIN reportdata r ON (m.serial_number = r.serial_number)\n\t\t\t\tLEFT JOIN security s ON (m.serial_number = s.serial_number)\n LEFT JOIN warranty w ON (m.serial_number = w.serial_number)\n LEFT JOIN localadmin l ON (m.serial_number = l.serial_number)\n LEFT JOIN diskreport d ON (m.serial_number = d.serial_number AND d.MountPoint = '/')\n WHERE m.serial_number = ?\n "; $obj->view('json', array('msg' => $machine->query($sql, $serial_number))); } else { $obj->view('json', array('msg' => array())); } }
/** * Get data for serial * * @return array data * @author **/ function get_data($serial_number, $hours = 24) { $out = array(); if (authorized_for_serial($serial_number)) { $date = new DateTime(); $date->sub(new DateInterval('PT' . $hours . 'H')); $fromdate = $date->format('Y-m-d H:i:s'); $what = implode(',', $this->keys) . ',datetime'; $where = 'serial_number = ? AND datetime > ? ORDER BY datetime'; foreach ($this->select($what, $where, array($serial_number, $fromdate), PDO::FETCH_NUM) as $row) { $key = array_pop($row); $row = array_map('floatval', $row); $out[$key] = $row; } } return $out; }
/** * Retrieve many considering machine_group membership * use this instead of retrieve_many * * @return void * @author **/ function retrieve_records($serial_number, $where = '', $bindings = array()) { if (!authorized_for_serial($serial_number)) { return array(); } // Prepend where with serial_number $where = $where ? 'serial_number=? AND ' . $where : 'serial_number=?'; // Push serial number in front of the array array_unshift($bindings, $serial_number); return $this->retrieve_many($where, $bindings); }