From b5715fb4a82d6494e6fba5ffcc1b0af3c9d2421c Mon Sep 17 00:00:00 2001 From: cfoe <cfoe@ispconfig3> Date: Sat, 07 Jul 2012 13:12:41 -0400 Subject: [PATCH] removed hardcoded width for list search_limit select-element -> css defined --- server/lib/classes/system.inc.php | 127 +++++++++++++++++++++++++++++++---------- 1 files changed, 95 insertions(+), 32 deletions(-) diff --git a/server/lib/classes/system.inc.php b/server/lib/classes/system.inc.php index c194881..323ffe5 100644 --- a/server/lib/classes/system.inc.php +++ b/server/lib/classes/system.inc.php @@ -926,7 +926,7 @@ * */ function network_info(){ - $dist = $this->server_conf["dist"]; + $dist = $this->server_conf['dist']; ob_start(); passthru('ifconfig'); $output = ob_get_contents(); @@ -950,9 +950,9 @@ } $output = trim(ob_get_contents()); ob_end_clean(); - if($output != ""){ - $ifconfig["INTERFACE"][$interface] = $output; - $ifconfig["IP"][$output] = $interface; + if($output != ''){ + $ifconfig['INTERFACE'][$interface] = $output; + $ifconfig['IP'][$output] = $interface; } } if(!empty($ifconfig)){ @@ -1087,23 +1087,23 @@ if ($urlHandle){ socket_set_timeout($urlHandle, $timeout); - $urlString = 'GET '.$path." HTTP/1.0\r\nHost: ".$url_parts["host"]."\r\nConnection: Keep-Alive\r\nUser-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)\r\n"; + $urlString = 'GET '.$path." HTTP/1.0\r\nHost: ".$url_parts['host']."\r\nConnection: Keep-Alive\r\nUser-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)\r\n"; if ($user) $urlString .= 'Authorization: Basic '.base64_encode($user.':'.$pass)."\r\n"; $urlString .= "\r\n"; fputs($urlHandle, $urlString); - $month["Jan"] = '01'; - $month["Feb"] = '02'; - $month["Mar"] = '03'; - $month["Apr"] = '04'; - $month["May"] = '05'; - $month["Jun"] = '06'; - $month["Jul"] = '07'; - $month["Aug"] = '08'; - $month["Sep"] = '09'; - $month["Oct"] = '10'; - $month["Nov"] = '11'; - $month["Dec"] = '12'; + $month['Jan'] = '01'; + $month['Feb'] = '02'; + $month['Mar'] = '03'; + $month['Apr'] = '04'; + $month['May'] = '05'; + $month['Jun'] = '06'; + $month['Jul'] = '07'; + $month['Aug'] = '08'; + $month['Sep'] = '09'; + $month['Oct'] = '10'; + $month['Nov'] = '11'; + $month['Dec'] = '12'; $c = 0; $l = 0; $startzeit = time(); @@ -1157,9 +1157,11 @@ if($found == 0) { //* add \n if the last line does not end with \n or \r - if(substr($out,-1) != "\n" && substr($out,-1) != "\r") $out .= "\n"; + if(substr($out,-1) != "\n" && substr($out,-1) != "\r" && filesize($filename) > 0) $out .= "\n"; //* add the new line at the end of the file - if($append == 1) $out .= $new_line."\n"; + if($append == 1) { + $out .= $new_line."\n"; + } } file_put_contents($filename,$out); } @@ -1187,32 +1189,49 @@ global $app; if($subfolder != '') { - $dir = escapeshellarg($maildir_path.'/.'.$subfolder); - $dir_cur = escapeshellarg($maildir_path.'/.'.$subfolder.'/cur'); - $dir_new = escapeshellarg($maildir_path.'/.'.$subfolder.'/new'); - $dir_tmp = escapeshellarg($maildir_path.'/.'.$subfolder.'/tmp'); + $dir = escapeshellcmd($maildir_path.'/.'.$subfolder); } else { - $dir = escapeshellarg($maildir_path); - $dir_cur = escapeshellarg($maildir_path.'/cur'); - $dir_new = escapeshellarg($maildir_path.'/new'); - $dir_tmp = escapeshellarg($maildir_path.'/tmp'); + $dir = escapeshellcmd($maildir_path); } - exec("mkdir -p $dir_cur $dir_new $dir_tmp"); - exec("chmod 0700 $dir $dir_cur $dir_new $dir_tmp"); + if(!is_dir($dir)) mkdir($dir, 0700, true); + + if($user != '' && $user != 'root' && $this->is_user($user)) { + $user = escapeshellcmd($user); + // I assume that the name of the (vmail group) is the same as the name of the mail user in ISPConfig 3 + $group = $user; + if(is_dir($dir)) chown($dir,$user); + if(is_dir($dir)) chgrp($dir,$group); + + $chown_mdsub = true; + } + $maildirsubs = array('cur','new','tmp'); + + foreach ($maildirsubs as $mdsub) { + if(!is_dir($dir.'/'.$mdsub)) mkdir($dir.'/'.$mdsub, 0700, true); + if ($chown_mdsub) { + chown($dir.'/'.$mdsub, $user); + chgrp($dir.'/'.$mdsub, $group); + } + } + + chmod($dir, 0700); + + /* if($user != '' && $this->is_user($user) && $user != 'root') { - $user = escapeshellarg($user); + $user = escapeshellcmd($user); // I assume that the name of the (vmail group) is the same as the name of the mail user in ISPConfig 3 $group = $user; exec("chown $user:$group $dir $dir_cur $dir_new $dir_tmp"); } + */ //* Add the subfolder to the subscriptions and courierimapsubscribed files if($subfolder != '') { // Courier if(!is_file($maildir_path.'/courierimapsubscribed')) { - $tmp_file = escapeshellarg($maildir_path.'/courierimapsubscribed'); + $tmp_file = escapeshellcmd($maildir_path.'/courierimapsubscribed'); touch($tmp_file); chmod($tmp_file, 0744); chown($tmp_file,'vmail'); @@ -1222,7 +1241,7 @@ // Dovecot if(!is_file($maildir_path.'/subscriptions')) { - $tmp_file = escapeshellarg($maildir_path.'/subscriptions'); + $tmp_file = escapeshellcmd($maildir_path.'/subscriptions'); touch($tmp_file); chmod($tmp_file, 0744); chown($tmp_file,'vmail'); @@ -1234,6 +1253,50 @@ $app->log('Created Maildir '.$maildir_path.' with subfolder: '.$subfolder,LOGLEVEL_DEBUG); } + + //* Function to create directory paths and chown them to a user and group + function mkdirpath($path, $mode = 0755, $user = '', $group = '') { + $path_parts = explode('/',$path); + $new_path = ''; + if(is_array($path_parts)) { + foreach($path_parts as $part) { + $new_path .= '/'.$part; + if(!@is_dir($new_path)) { + mkdir($new_path); + chmod($new_path,$mode); + if($user != '') chown($new_path,$user); + if($group != '') chgrp($new_path,$group); + } + } + } + + } + + //* Check if a application is installed + function is_installed($appname) { + exec('which '.escapeshellcmd($appname).' 2> /dev/null',$out,$returncode); + if(isset($out[0]) && stristr($out[0],$appname) && $returncode == 0) { + return true; + } else { + return false; + } + } + + function web_folder_protection($document_root,$protect) { + global $app,$conf; + + //* load the server configuration options + $app->uses('getconf'); + $web_config = $app->getconf->get_server_config($conf['server_id'], 'web'); + + if($protect == true && $web_config['web_folder_protection'] == 'y') { + //* Add protection + if($document_root != '' && $document_root != '/' && strlen($document_root) > 6 && !stristr($document_root,'..')) exec('chattr +i '.escapeshellcmd($document_root)); + } else { + //* Remove protection + if($document_root != '' && $document_root != '/' && strlen($document_root) > 6 && !stristr($document_root,'..')) exec('chattr -i '.escapeshellcmd($document_root)); + } + } } ?> -- Gitblit v1.9.1