ftimme
2013-06-08 fe9a23f542bc56c1c0b6dc30257418e38ff7bd3a
server/lib/classes/aps_installer.inc.php
@@ -397,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')
            {            
@@ -425,6 +445,11 @@
                $this->file_owner_user = $owner_res['system_user']; 
                $this->file_owner_group = $owner_res['system_group'];
                exec('chown -R '.$this->file_owner_user.':'.$this->file_owner_group.' '.escapeshellarg($this->local_installpath));
            //* Chown stats directory back
            if(is_dir($this->local_installpath.'stats')) {
               exec('chown -R root:root '.escapeshellarg($this->local_installpath.'stats'));
            }
            }
        }
        catch(Exception $e)
@@ -558,6 +583,11 @@
            {
                // The install succeeded, chown newly created files too
                exec('chown -R '.$this->file_owner_user.':'.$this->file_owner_group.' '.escapeshellarg($this->local_installpath));
            //* Chown stats directory back
            if(is_dir($this->local_installpath.'stats')) {
               exec('chown -R root:root '.escapeshellarg($this->local_installpath.'stats'));
            }
                
                $app->dbmaster->query('UPDATE aps_instances SET instance_status = "'.INSTANCE_SUCCESS.'" 
                    WHERE id = "'.$app->db->quote($task['instance_id']).'";');