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());
 }