WordPress.org

Make WordPress Core

Changeset 12997


Ignore:
Timestamp:
02/07/2010 01:12:29 AM (8 years ago)
Author:
dd32
Message:

Fix recursive chmod for WP_Filesystem. Props reaperhulk for FtpExt. Fixes #11261

Location:
trunk/wp-admin/includes
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/wp-admin/includes/class-wp-filesystem-direct.php

    r12741 r12997  
    136136        $file = trailingslashit($file);
    137137        $filelist = $this->dirlist($file);
    138         foreach ($filelist as $filename)
     138        foreach ( (array)$filelist as $filename => $filemeta)
    139139            $this->chmod($file . $filename, $mode, $recursive);
    140140
  • trunk/wp-admin/includes/class-wp-filesystem-ftpext.php

    r12733 r12997  
    155155        }
    156156
    157         if ( ! $recursive || ! $this->is_dir($file) ) {
    158             if ( ! function_exists('ftp_chmod') )
    159                 return @ftp_site($this->link, sprintf('CHMOD %o %s', $mode, $file));
    160             return @ftp_chmod($this->link, $mode, $file);
    161         }
    162         //Is a directory, and we want recursive
    163         $filelist = $this->dirlist($file);
    164         foreach ( $filelist as $filename ) {
    165             $this->chmod($file . '/' . $filename, $mode, $recursive);
    166         }
    167         return true;
     157        // chmod any sub-objects if recursive.
     158        if ( $recursive && $this->is_dir($file) ) {
     159            $filelist = $this->dirlist($file);
     160            foreach ( (array)$filelist as $filename => $filemeta )
     161                $this->chmod($file . '/' . $filename, $mode, $recursive);
     162        }
     163
     164        // chmod the file or directory
     165        if ( ! function_exists('ftp_chmod') )
     166            return @ftp_site($this->link, sprintf('CHMOD %o %s', $mode, $file));
     167        return @ftp_chmod($this->link, $mode, $file);
    168168    }
    169169    function chown($file, $owner, $recursive = false ) {
  • trunk/wp-admin/includes/class-wp-filesystem-ftpsockets.php

    r12723 r12997  
    165165        }
    166166
    167         if ( ! $recursive || ! $this->is_dir($file) ) {
    168             return $this->ftp->chmod($file, $mode);
    169         }
    170 
    171         //Is a directory, and we want recursive
    172         $filelist = $this->dirlist($file);
    173         foreach ( $filelist as $filename )
    174             $this->chmod($file . '/' . $filename, $mode, $recursive);
    175 
    176         return true;
     167        // chmod any sub-objects if recursive.
     168        if ( $recursive && $this->is_dir($file) ) {
     169            $filelist = $this->dirlist($file);
     170            foreach ( (array)$filelist as $filename => $filemeta )
     171                $this->chmod($file . '/' . $filename, $mode, $recursive);
     172        }
     173
     174        // chmod the file or directory
     175        return $this->ftp->chmod($file, $mode);
    177176    }
    178177
Note: See TracChangeset for help on using the changeset viewer.