Beispiel #1
0
 /**
  * Executa testes de dono de arquivo e permissão de escrita e leitura.
  * @return Array
  */
 public function getTests()
 {
     // Seta erro como falso.
     $result['logs']['error'] = 0;
     // Registra indice de mensagem no array.
     $result['logs']['message'] = '';
     // Pega array do setup.conf do Zend_Registry.
     $config = Zend_Registry::get('config');
     $classes = Snep_SoundFiles_Manager::getClasses();
     foreach ($classes as $classe) {
         $date[$classe['directory']] = array('exists' => 1, 'writable' => 1, 'readable' => 1);
     }
     $this->paths = isset($date) ? $date : false;
     if ($this->paths) {
         foreach ($this->paths as $path => $logs) {
             // Verifica existência do arquivo.
             if (!file_exists($path)) {
                 // Não existindo concatena mensagem de erro.
                 $result['logs']['message'] .= Zend_Registry::get("Zend_Translate")->translate(" {$path} does not exists.") . "\n";
                 // Seta erro como verdadeiro.
                 $result['logs']['error'] = 1;
                 // Existindo arquivo
             } else {
                 if (!file_exists($path . '/backup') || !file_exists($path . '/tmp')) {
                     $result['logs']['message'] .= Zend_Registry::get("Zend_Translate")->translate(" Subfolders not found ") . " tmp/ and backup/" . Zend_Registry::get("Zend_Translate")->translate(" in ") . $path . "\n";
                     $result['logs']['error'] = 1;
                 }
                 // Verifica se existe exigência de verificação de escrita.
                 if ($logs['writable']) {
                     if (!is_writable($path)) {
                         // Não existindo concatena mensagem de erro.
                         $result['logs']['message'] .= Zend_Registry::get("Zend_Translate")->translate(" {$path} does not have permition to be modified.") . "\n";
                         // Seta erro como verdadeiro.
                         $result['logs']['error'] = 1;
                     }
                 }
                 // Verifica se existe exigência de verificação de leitura
                 if ($logs['readable']) {
                     if (!is_readable($path)) {
                         // Não existindo concatena mensagem de erro.
                         $result['logs']['message'] .= Zend_Registry::get("Zend_Translate")->translate(" {$path} does not have permition to be viewed.") . "\n";
                         // Seta erro como verdadeiro.
                         $result['logs']['error'] = 1;
                     }
                 }
             }
             // Transforma newline em br
             $result['logs']['message'] = $result['logs']['message'];
         }
     }
     return $result['logs'];
 }
Beispiel #2
0
 /**
  *  Add Sound File
  */
 public function addAction()
 {
     $this->view->breadcrumb = Snep_Breadcrumb::renderPath(array($this->view->translate("Music on Hold Sessions"), $this->view->translate("Add")));
     $form = new Snep_Form(new Zend_Config_Xml("modules/default/forms/music_on_hold.xml"));
     $form->getElement('base')->setAttrib('readonly', true);
     if ($this->_request->getPost()) {
         $class = $_POST;
         $classes = Snep_SoundFiles_Manager::getClasses();
         $form_isValid = $form->isValid($_POST);
         if ($class['base'] != '/var/lib/asterisk/moh/') {
             $form->getElement('name')->addError($this->view->translate('Invalid Path'));
             $form_isValid = false;
         }
         if (file_exists($class['directory'])) {
             $form->getElement('directory')->addError($this->view->translate('Directory already exists'));
             $form_isValid = false;
         }
         foreach ($classes as $name => $item) {
             if ($item['name'] == $class['name']) {
                 $form->getElement('name')->addError($this->view->translate('Music on hold class already exists'));
                 $form_isValid = false;
             }
             $fullPath = $class['base'] . $class['directory'];
             if ($item['directory'] == $fullPath) {
                 $form->getElement('directory')->addError($this->view->translate('Directory already exists'));
                 $form_isValid = false;
             }
         }
         if ($form_isValid) {
             $_POST['directory'] = $_POST['base'] . $_POST['directory'];
             Snep_SoundFiles_Manager::addClass($_POST);
             $this->_redirect($this->getRequest()->getControllerName());
         }
     }
     $this->view->form = $form;
 }
Beispiel #3
0
 public function getClassFiles($class)
 {
     $allClasses = Snep_SoundFiles_Manager::getClasses();
     $classesFolder = array();
     foreach ($allClasses as $id => $xclass) {
         $classesFolder[$id] = $id;
     }
     if (file_exists($class['directory'])) {
         $allFiles = array();
         $files = array();
         foreach (scandir($class['directory']) as $file) {
             if (!preg_match("/^\\.+.*/", $file) && !in_array($file, $classesFolder)) {
                 if (preg_match("/^backup+.*/", $file)) {
                     foreach (scandir($class['directory'] . '/' . $file) as $backup) {
                         if (!preg_match("/^\\.+.*/", $backup)) {
                             //        $files[] = $class['directory'] .'/backup/'. $backup;
                         }
                     }
                 } elseif (preg_match("/^tmp+.*/", $file)) {
                     foreach (scandir($class['directory'] . '/' . $file) as $tmp) {
                         if (!preg_match("/^\\.+.*/", $tmp)) {
                             //       $files[] = $class['directory'] .'/tmp/'. $tmp;
                         }
                     }
                 } else {
                     $files[$file] = $class['directory'] . '/' . $file;
                     //$allFiles[$file] = $file;
                 }
             }
         }
         $resultado = array();
         foreach ($files as $name => $file) {
             $resultado[$name] = Snep_SoundFiles_Manager::get($name);
             $resultado[$name]['full'] = $file;
         }
         return $resultado;
     }
 }