예제 #1
0
 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);
 }