From bd52d6fa40c0c6d554f46b24c3903cfa52e9634e Mon Sep 17 00:00:00 2001 From: ftimme <ft@falkotimme.com> Date: Wed, 27 Mar 2013 08:08:10 -0400 Subject: [PATCH] - Added function posix_getgrnam() to system.inc.php (for systems where the php-process module is missing). --- server/lib/classes/system.inc.php | 87 +++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 83 insertions(+), 4 deletions(-) diff --git a/server/lib/classes/system.inc.php b/server/lib/classes/system.inc.php index b1f9103..0b5e458 100644 --- a/server/lib/classes/system.inc.php +++ b/server/lib/classes/system.inc.php @@ -575,6 +575,55 @@ } /** + * Get the group id from an group + * + */ + function getgid($group){ + global $app; + if($this->is_group($group)){ + $group_datei = $this->server_conf['group_datei']; + $groups = $app->file->no_comments($group_datei); + $lines = explode("\n", $groups); + if(is_array($lines)){ + foreach($lines as $line){ + if(trim($line) != ""){ + list($f1, $f2, $f3, $f4) = explode(':', $line); + if($f1 == $group) return $f3; + } + } + } + } else { + return false; + } + } + + /** + * Return info about a group by name + * + */ + function posix_getgrnam($group) { + if(!function_exists('posix_getgrnam')){ + $group_datei = $this->server_conf['group_datei']; + $cmd = 'grep -m 1 "^'.$group.':" '.$group_datei; + exec($cmd, $output, $return_var); + if($return_var != 0 || !$output[0]) return false; + list($f1, $f2, $f3, $f4) = explode(':', $output[0]); + if($f4 != ''){ + $members = explode(',', $f4); + } else { + $members = array(); + } + $group_details = array( 'name' => $group, + 'passwd' => $f2, + 'members' => $members, + 'gid' => $f3); + return $group_details; + } else { + return posix_getgrnam($group); + } + } + + /** * Get all information from a user * */ @@ -673,7 +722,7 @@ $app->log("Action aborted, file is a symlink: $filename",LOGLEVEL_WARN); return false; } - return file_put_contents($filename, $data); + return file_get_contents($filename, $data); } function rename($filename, $new_filename, $allow_symlink = false) { @@ -699,14 +748,27 @@ } } - function unlink($file) { - if(file_exists($filename)) { + function unlink($filename) { + if(file_exists($filename) || is_link($filename)) { return unlink($filename); } } function copy($file1,$file2) { return copy($file1,$file2); + } + + function touch($file, $allow_symlink = false){ + global $app; + if($allow_symlink == false && @file_exists($file) && $this->checkpath($file) == false) { + $this->unlink($file); + } + if(@touch($file)) { + return true; + } else { + $app->log("touch failed: $file",LOGLEVEL_DEBUG); + return false; + } } function checkpath($path) { @@ -1152,7 +1214,7 @@ function make_trashscan(){ global $app; //trashscan erstellen - // Template �ffnen + // Template Öffnen $app->tpl->clear_all(); $app->tpl->define( array(table => 'trashscan.master')); @@ -1514,6 +1576,23 @@ unset($shadow_file_array); } } + + function intval($string, $force_numeric = false) { + if(intval($string) == 2147483647) { + if($force_numeric == true) return floatval($string); + elseif(preg_match('/^([-]?)[0]*([1-9][0-9]*)([^0-9].*)*$/', $string, $match)) return $match[1].$match[2]; + else return 0; + } else { + return intval($string); + } + } + + function is_mounted($mountpoint){ + //$cmd = 'df 2>/dev/null | grep " '.$mountpoint.'$"'; + $cmd = 'mount 2>/dev/null | grep " on '.$mountpoint.' type "'; + exec($cmd, $output, $return_var); + return $return_var == 0 ? true : false; + } } ?> -- Gitblit v1.9.1