WordPress.org

Make WordPress Core

Ticket #10170: 10170.2.diff

File 10170.2.diff, 8.2 KB (added by dd32, 5 years ago)
  • wp-admin/includes/class-wp-filesystem-base.php

     
    210210                        return trailingslashit($base . $last_path); 
    211211                } 
    212212                if ( $loop ) 
    213                         return false;//Prevent tihs function looping again. 
     213                        return false; //Prevent tihs function looping again. 
    214214                //As an extra last resort, Change back to / if the folder wasnt found. This comes into effect when the CWD is /home/user/ but WP is at /var/www/.... mainly dedicated setups. 
    215215                return $this->search_for_folder($folder, '/', true); 
    216216 
     
    242242                        $info = 'd'; 
    243243                elseif (($perms & 0x2000) == 0x2000) // Character special 
    244244                        $info = 'c'; 
    245                 elseif (($perms & 0x1000) == 0x1000)// FIFO pipe 
     245                elseif (($perms & 0x1000) == 0x1000) // FIFO pipe 
    246246                        $info = 'p'; 
    247247                else // Unknown 
    248248                        $info = 'u'; 
  • wp-admin/includes/class-wp-filesystem-direct.php

     
    1515 * @uses WP_Filesystem_Base Extends class 
    1616 */ 
    1717class WP_Filesystem_Direct extends WP_Filesystem_Base { 
    18         var $permission = null; 
    1918        var $errors = null; 
    2019        function WP_Filesystem_Direct($arg) { 
    2120                $this->method = 'direct'; 
    2221                $this->errors = new WP_Error(); 
    23                 $this->permission = umask(); 
    2422        } 
    2523        function connect() { 
    2624                return true; 
    2725        } 
    28         function setDefaultPermissions($perm) { 
    29                 $this->permission = $perm; 
    30         } 
    3126        function get_contents($file) { 
    3227                return @file_get_contents($file); 
    3328        } 
     
    6358 
    6459                return true; 
    6560        } 
    66         function chmod($file, $mode = false, $recursive = false) { 
    67                 if ( ! $mode ) 
    68                         $mode = $this->permission; 
     61        function chmod($file, $mode, $recursive = false) { 
    6962                if ( ! $this->exists($file) ) 
    7063                        return false; 
    7164                if ( ! $recursive ) 
    72                         return @chmod($file,$mode); 
     65                        return @chmod($file, $mode); 
    7366                if ( ! $this->is_dir($file) ) 
    7467                        return @chmod($file, $mode); 
    7568                //Is a directory, and we want recursive 
     
    198191 
    199192        function mkdir($path, $chmod = false, $chown = false, $chgrp = false){ 
    200193                if ( ! $chmod) 
    201                         $chmod = $this->permission; 
     194                        $chmod = FS_CHMOD_DIR; 
    202195 
    203196                if ( ! @mkdir($path, $chmod) ) 
    204197                        return false; 
     198                chmod($path, $chmod); 
    205199                if ( $chown ) 
    206200                        $this->chown($path, $chown); 
    207201                if ( $chgrp ) 
  • wp-admin/includes/class-wp-filesystem-ftpext.php

     
    2020        var $errors = null; 
    2121        var $options = array(); 
    2222 
    23         var $permission = null; 
    24  
    2523        function WP_Filesystem_FTPext($opt='') { 
    2624                $this->method = 'ftpext'; 
    2725                $this->errors = new WP_Error(); 
     
    8482                return true; 
    8583        } 
    8684 
    87         function setDefaultPermissions($perm) { 
    88                 $this->permission = $perm; 
    89         } 
    90  
    9185        function get_contents($file, $type = '', $resumepos = 0 ){ 
    9286                if( empty($type) ) 
    9387                        $type = FTP_BINARY; 
     
    139133        function chgrp($file, $group, $recursive = false ) { 
    140134                return false; 
    141135        } 
    142         function chmod($file, $mode = false, $recursive = false) { 
    143                 if( ! $mode ) 
    144                         $mode = $this->permission; 
    145                 if( ! $mode ) 
    146                         return false; 
     136        function chmod($file, $mode, $recursive = false) { 
    147137                if ( ! $this->exists($file) && ! $this->is_dir($file) ) 
    148138                        return false; 
    149139                if ( ! $recursive || ! $this->is_dir($file) ) { 
     
    153143                } 
    154144                //Is a directory, and we want recursive 
    155145                $filelist = $this->dirlist($file); 
    156                 foreach($filelist as $filename){ 
     146                foreach ( $filelist as $filename){ 
    157147                        $this->chmod($file . '/' . $filename, $mode, $recursive); 
    158148                } 
    159149                return true; 
     
    237227                return false; 
    238228        } 
    239229        function mkdir($path, $chmod = false, $chown = false, $chgrp = false) { 
    240                 if( !ftp_mkdir($this->link, $path) ) 
     230                if  ( !ftp_mkdir($this->link, $path) ) 
    241231                        return false; 
    242                 if( $chmod ) 
    243                         $this->chmod($path, $chmod); 
    244                 if( $chown ) 
     232                if( ! $chmod ) 
     233                        $chmod = FS_CHMOD_DIR; 
     234                $this->chmod($path, $chmod); 
     235                if ( $chown ) 
    245236                        $this->chown($path, $chown); 
    246                 if( $chgrp ) 
     237                if ( $chgrp ) 
    247238                        $this->chgrp($path, $chgrp); 
    248239                return true; 
    249240        } 
     
    256247                if ( is_null($is_windows) ) 
    257248                        $is_windows = strpos( strtolower(ftp_systype($this->link)), 'win') !== false; 
    258249 
    259                 if ($is_windows && preg_match("/([0-9]{2})-([0-9]{2})-([0-9]{2}) +([0-9]{2}):([0-9]{2})(AM|PM) +([0-9]+|<DIR>) +(.+)/", $line, $lucifer)) { 
     250                if ( $is_windows && preg_match("/([0-9]{2})-([0-9]{2})-([0-9]{2}) +([0-9]{2}):([0-9]{2})(AM|PM) +([0-9]+|<DIR>) +(.+)/", $line, $lucifer) ) { 
    260251                        $b = array(); 
    261                         if ($lucifer[3]<70) { $lucifer[3] +=2000; } else { $lucifer[3]+=1900; } // 4digit year fix 
     252                        if ( $lucifer[3] < 70 ) { $lucifer[3] +=2000; } else { $lucifer[3] += 1900; } // 4digit year fix 
    262253                        $b['isdir'] = ($lucifer[7]=="<DIR>"); 
    263254                        if ( $b['isdir'] ) 
    264255                                $b['type'] = 'd'; 
  • wp-admin/includes/class-wp-filesystem-ftpsockets.php

     
    2020        var $errors = null; 
    2121        var $options = array(); 
    2222 
    23         var $permission = null; 
    24  
    2523        function WP_Filesystem_ftpsockets($opt = '') { 
    2624                $this->method = 'ftpsockets'; 
    2725                $this->errors = new WP_Error(); 
     
    8280                return true; 
    8381        } 
    8482 
    85         function setDefaultPermissions($perm) { 
    86                 $this->permission = $perm; 
    87         } 
    88  
    8983        function get_contents($file, $type = '', $resumepos = 0) { 
    9084                if( ! $this->exists($file) ) 
    9185                        return false; 
     
    157151                return false; 
    158152        } 
    159153 
    160         function chmod($file, $mode = false, $recursive = false ) { 
    161                 if( ! $mode ) 
    162                         $mode = $this->permission; 
    163                 if( ! $mode ) 
    164                         return false; 
     154        function chmod($file, $mode, $recursive = false ) { 
    165155                //if( ! $this->exists($file) ) 
    166156                //      return false; 
    167157                if( ! $recursive || ! $this->is_dir($file) ) { 
    168                         return $this->ftp->chmod($file,$mode); 
     158                        return $this->ftp->chmod($file, $mode); 
    169159                } 
    170160                //Is a directory, and we want recursive 
    171161                $filelist = $this->dirlist($file); 
     
    266256        function mkdir($path, $chmod = false, $chown = false, $chgrp = false ) { 
    267257                if( ! $this->ftp->mkdir($path) ) 
    268258                        return false; 
    269                 if( $chmod ) 
    270                         $this->chmod($path, $chmod); 
     259                if( ! $chmod ) 
     260                        $chmod = FS_CHMOD_DIR; 
     261                $this->chmod($path, $chmod); 
    271262                if( $chown ) 
    272263                        $this->chown($path, $chown); 
    273264                if( $chgrp ) 
  • wp-admin/includes/class-wp-filesystem-ssh2.php

     
    5656        var $errors = array(); 
    5757        var $options = array(); 
    5858 
    59         var $permission = 0644; 
    60  
    6159        function WP_Filesystem_SSH2($opt='') { 
    6260                $this->method = 'ssh2'; 
    6361                $this->errors = new WP_Error(); 
     
    160158                return false; 
    161159        } 
    162160 
    163         function setDefaultPermissions($perm) { 
    164                 $this->debug("setDefaultPermissions();"); 
    165                 if ( $perm ) 
    166                         $this->permission = $perm; 
    167         } 
    168  
    169161        function get_contents($file, $type = '', $resumepos = 0 ) { 
    170162                $file = ltrim($file, '/'); 
    171163                return file_get_contents('ssh2.sftp://' . $this->sftp_link . '/' . $file); 
     
    200192                return $this->run_command(sprintf('chgrp -R %o %s', $mode, escapeshellarg($file)), true); 
    201193        } 
    202194 
    203         function chmod($file, $mode = false, $recursive = false) { 
    204                 if( ! $mode ) 
    205                         $mode = $this->permission; 
    206                 if( ! $mode ) 
    207                         return false; 
     195        function chmod($file, $mode, $recursive = false) { 
    208196                if ( ! $this->exists($file) ) 
    209197                        return false; 
    210198                if ( ! $recursive || ! $this->is_dir($file) ) 
     
    315303                //Not implmented. 
    316304        } 
    317305 
    318         function mkdir($path, $chmod = null, $chown = false, $chgrp = false) { 
     306        function mkdir($path, $chmod = false, $chown = false, $chgrp = false) { 
    319307                $path = untrailingslashit($path); 
    320                 $chmod = !empty($chmod) ? $chmod : $this->permission; 
     308                if ( ! $chmod ) 
     309                        $chmod = FS_CHMOD_DIR; 
    321310                if ( ! ssh2_sftp_mkdir($this->sftp_link, $path, $chmod, true) ) 
    322311                        return false; 
    323312                if ( $chown )