ftimme
2013-02-24 60f0b83fd836537bc5e53569515c31d8765f11c2
server/lib/classes/aps_installer.inc.php
@@ -294,7 +294,8 @@
        $db_id = parent::getXPathValue($sxe, '//db:id');
        if(empty($db_id)) return; // No database needed
        
      /*
      /* WARNING: if this will ever be uncommented please check the updated prefix handling for user and db names!!!
         *
        // Set the database owner to the domain owner
        // ISPConfig identifies the owner by the sys_groupid (not sys_userid!)
        // so sys_userid can be set to any value
@@ -396,8 +397,28 @@
            // Now delete an existing folder (affects install and removal in the same way)
            @chdir($this->local_installpath);
            if(file_exists($this->local_installpath)) exec("rm -Rf ".escapeshellarg($this->local_installpath).'*');
            else mkdir($this->local_installpath, 0777, true);
            if(file_exists($this->local_installpath)){
            // make sure we don't delete error and stats folders
            if($this->local_installpath == $this->document_root.'/'){
               if(is_dir($this->document_root)){
                  $files = array_diff(scandir($this->document_root), array('.','..','error','stats'));
                  foreach($files as $file){
                     if(is_dir($this->document_root.'/'.$file)){
                        $app->file->removeDirectory($this->document_root.'/'.$file);
                     } else {
                        @unlink($this->document_root.'/'.$file);
                     }
                  }
               } else {
                  @unlink($this->document_root);
                  mkdir($this->document_root, 0777, true);
               }
            } else {
               exec("rm -Rf ".escapeshellarg($this->local_installpath).'*');
            }
         } else {
            mkdir($this->local_installpath, 0777, true);
         }
            if($this->handle_type == 'install')
            {            
@@ -613,7 +634,7 @@
        if(!isset($task['instance_id'])) $task['instance_id'] = $instanceid;
      
      // Download aps package
      if(!file_exists($this->packages_dir.'/'.$task['path'])) {
      if(!file_exists($this->packages_dir.'/'.$task['path']) || filesize($this->packages_dir.'/'.$task['path']) == 0) {
         $ch = curl_init();
         $fh = fopen($this->packages_dir.'/'.$task['path'], 'wb');
         curl_setopt($ch, CURLOPT_FILE, $fh);