define('GLPI_ROOT', '../../..'); include GLPI_ROOT . "/inc/includes.php"; PluginFusioninventoryAuth::checkRight("snmp_printers", "r"); if (isset($_POST['update']) && isset($_POST['ID'])) { PluginFusioninventoryAuth::checkRight("snmp_printers", "w"); $plugin_fusioninventory_printers = new PluginFusioninventoryPrinters(); $_POST['FK_printers'] = $_POST['ID']; unset($_POST['ID']); $query = "SELECT * \n FROM `glpi_plugin_fusioninventory_printers`\n WHERE `FK_printers`='" . $_POST['FK_printers'] . "' "; $result = $DB->query($query); $data = $DB->fetch_assoc($result); $_POST['ID'] = $data['ID']; $plugin_fusioninventory_printers->update($_POST); } else { if (isset($_POST["GetRightModel"]) && isset($_POST['ID'])) { $plugin_fusioninventory_model_infos = new PluginFusioninventoryModelInfos(); $plugin_fusioninventory_model_infos->getrightmodel($_POST['ID'], PRINTER_TYPE); } } if (isset($_POST['update_cartridges']) && isset($_POST['ID'])) { PluginFusioninventoryAuth::checkRight("snmp_printers", "w"); $plugin_fusioninventory_printers_cartridges = new PluginFusioninventoryPrintersCartridges(); $query = "SELECT * \n FROM `glpi_plugin_fusioninventory_printers_cartridges`\n WHERE `FK_printers`='" . $_POST['ID'] . "'\n AND `object_name`='" . $_POST['object_name'] . "' "; $result = $DB->query($query); if ($DB->numrows($result) == "0") { $_POST['FK_printers'] = $_POST['ID']; unset($_POST['ID']); $plugin_fusioninventory_printers_cartridges->add($_POST); } else { $data = $DB->fetch_assoc($result); $plugin_fusioninventory_printers_cartridges->update($_POST);
GLPI is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GLPI; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------ */ // ---------------------------------------------------------------------- // Original Author of file: David DURIEUX // Purpose of file: // ---------------------------------------------------------------------- $NEEDED_ITEMS = array("networking"); define('GLPI_ROOT', '../../..'); include GLPI_ROOT . "/inc/includes.php"; checkRight("networking", "r"); PluginFusioninventoryAuth::checkRight("snmp_networking", "r"); $plugin_fusioninventory_snmp = new PluginFusioninventorySNMP(); if (isset($_POST['update']) && isset($_POST['ID'])) { PluginFusioninventoryAuth::checkRight("snmp_networking", "w"); $plugin_fusioninventory_snmp->update_network_infos($_POST['ID'], $_POST['model_infos'], $_POST['FK_snmp_connection']); } else { if (isset($_POST["GetRightModel"]) && isset($_POST['ID'])) { $plugin_fusioninventory_model_infos = new PluginFusioninventoryModelInfos(); $plugin_fusioninventory_model_infos->getrightmodel($_POST['ID'], NETWORKING_TYPE); } } glpi_header($_SERVER['HTTP_REFERER']);
function generatemodels() { global $DB; $ptmi = new PluginFusioninventoryModelInfos(); $ptmn = new PluginFusioninventoryMib(); $query = "SELECT glpi_plugin_fusioninventory_construct_device.ID, type FROM glpi_plugin_fusioninventory_construct_device\n LEFT JOIN glpi_plugin_fusioninventory_construct_walks on glpi_plugin_fusioninventory_construct_device.ID = construct_device_id\n WHERE type IN (1,2,3)\n AND log!=''"; if ($result = $DB->query($query)) { while ($data = $DB->fetch_array($result)) { // Load mibs $a_mib = array(); $count_mib = 0; $query_mibs = "SELECT * FROM glpi_plugin_fusioninventory_construct_mibs\n WHERE construct_device_id='" . $data["ID"] . "' "; if ($result_mibs = $DB->query($query_mibs)) { while ($data_mibs = $DB->fetch_array($result_mibs)) { $a_mib[$data_mibs['mib_oid_id']]['mapping_type'] = $data_mibs['mapping_type']; $a_mib[$data_mibs['mib_oid_id']]['mapping_name'] = $data_mibs['mapping_name']; $a_mib[$data_mibs['mib_oid_id']]['oid_port_counter'] = $data_mibs['oid_port_counter']; $a_mib[$data_mibs['mib_oid_id']]['oid_port_dyn'] = $data_mibs['oid_port_dyn']; $a_mib[$data_mibs['mib_oid_id']]['vlan'] = $data_mibs['vlan']; $count_mib++; } } // See if model exactly exists $query_models = "SELECT * FROM glpi_plugin_fusioninventory_model_infos"; $existent = 0; if ($result_models = $DB->query($query_models)) { while ($data_models = $DB->fetch_array($result_models)) { if ($existent != '1') { $count_mib_model = 0; $query_mibs_model = "SELECT * FROM glpi_plugin_fusioninventory_mib\n WHERE FK_model_infos='" . $data_models['ID'] . "' "; if ($result_mib_model = $DB->query($query_mibs_model)) { while ($data_mib_model = $DB->fetch_array($result_mib_model)) { $count_mib_model++; if ($existent != '-1') { if (isset($a_mib[$data_mib_model['FK_mib_oid']]['mapping_type'])) { // Oid Existe, on vérifie si tous les paramètres sont pareils if ($a_mib[$data_mib_model['FK_mib_oid']]['mapping_type'] == $data_mib_model['mapping_type'] and $a_mib[$data_mib_model['FK_mib_oid']]['mapping_name'] == $data_mib_model['mapping_name'] and $a_mib[$data_mib_model['FK_mib_oid']]['oid_port_counter'] == $data_mib_model['oid_port_counter'] and $a_mib[$data_mib_model['FK_mib_oid']]['oid_port_dyn'] == $data_mib_model['oid_port_dyn'] and $a_mib[$data_mib_model['FK_mib_oid']]['vlan'] == $data_mib_model['vlan']) { } else { $existent = '-1'; } } else { $existent = '-1'; } } } } if ($existent == '0' and $count_mib == $count_mib_model) { // Add number in database $query_update = "UPDATE glpi_plugin_fusioninventory_construct_device\n SET snmpmodel_id='" . $data_models['ID'] . "'\n WHERE ID='" . $data["ID"] . "'"; $DB->query($query_update); $existent = 1; } else { $existent = 0; } } } } if ($existent != '1') { // Create model $a_input = array(); $a_input['name'] = rand(10000, 10000000); $a_input['device_type'] = $data["type"]; $a_input['activation'] = 1; $id = $ptmi->add($a_input); $query_mibs = "SELECT * FROM glpi_plugin_fusioninventory_construct_mibs\n WHERE construct_device_id='" . $data["ID"] . "' "; if ($result_mibs = $DB->query($query_mibs)) { while ($data_mibs = $DB->fetch_array($result_mibs)) { $a_input = array(); $a_input['FK_model_infos'] = $id; $a_input['FK_mib_oid'] = $data_mibs['mib_oid_id']; $a_input['oid_port_counter'] = $data_mibs['oid_port_counter']; $a_input['oid_port_dyn'] = $data_mibs['oid_port_dyn']; $a_input['vlan'] = $data_mibs['vlan']; $a_input['links_oid_fields'] = $data_mibs['mapping_type'] . "||" . $data_mibs['mapping_name']; $a_input['activation'] = 1; $ptmn->add($a_input); } } $query_update = "UPDATE glpi_plugin_fusioninventory_construct_device\n SET snmpmodel_id='" . $id . "'\n WHERE ID='" . $data["ID"] . "'"; $DB->query($query_update); } } } // Add Number //key : Networking0006 $query = "SELECT * FROM glpi_plugin_fusioninventory_model_infos\n WHERE discovery_key LIKE 'Networking%'\n ORDER BY discovery_key DESC\n LIMIT 1"; $result = $DB->query($query); $data = $DB->fetch_assoc($result); $num = 1; if (!empty($data['discovery_key'])) { $num = str_replace('Networking', '', $data['discovery_key']); $num++; } $query = "SELECT * FROM glpi_plugin_fusioninventory_model_infos\n WHERE (discovery_key IS NULL OR discovery_key='')\n AND device_type='" . NETWORKING_TYPE . "' "; if ($result = $DB->query($query)) { while ($data = $DB->fetch_array($result)) { while (strlen($num) < 4) { $num = "0" . $num; } $query_update = "UPDATE glpi_plugin_fusioninventory_model_infos\n SET discovery_key='Networking" . $num . "'\n WHERE ID='" . $data['ID'] . "'"; $DB->query($query_update); $num++; } } // Printers $query = "SELECT * FROM glpi_plugin_fusioninventory_model_infos\n WHERE discovery_key LIKE 'Printer%'\n ORDER BY discovery_key DESC\n LIMIT 1"; $result = $DB->query($query); $data = $DB->fetch_assoc($result); if (empty($data['discovery_key'])) { $num = '1'; } else { $num = str_replace('Networking', '', $data['discovery_key']); $num++; } $query = "SELECT * FROM glpi_plugin_fusioninventory_model_infos\n WHERE (discovery_key IS NULL OR discovery_key='')\n AND device_type='" . PRINTER_TYPE . "' "; if ($result = $DB->query($query)) { while ($data = $DB->fetch_array($result)) { while (strlen($num) < 4) { $num = "0" . $num; } $query_update = "UPDATE glpi_plugin_fusioninventory_model_infos\n SET discovery_key='Printer" . $num . "'\n WHERE ID='" . $data['ID'] . "'"; $DB->query($query_update); $num++; } } }
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GLPI; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------ */ // Original Author of file: David DURIEUX // Purpose of file: // ---------------------------------------------------------------------- $NEEDED_ITEMS = array("setup", "rulesengine", "fusioninventory", "search"); define('GLPI_ROOT', '../../..'); include GLPI_ROOT . "/inc/includes.php"; PluginFusioninventoryAuth::checkRight("snmp_models", "r"); $plugin_fusioninventory_model_infos = new PluginFusioninventoryModelInfos(); $plugin_fusioninventory_mib_networking = new PluginFusioninventoryMib(); $importexport = new PluginFusioninventoryImportExport(); commonHeader($LANG['plugin_fusioninventory']["title"][0], $_SERVER["PHP_SELF"], "plugins", "fusioninventory", "models"); PluginFusioninventoryDisplay::mini_menu(); //if (isset ($_POST["add"]) && isset($_POST["ID"])) { if (isset($_POST["add"])) { PluginFusioninventoryAuth::checkRight("snmp_models", "w"); $plugin_fusioninventory_model_infos->add($_POST); glpi_header($_SERVER['HTTP_REFERER']); } else { if (isset($_POST["update"])) { PluginFusioninventoryAuth::checkRight("snmp_models", "w"); $plugin_fusioninventory_model_infos->update($_POST); glpi_header($_SERVER['HTTP_REFERER']); } else {
function plugin_fusioninventory_MassiveActionsProcess($data) { global $LANG; switch ($data['action']) { case "plugin_fusioninventory_get_model": if ($data['device_type'] == NETWORKING_TYPE) { foreach ($data['item'] as $key => $val) { if ($val == 1) { $PluginFusioninventoryModelInfos = new PluginFusioninventoryModelInfos(); $PluginFusioninventoryModelInfos->getrightmodel($key, NETWORKING_TYPE); } } } else { if ($data['device_type'] == PRINTER_TYPE) { foreach ($data['item'] as $key => $val) { if ($val == 1) { $PluginFusioninventoryModelInfos = new PluginFusioninventoryModelInfos(); $PluginFusioninventoryModelInfos->getrightmodel($key, PRINTER_TYPE); } } } } break; case "plugin_fusioninventory_assign_model": if ($data['device_type'] == NETWORKING_TYPE) { foreach ($data['item'] as $key => $val) { if ($val == 1) { PluginFusioninventoryMassiveaction::assign($key, NETWORKING_TYPE, "model", $data["snmp_model"]); } } } else { if ($data['device_type'] == PRINTER_TYPE) { foreach ($data['item'] as $key => $val) { if ($val == 1) { PluginFusioninventoryMassiveaction::assign($key, PRINTER_TYPE, "model", $data["snmp_model"]); } } } } break; case "plugin_fusioninventory_assign_auth": if ($data['device_type'] == NETWORKING_TYPE) { foreach ($data['item'] as $key => $val) { if ($val == 1) { PluginFusioninventoryMassiveaction::assign($key, NETWORKING_TYPE, "auth", $data["FK_snmp_connection"]); } } } else { if ($data['device_type'] == PRINTER_TYPE) { foreach ($data['item'] as $key => $val) { if ($val == 1) { PluginFusioninventoryMassiveaction::assign($key, PRINTER_TYPE, "auth", $data["FK_snmp_connection"]); } } } } break; case "plugin_fusioninventory_manage_locks": if ($data['device_type'] == NETWORKING_TYPE or $data['device_type'] == PRINTER_TYPE) { foreach ($data['item'] as $key => $val) { if ($val == 1) { if (isset($data["lockfield_fusioninventory"]) && count($data["lockfield_fusioninventory"])) { $tab = PluginFusioninventoryLock::exportChecksToArray($data["lockfield_fusioninventory"]); PluginFusioninventoryLock::setLockArray($data['type'], $key, $tab); } else { PluginFusioninventoryLock::setLockArray($data['type'], $key, array()); } } } } break; case "plugin_fusioninventory_discovery_import": if (PluginFusioninventory::haveRight("unknowndevices", "w")) { $Import = 0; $NoImport = 0; foreach ($data['item'] as $key => $val) { if ($val == 1) { list($Import, $NoImport) = PluginFusioninventoryDiscovery::import($key, $Import, $NoImport); } } addMessageAfterRedirect($LANG['plugin_fusioninventory']["discovery"][5] . " : " . $Import); addMessageAfterRedirect($LANG['plugin_fusioninventory']["discovery"][9] . " : " . $NoImport); } break; } }
/** * Add MODEL string to XML node * *@param $p_sxml_node XML node to complete *@param $p_id Model id *@return nothing **/ function addModel($p_sxml_node, $p_id) { $models = new PluginFusioninventoryModelInfos(); $mib_networking = new PluginFusioninventoryMib(); $models->getFromDB($p_id); $sxml_model = $p_sxml_node->addChild('MODEL'); $sxml_model->addAttribute('ID', $p_id); $sxml_model->addAttribute('NAME', $models->fields['name']); $mib_networking->oidList($sxml_model, $p_id); }