/**
  * Delete module functionality
  * 
  * @return afResponse
  * @author Sergey Startsev
  */
 protected function processDelete()
 {
     $type = $this->getParameter('type');
     $place = $this->getParameter('place');
     $name = $this->getParameter('name');
     $permissions = new Permissions();
     $are_writable = $permissions->areWritable(array(sfConfig::get('sf_apps_dir') . '/' . $place . '/modules/', sfConfig::get('sf_apps_dir') . '/' . $place . '/modules/' . $name));
     if ($are_writable !== true) {
         return $are_writable;
     }
     $response = afResponseHelper::create();
     $console = afStudioConsole::getInstance();
     if (!$type || !$place || !$name) {
         return $response->success(false)->message("Can't delete module <b>{$name}</b> inside <b>{$place}</b> {$type}!");
     }
     $moduleDir = afStudioUtil::getRootDir() . "/{$type}s/{$place}/modules/{$name}/";
     afsFileSystem::create()->remove($moduleDir);
     if (file_exists($moduleDir)) {
         return $response->success(false)->message("Can't delete module <b>{$name}</b> inside <b>{$place}</b> {$type}!");
     }
     return $response->success(true)->message("Deleted module <b>{$name}</b> inside <b>{$place}</b> {$type}!")->console($console->execute('sf cc'));
 }
 /**
  * Delete xml functionality
  * 
  * @return afResponse
  * @author Sergey Startsev
  */
 protected function processDelete()
 {
     // init params
     $name = pathinfo($this->getParameter('name'), PATHINFO_FILENAME);
     $module = $this->getParameter('module');
     $model = $this->getParameter('model');
     $place = $this->getParameter('place');
     $place_type = $this->getParameter('type', 'app');
     if ($place_type == 'app') {
         $dir = 'apps';
     } elseif ($place_type == 'plugin') {
         $dir = 'plugins';
     }
     $permissions = new Permissions();
     $are_writable = $permissions->areWritable(array(sfConfig::get('sf_root_dir') . '/' . $dir . '/' . $place . '/modules/', sfConfig::get('sf_root_dir') . '/' . $dir . '/' . $place . '/modules/' . $module, sfConfig::get('sf_root_dir') . '/' . $dir . '/' . $place . '/modules/' . $module . '/actions/', sfConfig::get('sf_root_dir') . '/' . $dir . '/' . $place . '/modules/' . $module . '/templates/'));
     if ($are_writable !== true) {
         return $are_writable;
     }
     // retrieve widget
     $widget = afsWidgetModelHelper::retrieve($name, $module, $place, $place_type, $model);
     if (!$widget->isNew()) {
         $response = $widget->delete();
         if ($response->getParameter(afResponseSuccessDecorator::IDENTIFICATOR)) {
             $response->console(afStudioConsole::getInstance()->execute('sf cc'));
         }
         return $response;
     }
     return afResponseHelper::create()->success(false)->message("Widget <b>{$name}</b> doesn't exists");
 }
 /**
  * Add plugin functionality
  * 
  * @return afResponse
  * @author Sergey Startsev
  */
 protected function processAdd()
 {
     $name = $this->getParameter('name');
     $root = sfConfig::get('sf_root_dir');
     $console = afStudioConsole::getInstance();
     $response = afResponseHelper::create();
     $filesystem = afsFileSystem::create();
     $permissions = new Permissions();
     $are_writable = $permissions->areWritable(array($root . "/plugins/"));
     if ($are_writable !== true) {
         return $are_writable;
     }
     $dir = "{$root}/plugins/{$name}";
     if (empty($name)) {
         return $response->success(false)->message('Please enter plugin name');
     }
     if (substr($name, -6) != 'Plugin') {
         return $response->success(false)->message("Plugin '{$name}' should Contains 'Plugin' in the end");
     }
     if (file_exists($dir)) {
         return $response->success(false)->message("Plugin '{$name}' already exists");
     }
     $dirs = array($dir, "{$dir}/config", "{$dir}/modules");
     foreach ($dirs as $dir) {
         $filesystem->mkdirs($dir);
     }
     if (file_exists($dir)) {
         // create config file with auto enable all modules in current plugin
         $created = afStudioUtil::writeFile("{$dir}/config/config.php", afStudioPluginCommandTemplate::config($name));
         $console_result = $console->execute(array('afs fix-perms', 'sf cc'));
         return $response->success(true)->message("Plugin '{$name}' successfully created")->console($console_result);
     }
     return $response->success(false)->message("Some problems to create dirs, please check permissions, and run fix-perms task");
 }
 /**
  * Checking if model is writable
  *
  * @return true or afResponseHelper
  * @author Michal Piotrowski
  */
 public function isModelWritable()
 {
     $permissions = new Permissions();
     $are_writable = $permissions->areWritable(array(sfConfig::get('sf_config_dir') . '/schema.yml', sfConfig::get('sf_lib_dir') . '/filter', sfConfig::get('sf_lib_dir') . '/filter/base', sfConfig::get('sf_lib_dir') . '/form', sfConfig::get('sf_lib_dir') . '/form/base', sfConfig::get('sf_lib_dir') . '/model', sfConfig::get('sf_lib_dir') . '/model/map', sfConfig::get('sf_lib_dir') . '/model/migration', sfConfig::get('sf_lib_dir') . '/model/om'), true);
     return $are_writable;
 }
Ejemplo n.º 5
0
 /**
  * Configuring project
  *
  * @param sfWebRequest $request 
  * @return string
  */
 public function executeConfigureProject(sfWebRequest $request)
 {
     $permissions = new Permissions();
     $are_writable = $permissions->areWritable(array(sfConfig::get('sf_root_dir') . '/config/databases.yml', sfConfig::get('sf_root_dir') . '/config/project.yml'));
     if ($are_writable !== true) {
         echo $are_writable;
         die;
     }
     $pcm = new ProjectConfigurationManager($request);
     return $this->renderText($pcm->build());
 }