/** * Prepare input datas for updating the item * * @see CommonDBTM::prepareInputForUpdate() * * @param $input array of datas used to update the item * * @return the modified $input array **/ function prepareInputForUpdate($input) { global $CFG_GLPI; // Update only an item if (isset($input['context'])) { return $input; } // Process configuration for plugins if (!empty($input['config_context'])) { $config_context = $input['config_context']; unset($input['id']); unset($input['_glpi_csrf_token']); unset($input['update']); unset($input['config_context']); if (!empty($input['config_class']) && class_exists($input['config_class']) && method_exists($input['config_class'], 'configUpdate')) { $config_method = $input['config_class'] . '::configUpdate'; unset($input['config_class']); $input = call_user_func($config_method, $input); } $this->setConfigurationValues($config_context, $input); return false; } if (isset($input['allow_search_view']) && !$input['allow_search_view']) { // Global search need "view" $input['allow_search_global'] = 0; } if (isset($input["smtp_passwd"])) { if (empty($input["smtp_passwd"])) { unset($input["smtp_passwd"]); } else { $input["smtp_passwd"] = Toolbox::encrypt(stripslashes($input["smtp_passwd"]), GLPIKEY); } } if (isset($input["_blank_smtp_passwd"]) && $input["_blank_smtp_passwd"]) { $input['smtp_passwd'] = ''; } if (isset($input["proxy_passwd"])) { if (empty($input["proxy_passwd"])) { unset($input["proxy_passwd"]); } else { $input["proxy_passwd"] = Toolbox::encrypt(stripslashes($input["proxy_passwd"]), GLPIKEY); } } if (isset($input["_blank_proxy_passwd"]) && $input["_blank_proxy_passwd"]) { $input['proxy_passwd'] = ''; } // Manage DB Slave process if (isset($input['_dbslave_status'])) { $already_active = DBConnection::isDBSlaveActive(); if ($input['_dbslave_status']) { DBConnection::changeCronTaskStatus(true); if (!$already_active) { // Activate Slave from the "system" tab DBConnection::createDBSlaveConfig(); } else { if (isset($input["_dbreplicate_dbhost"])) { // Change parameter from the "replicate" tab DBConnection::saveDBSlaveConf($input["_dbreplicate_dbhost"], $input["_dbreplicate_dbuser"], $input["_dbreplicate_dbpassword"], $input["_dbreplicate_dbdefault"]); } } } if (!$input['_dbslave_status'] && $already_active) { DBConnection::deleteDBSlaveConfig(); DBConnection::changeCronTaskStatus(false); } } // Matrix for Impact / Urgence / Priority if (isset($input['_matrix'])) { $tab = array(); for ($urgency = 1; $urgency <= 5; $urgency++) { for ($impact = 1; $impact <= 5; $impact++) { $priority = $input["_matrix_{$urgency}_{$impact}"]; $tab[$urgency][$impact] = $priority; } } $input['priority_matrix'] = exportArrayToDB($tab); $input['urgency_mask'] = 0; $input['impact_mask'] = 0; for ($i = 1; $i <= 5; $i++) { if ($input["_urgency_{$i}"]) { $input['urgency_mask'] += 1 << $i; } if ($input["_impact_{$i}"]) { $input['impact_mask'] += 1 << $i; } } } // Beware : with new management system, we must update each value unset($input['id']); unset($input['_glpi_csrf_token']); unset($input['update']); // Add skipMaintenance if maintenance mode update if (isset($input['maintenance_mode']) && $input['maintenance_mode']) { $_SESSION['glpiskipMaintenance'] = 1; $url = $CFG_GLPI['root_doc'] . "/index.php?skipMaintenance=1"; Session::addMessageAfterRedirect(sprintf(__('Maintenance mode activated. Backdoor using: %s'), "<a href='{$url}'>{$url}</a>"), false, WARNING); } $this->setConfigurationValues('core', $input); return false; }
/** * Prepare input datas for updating the item * * @param $input datas used to update the item * * @return the modified $input array **/ function prepareInputForUpdate($input) { if (isset($input["smtp_passwd"])) { if (empty($input["smtp_passwd"])) { unset($input["smtp_passwd"]); } else { $input["smtp_passwd"] = encrypt(stripslashes($input["smtp_passwd"]), GLPIKEY); } } if (isset($input["proxy_passwd"])) { if (empty($input["proxy_passwd"])) { unset($input["proxy_passwd"]); } else { $input["proxy_passwd"] = encrypt(stripslashes($input["proxy_passwd"]), GLPIKEY); } } // Manage DB Slave process if (isset($input['_dbslave_status'])) { $already_active = DBConnection::isDBSlaveActive(); if ($input['_dbslave_status']) { DBConnection::changeCronTaskStatus(true); if (!$already_active) { // Activate Slave from the "system" tab DBConnection::createDBSlaveConfig(); } else { if (isset($input["_dbreplicate_dbhost"])) { // Change parameter from the "replicate" tab DBConnection::saveDBSlaveConf($input["_dbreplicate_dbhost"], $input["_dbreplicate_dbuser"], $input["_dbreplicate_dbpassword"], $input["_dbreplicate_dbdefault"]); } } } if (!$input['_dbslave_status'] && $already_active) { DBConnection::deleteDBSlaveConfig(); DBConnection::changeCronTaskStatus(false); } } // Matrix for Impact / Urgence / Priority if (isset($input['_matrix'])) { $tab = array(); for ($urgency = 1; $urgency <= 5; $urgency++) { for ($impact = 1; $impact <= 5; $impact++) { $priority = $input["_matrix_{$urgency}_{$impact}"]; $tab[$urgency][$impact] = $priority; } } $input['priority_matrix'] = exportArrayToDB($tab); $input['urgency_mask'] = 0; $input['impact_mask'] = 0; for ($i = 1; $i <= 5; $i++) { if ($input["_urgency_{$i}"]) { $input['urgency_mask'] += 1 << $i; } if ($input["_impact_{$i}"]) { $input['impact_mask'] += 1 << $i; } } } return $input; }