public function executeIsoJsonDelete(sfWebRequest $request) { $directory = sfConfig::get("config_isos_dir"); $file = $request->getParameter('file'); $file_path = $directory . '/' . $file; $sys_msg = exec('stat -c "%F" ' . escapeshellarg($file_path), $sys_call); if (empty($sys_call)) { $info_message = Etva::getLogMessage(array('name' => $file, 'info' => ''), ETVA::_ERR_ISO_PROBLEM_); $msg_i18n = $this->getContext()->getI18N()->__(ETVA::_ERR_ISO_DELETE_, array('%info%' => $info_message)); $msg = array('success' => false, 'message' => $msg_i18n); $response = json_encode($msg); return $this->renderText($response); } $errors = Etva::verify_iso_usage($file); if ($errors) { $info_message = Etva::getLogMessage(array('name' => $file, 'info' => ETVA::_CDROM_INUSE_), ETVA::_ERR_ISO_INUSE_); $message = Etva::getLogMessage(array('info' => $info_message), ETVA::_ERR_ISO_DELETE_); $this->dispatcher->notify(new sfEvent(sfConfig::get('config_acronym'), 'event.log', array('message' => $message, 'priority' => EtvaEventLogger::ERR))); $i18n_br_sep = implode('<br>', $errors); $i18n_sp_sep = implode(' ', $errors); $i18n_iso_br_msg = $this->getContext()->getI18N()->__(ETVA::_ERR_ISO_INUSE_, array('%name%' => $file, '%info%' => '<br>' . $i18n_br_sep)); $i18n_iso_sp_msg = $this->getContext()->getI18N()->__(ETVA::_ERR_ISO_INUSE_, array('%name%' => $file, '%info%' => $i18n_sp_sep)); $message_i18n = $this->getContext()->getI18N()->__(ETVA::_ERR_ISO_PROBLEM_, array('%name%' => $file, '%info%' => '')); $msg = array('success' => false, 'agent' => sfConfig::get('config_acronym'), 'message' => $message_i18n, 'info' => $i18n_iso_br_msg, 'error' => $i18n_iso_sp_msg); $error = $this->setJsonError($msg); return $this->renderText($error); } if ($file && $request->isMethod('post') && stristr($sys_msg, 'file')) { if (unlink($file_path)) { $msg = array('success' => true); } else { $msg = array('success' => false, 'message' => $msg_i18n); } } else { $msg = array('success' => false, 'message' => $msg_i18n); } $response = json_encode($msg); return $this->renderText($response); }