From 391e05cbee6ff84bce60b665be60b4e5f049ee7f Mon Sep 17 00:00:00 2001 From: Falko Timme <ft@falkotimme.com> Date: Tue, 22 Oct 2013 12:48:51 -0400 Subject: [PATCH] - Display hostname next to IP (where available) in the jQuery IP suggestion box. --- server/lib/classes/system.inc.php | 89 ++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 88 insertions(+), 1 deletions(-) diff --git a/server/lib/classes/system.inc.php b/server/lib/classes/system.inc.php index b460875..a1e7c00 100644 --- a/server/lib/classes/system.inc.php +++ b/server/lib/classes/system.inc.php @@ -575,6 +575,58 @@ } /** + * 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]); + $f2 = trim($f2); + $f3 = trim($f3); + $f4 = trim($f4); + 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 * */ @@ -728,7 +780,8 @@ if(substr($path,0,1) != '/') return false; //* We allow only some characters in the path - if(!preg_match('/[a-zA-Z0-9_\.\-]{1,}/',$path)) return false; + // * is allowed, for example it is part of wildcard certificates/keys: *.example.com.crt + if(!preg_match('@^/[-a-zA-Z0-9_/.*~]{1,}$@',$path)) return false; //* Check path for symlinks $path_parts = explode('/',$path); @@ -1527,6 +1580,40 @@ 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; + } + + function getinitcommand($servicename, $action, $init_script_directory = ''){ + global $conf; + // systemd + if(is_executable('/bin/systemd')){ + return 'systemctl '.$action.' '.$servicename.'.service'; + } + // upstart + if(is_executable('/sbin/initctl')){ + exec('/sbin/initctl version 2>/dev/null | /bin/grep -q upstart', $retval['output'], $retval['retval']); + if(intval($retval['retval']) == 0) return 'service '.$servicename.' '.$action; + } + // sysvinit + if($init_script_directory == '') $init_script_directory = $conf['init_scripts']; + if(substr($init_script_directory, -1) === '/') $init_script_directory = substr($init_script_directory, 0, -1); + return $init_script_directory.'/'.$servicename.' '.$action; + } } ?> -- Gitblit v1.9.1