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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -------------------------------------------------------------------------- */ // ---------------------------------------------------------------------- // Original Author of file: Julien Dombre // Purpose of file: // ---------------------------------------------------------------------- define('GLPI_ROOT', '..'); include GLPI_ROOT . "/inc/includes.php"; header("Content-Type: text/html; charset=UTF-8"); header_nocache(); if (!isset($_POST["id"])) { exit; } if (!isset($_REQUEST['glpi_tab'])) { exit; } $validation = new TicketValidation(); if ($_POST["id"] > 0 && $validation->getFromDB($_POST["id"])) { switch ($_REQUEST['glpi_tab']) { default: Plugin::displayAction($validation, $_REQUEST['glpi_tab']); } } ajaxFooter();
/** * Answer to a ticket validation request * for an authenticated user * * @param $params array of options (ticket, id2name) * @param $protocol the communication protocol used * * @return array of hashtable as glpi.getTicket **/ static function methodsetTicketValidation($params, $protocol) { global $DB, $CFG_GLPI; if (isset($params['help'])) { return array('approval' => 'integer,mandatory', 'id2name' => 'bool,optional', 'status' => 'text,mandatory', 'comment' => 'text,optional', 'help' => 'bool,optional'); } if (!Session::getLoginUserID()) { return self::Error($protocol, WEBSERVICES_ERROR_NOTAUTHENTICATED); } $ticket = new Ticket(); if (!isset($params['approval'])) { return self::Error($protocol, WEBSERVICES_ERROR_MISSINGPARAMETER, '', 'approval'); } if (!isset($params['status'])) { return self::Error($protocol, WEBSERVICES_ERROR_MISSINGPARAMETER, '', 'status'); } $tabstatus = TicketValidation::getAllStatusArray(); if (!isset($tabstatus[$params['status']])) { return self::Error($protocol, WEBSERVICES_ERROR_BADPARAMETER, '', 'status=' . $params['status']); } if ($params['status'] == 'rejected' && !isset($params['comment'])) { return self::Error($protocol, WEBSERVICES_ERROR_MISSINGPARAMETER, '', 'comment'); } $valid = new TicketValidation(); if (!$valid->getFromDB($params['approval'])) { return self::Error($protocol, WEBSERVICES_ERROR_NOTFOUND, '', 'approval'); } $input = array('id' => $valid->getField('id'), 'status' => $params['status']); if (isset($params['comment'])) { $input['comment_validation'] = addslashes($params['comment']); } if (!$valid->can($params['approval'], 'w')) { return self::Error($protocol, WEBSERVICES_ERROR_NOTALLOWED); } if ($valid->update($input)) { unset($params['approval'], $params['status'], $params['comment']); $params['ticket'] = $valid->getField('tickets_id'); return self::methodGetTicket($params, $protocol); } return self::Error($protocol, WEBSERVICES_ERROR_FAILED, '', self::getDisplayError()); }