diff options
author | Robin Appelman <icewind1991@gmail.com> | 2011-04-16 10:23:15 +0200 |
---|---|---|
committer | Robin Appelman <icewind1991@gmail.com> | 2011-04-16 10:23:15 +0200 |
commit | 69289bf9438f11df8d75fd034776983b997aa7b0 (patch) | |
tree | 31a378c0c5991e76263e7f568aa25d88d6bb3d18 /lib/helper.php | |
parent | 26841884af8ca6b1c02ca047b7ffe35900701754 (diff) | |
download | nextcloud-server-69289bf9438f11df8d75fd034776983b997aa7b0.tar.gz nextcloud-server-69289bf9438f11df8d75fd034776983b997aa7b0.zip |
move chmodr to OC_HELPER
Diffstat (limited to 'lib/helper.php')
-rw-r--r-- | lib/helper.php | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/lib/helper.php b/lib/helper.php index 982da7b6cc3..c51629f21cb 100644 --- a/lib/helper.php +++ b/lib/helper.php @@ -113,6 +113,35 @@ class OC_HELPER { $bytes = round( $bytes / 1024, 1 ); return "$bytes GB"; } + + /** + * @brief Recusive editing of file permissions + * @param $path path to file or folder + * @param $filemode unix style file permissions as integer + * + * Makes 2048 to 2 kB. + */ + function chmodr($path, $filemode) { + if (!is_dir($path)) + return chmod($path, $filemode); + $dh = opendir($path); + while (($file = readdir($dh)) !== false) { + if($file != '.' && $file != '..') { + $fullpath = $path.'/'.$file; + if(is_link($fullpath)) + return FALSE; + elseif(!is_dir($fullpath) && !chmod($fullpath, $filemode)) + return FALSE; + elseif(!chmodr($fullpath, $filemode)) + return FALSE; + } + } + closedir($dh); + if(chmod($path, $filemode)) + return TRUE; + else + return FALSE; + } } ?> |