Changeset 9888

Show
Ignore:
Timestamp:
11/12/08 19:05:43 (2 months ago)
Author:
afz
Message:

fix Jaws_Utils::chmod method in a uncommon state

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/jaws/html/include/Jaws/Utils.php

    r9881 r9888  
    227227    { 
    228228        $result = false; 
    229         $php_as_nobody = (@getmyuid() != fileowner($path)); 
    230         $mode = (is_null($mode)? ($php_as_nobody? 0666 : 0644) : $mode); 
     229        if (is_null($mode)) { 
     230            $php_as_owner = (@posix_getuid() === fileowner($path)); 
     231            $php_as_group = (@posix_getgid() === filegroup($path)); 
     232            if (is_dir($path)) { 
     233                $mode = $php_as_owner? 0755 : ($php_as_group? 0775 : 0777); 
     234            } else { 
     235                $mode = $php_as_owner? 0644 : ($php_as_group? 0664 : 0666); 
     236            } 
     237        } 
     238 
    231239        $mask = umask(0); 
    232  
    233240        /* Take care of the safe mode limitations if safe_mode=1 */ 
    234241        if (ini_get('safe_mode')) { 
     
    246253            $result = @chmod($path, $mode); 
    247254        } 
     255 
    248256        umask($mask); 
    249257        return $result; 
     
    261269    { 
    262270        $result = true; 
    263         $mask = umask(0); 
    264271        if (!file_exists($path) || !is_dir($path)) { 
    265272            $result = @mkdir($path); 
     
    267274 
    268275        if ($result) { 
    269             $php_as_nobody = (@getmyuid() != fileowner($path)); 
    270             $mode = (is_null($mode)? ($php_as_nobody? 0777 : 0755) : $mode); 
    271276            Jaws_Utils::chmod($path, $mode); 
    272277        } 
    273278 
    274         umask($mask); 
    275279        return $result; 
    276280    }