Merge branch 'master' of git://github.com/Froxlor/Froxlor

This commit is contained in:
BNoiZe
2013-11-17 18:41:49 +01:00
13 changed files with 533 additions and 593 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -81,14 +81,7 @@ if ($page == 'overview') {
$overview['number_domains'] = $number_domains['number_domains'];
$phpversion = phpversion();
$phpmemorylimit = @ini_get("memory_limit");
if ($phpmemorylimit == "") {
$phpmemorylimit = $lng['admin']['memorylimitdisabled'];
}
$mysqlserverversion = mysql_get_server_info();
$mysqlclientversion = mysql_get_client_info();
$mysqlserverversion = Database::getAttribute(PDO::ATTR_SERVER_VERSION);
$webserverinterface = strtoupper(@php_sapi_name());
if ((isset($_GET['lookfornewversion']) && $_GET['lookfornewversion'] == 'yes')

View File

@@ -376,7 +376,7 @@ if ($page == 'ipsandports'
} else {
$upd_stmt = Datbase::prepare("
$upd_stmt = Database::prepare("
UPDATE `" . TABLE_PANEL_IPSANDPORTS . "`
SET
`ip` = :ip, `port` = :port, `listen_statement` = :ls,

View File

@@ -24,45 +24,40 @@ $need_root_db_sql_data = true;
require ("./lib/init.php");
if (($page == 'settings' || $page == 'overview')
&& $userinfo['change_serversettings'] == '1')
{
&& $userinfo['change_serversettings'] == '1'
) {
$settings_data = loadConfigArrayDir('./actions/admin/settings/');
$settings = loadSettings($settings_data);
if (isset($_POST['send'])
&& $_POST['send'] == 'send')
{
$_part = isset($_GET['part']) ? $_GET['part'] : '';
&& $_POST['send'] == 'send'
) {
if($_part == '')
{
$_part = isset($_GET['part']) ? $_GET['part'] : '';
if ($_part == '') {
$_part = isset($_POST['part']) ? $_POST['part'] : '';
}
if($_part != '')
{
if($_part == 'all')
{
if ($_part != '') {
if ($_part == 'all') {
$settings_all = true;
$settings_part = false;
}
else
{
} else {
$settings_all = false;
$settings_part = true;
}
$only_enabledisable = false;
}
else
{
} else {
$settings_all = false;
$settings_part = false;
$only_enabledisable = true;
}
// check if the session timeout is too low #815
if (isset($_POST['session_sessiontimeout']) && $_POST['session_sessiontimeout'] <= 60) {
if (isset($_POST['session_sessiontimeout'])
&& $_POST['session_sessiontimeout'] <= 60
) {
standard_error($lng['error']['session_timeout'], $lng['error']['session_timeout_desc']);
}
@@ -83,25 +78,20 @@ if(($page == 'settings' || $page == 'overview')
standard_success('settingssaved', '', array('filename' => $filename, 'action' => $action, 'page' => $page));
}
}
else
{
$_part = isset($_GET['part']) ? $_GET['part'] : '';
if($_part == '')
{
} else {
$_part = isset($_GET['part']) ? $_GET['part'] : '';
if ($_part == '') {
$_part = isset($_POST['part']) ? $_POST['part'] : '';
}
$fields = buildFormEx($settings_data, $_part);
$settings_page = '';
if($_part == '')
{
if ($_part == '') {
eval("\$settings_page .= \"" . getTemplate("settings/settings_overview") . "\";");
}
else
{
} else {
eval("\$settings_page .= \"" . getTemplate("settings/settings") . "\";");
}
@@ -110,8 +100,8 @@ if(($page == 'settings' || $page == 'overview')
eval("echo \"" . getTemplate("settings/settings_form_end") . "\";");
}
}
elseif($page == 'phpinfo'
} elseif($page == 'phpinfo'
&& $userinfo['change_serversettings'] == '1'
) {
ob_start();
@@ -154,13 +144,14 @@ elseif($page == 'phpinfo'
$phpinfo = $phpinfohtml;
}
eval("echo \"" . getTemplate("settings/phpinfo") . "\";");
}
elseif($page == 'rebuildconfigs'
&& $userinfo['change_serversettings'] == '1')
{
} elseif($page == 'rebuildconfigs'
&& $userinfo['change_serversettings'] == '1'
) {
if (isset($_POST['send'])
&& $_POST['send'] == 'send')
{
&& $_POST['send'] == 'send'
) {
$log->logAction(ADM_ACTION, LOG_INFO, "rebuild configfiles");
inserttask('1');
inserttask('10');
@@ -168,102 +159,108 @@ elseif($page == 'rebuildconfigs'
inserttask('4');
standard_success('rebuildingconfigs', '', array('filename' => 'admin_index.php'));
}
else
{
} else {
ask_yesno('admin_configs_reallyrebuild', $filename, array('page' => $page));
}
}
elseif($page == 'updatecounters'
&& $userinfo['change_serversettings'] == '1')
{
} elseif($page == 'updatecounters'
&& $userinfo['change_serversettings'] == '1'
) {
if (isset($_POST['send'])
&& $_POST['send'] == 'send')
{
&& $_POST['send'] == 'send'
) {
$log->logAction(ADM_ACTION, LOG_INFO, "updated resource-counters");
$updatecounters = updateCounters(true);
$customers = '';
foreach($updatecounters['customers'] as $customerid => $customer)
{
foreach ($updatecounters['customers'] as $customerid => $customer) {
eval("\$customers.=\"" . getTemplate("settings/updatecounters_row_customer") . "\";");
}
$admins = '';
foreach($updatecounters['admins'] as $adminid => $admin)
{
foreach ($updatecounters['admins'] as $adminid => $admin) {
eval("\$admins.=\"" . getTemplate("settings/updatecounters_row_admin") . "\";");
}
eval("echo \"" . getTemplate("settings/updatecounters") . "\";");
}
else
{
} else {
ask_yesno('admin_counters_reallyupdate', $filename, array('page' => $page));
}
}
elseif($page == 'wipecleartextmailpws'
&& $userinfo['change_serversettings'] == '1')
{
} elseif ($page == 'wipecleartextmailpws'
&& $userinfo['change_serversettings'] == '1'
) {
if (isset($_POST['send'])
&& $_POST['send'] == 'send')
{
&& $_POST['send'] == 'send'
) {
$log->logAction(ADM_ACTION, LOG_WARNING, "wiped all cleartext mail passwords");
$db->query("UPDATE `" . TABLE_MAIL_USERS . "` SET `password`='' ");
$db->query("UPDATE `" . TABLE_PANEL_SETTINGS . "` SET `value`='0' WHERE `settinggroup`='system' AND `varname`='mailpwcleartext'");
Database::query("UPDATE `" . TABLE_MAIL_USERS . "` SET `password` = '';");
Database::query("UPDATE `" . TABLE_PANEL_SETTINGS . "` SET `value` = '0' WHERE `settinggroup` = 'system' AND `varname` = 'mailpwcleartext'");
redirectTo('admin_settings.php', array('s' => $s));
}
else
{
} else {
ask_yesno('admin_cleartextmailpws_reallywipe', $filename, array('page' => $page));
}
}
elseif($page == 'wipequotas'
&& $userinfo['change_serversettings'] == '1')
{
} elseif($page == 'wipequotas'
&& $userinfo['change_serversettings'] == '1'
) {
if (isset($_POST['send'])
&& $_POST['send'] == 'send')
{
&& $_POST['send'] == 'send'
) {
$log->logAction(ADM_ACTION, LOG_WARNING, "wiped all mailquotas");
// Set the quota to 0 which means unlimited
$db->query("UPDATE `" . TABLE_MAIL_USERS . "` SET `quota`='0' ");
$db->query("UPDATE " . TABLE_PANEL_CUSTOMERS . " SET `email_quota_used` = 0");
Database::query("UPDATE `" . TABLE_MAIL_USERS . "` SET `quota` = '0';");
Database::query("UPDATE `" . TABLE_PANEL_CUSTOMERS . "` SET `email_quota_used` = '0'");
redirectTo('admin_settings.php', array('s' => $s));
}
else
{
} else {
ask_yesno('admin_quotas_reallywipe', $filename, array('page' => $page));
}
}
elseif($page == 'enforcequotas'
&& $userinfo['change_serversettings'] == '1')
{
} elseif ($page == 'enforcequotas'
&& $userinfo['change_serversettings'] == '1'
) {
if (isset($_POST['send'])
&& $_POST['send'] == 'send')
{
&& $_POST['send'] == 'send'
) {
// Fetch all accounts
$result_stmt = Database::query("SELECT `quota`, `customerid` FROM `" . TABLE_MAIL_USERS . "`");
$result = $db->query("SELECT `quota`, `customerid` FROM " . TABLE_MAIL_USERS);
if (Database::num_rows() > 0) {
while($array = $db->fetch_array($result))
{
$upd_stmt = Database::prepare("
UPDATE `" . TABLE_PANEL_CUSTOMERS . "` SET
`email_quota_used` = `email_quota_used` + :diff
WHERE `customerid` = :customerid
");
while ($array = $result_stmt->fetch(PDO::FETCH_ASSOC)) {
$difference = $settings['system']['mail_quota'] - $array['quota'];
$db->query("UPDATE " . TABLE_PANEL_CUSTOMERS . " SET `email_quota_used` = `email_quota_used` + " . (int)$difference . " WHERE `customerid` = '" . $array['customerid'] . "'");
Database::pexecute($upd_stmt, array('diff' => $difference, 'customerid' => $customerid));
}
}
// Set the new quota
$db->query("UPDATE `" . TABLE_MAIL_USERS . "` SET `quota`='" . $settings['system']['mail_quota'] . "'");
$upd_stmt = Database::prepare("
UPDATE `" . TABLE_MAIL_USERS . "` SET `quota` = :quota
");
Database::pexecute($upd_stmt, array('quota' => $settings['system']['mail_quota']));
// Update the Customer, if the used quota is bigger than the allowed quota
$db->query("UPDATE " . TABLE_PANEL_CUSTOMERS . " SET `email_quota` = `email_quota_used` WHERE `email_quota` < `email_quota_used`");
Database::query("UPDATE `" . TABLE_PANEL_CUSTOMERS . "` SET `email_quota` = `email_quota_used` WHERE `email_quota` < `email_quota_used`");
$log->logAction(ADM_ACTION, LOG_WARNING, 'enforcing mailquota to all customers: ' . $settings['system']['mail_quota'] . ' MB');
redirectTo('admin_settings.php', array('s' => $s));
}
else
{
} else {
ask_yesno('admin_quotas_reallyenforce', $filename, array('page' => $page));
}
}

View File

@@ -18,11 +18,6 @@
*/
define('AREA', 'customer');
/**
* Include our init.php, which manages Sessions, Language etc.
*/
require ("./lib/init.php");
if(isset($_POST['id'])) {
@@ -717,14 +712,6 @@ if($page == 'overview') {
$cert_content = openssl_x509_parse($ssl_cert_file);
if (is_array($cert_content) && isset($cert_content['subject']) && isset($cert_content['subject']['CN'])) {
// TODO self-signed certs might differ and don't need/want this
/*
$domain = $db->query_first("SELECT * FROM `".TABLE_PANEL_DOMAINS."` WHERE `id`='".(int)$id."'");
if (strtolower($cert_content['subject']['CN']) != strtolower($idna_convert->decode($domain['domain']))) {
standard_error('sslcertificatewrongdomain');
}
*/
// bool openssl_x509_check_private_key ( mixed $cert , mixed $key )
// Checks whether the given key is the private key that corresponds to cert.
if (openssl_x509_check_private_key($ssl_cert_file, $ssl_key_file) === false) {

View File

@@ -119,11 +119,12 @@ if ($page == 'overview') {
);
Database::pexecute($stmt, array("customerid" => $userinfo['customerid'], "id" => $id));
$stmt = Database::prepare("UPDATE `" . TABLE_FTP_GROUPS . "`
SET `members`=REPLACE(`members`,'," . $db->escape($result['username']) . "','')
WHERE `customerid`='" . (int)$userinfo['customerid'] . "'"
);
Database::pexecute($stmt, array("username" => $result['username'], "customerid" => $userinfo['customerid']));
$stmt = Database::prepare("
UPDATE `" . TABLE_FTP_GROUPS . "` SET
`members` = REPLACE(`members`, :username,'')
WHERE `customerid` = :customerid
");
Database::pexecute($stmt, array("username" => ",".$result['username'], "customerid" => $userinfo['customerid']));
$log->logAction(USR_ACTION, LOG_INFO, "deleted ftp-account '" . $result['username'] . "'");
@@ -140,7 +141,7 @@ if ($page == 'overview') {
);
Database::pexecute($stmt, array("customerid" => $userinfo['customerid']));
redirectTo($filename, Array('page' => $page, 's' => $s));
redirectTo($filename, array('page' => $page, 's' => $s));
} else {
ask_yesno_withcheckbox('ftp_reallydelete', 'admin_customer_alsoremoveftphomedir', $filename, array('id' => $id, 'page' => $page, 'action' => $action), $result['username']);
}
@@ -167,7 +168,7 @@ if ($page == 'overview') {
standard_error(array('stringisempty', 'username'));
}
$ftpdomain = $idna_convert->encode(validate($_POST['ftp_domain'], 'domain'));
$ftpdomain_check_stmt = Datbase::prepare("SELECT `id`, `domain`, `customerid` FROM `" . TABLE_PANEL_DOMAINS . "`
$ftpdomain_check_stmt = Database::prepare("SELECT `id`, `domain`, `customerid` FROM `" . TABLE_PANEL_DOMAINS . "`
WHERE `domain` = :domain
AND `customerid` = :customerid"
);

View File

@@ -31,23 +31,19 @@
*
* @return string outputs parsed question_yesno template
*/
function ask_yesno($text, $yesfile, $params = array(), $targetname = '', $back_nr = 1) {
function ask_yesno($text, $yesfile, $params = array(), $targetname = '', $back_nr = 1)
{
global $userinfo, $db, $s, $header, $footer, $lng, $theme;
global $userinfo, $s, $header, $footer, $lng, $theme;
$hiddenparams = '';
if(is_array($params))
{
foreach($params as $field => $value)
{
if (is_array($params)) {
foreach ($params as $field => $value) {
$hiddenparams.= '<input type="hidden" name="' . htmlspecialchars($field) . '" value="' . htmlspecialchars($value) . '" />' . "\n";
}
}
if(isset($lng['question'][$text]))
{
if (isset($lng['question'][$text])) {
$text = $lng['question'][$text];
}
@@ -56,27 +52,23 @@ function ask_yesno($text, $yesfile, $params = array(), $targetname = '', $back_n
exit;
}
function ask_yesno_withcheckbox($text, $chk_text, $yesfile, $params = array(), $targetname = '', $show_checkbox = true)
{
global $userinfo, $db, $s, $header, $footer, $lng, $theme;
function ask_yesno_withcheckbox($text, $chk_text, $yesfile, $params = array(), $targetname = '', $show_checkbox = true) {
global $userinfo, $s, $header, $footer, $lng, $theme;
$hiddenparams = '';
if(is_array($params))
{
foreach($params as $field => $value)
{
if (is_array($params)) {
foreach ($params as $field => $value) {
$hiddenparams.= '<input type="hidden" name="' . htmlspecialchars($field) . '" value="' . htmlspecialchars($value) . '" />' . "\n";
}
}
if(isset($lng['question'][$text]))
{
if (isset($lng['question'][$text])) {
$text = $lng['question'][$text];
}
if(isset($lng['question'][$chk_text]))
{
if (isset($lng['question'][$chk_text])) {
$chk_text = $lng['question'][$chk_text];
}
@@ -90,4 +82,3 @@ function ask_yesno_withcheckbox($text, $chk_text, $yesfile, $params = array(), $
eval("echo \"" . getTemplate('misc/question_yesno_checkbox', '1') . "\";");
exit;
}

View File

@@ -25,15 +25,14 @@
* @author Florian Lippert <flo@syscp.org>
* @author Ron Brand <ron.brand@web.de>
*/
function standard_error($errors = '', $replacer = '') {
global $userinfo, $s, $header, $footer, $lng, $theme;
function standard_error($errors = '', $replacer = '')
{
global $db, $userinfo, $s, $header, $footer, $lng, $theme;
$_SESSION['requestData'] = $_POST;
$replacer = htmlentities($replacer);
if(!is_array($errors))
{
if (!is_array($errors)) {
$errors = array(
$errors
);
@@ -45,25 +44,18 @@ function standard_error($errors = '', $replacer = '')
}
$error = '';
foreach($errors as $single_error)
{
if(isset($lng['error'][$single_error]))
{
foreach ($errors as $single_error) {
if (isset($lng['error'][$single_error])) {
$single_error = $lng['error'][$single_error];
$single_error = strtr($single_error, array('%s' => $replacer));
}
else
{
} else {
$error = 'Unknown Error (' . $single_error . '): ' . $replacer;
break;
}
if(empty($error))
{
if (empty($error)) {
$error = $single_error;
}
else
{
} else {
$error.= ' ' . $single_error;
}
}

View File

@@ -456,10 +456,8 @@ $lng['error']['stringformaterror'] = 'The value for the field "%s" is not in the
$lng['admin']['serversoftware'] = 'Serversoftware';
$lng['admin']['phpversion'] = 'PHP-Version';
$lng['admin']['phpmemorylimit'] = 'PHP-Memory-Limit';
$lng['admin']['mysqlserverversion'] = 'MySQL Server Version';
$lng['admin']['mysqlclientversion'] = 'MySQL Client Version';
$lng['admin']['webserverinterface'] = 'Webserver Interface';
$lng['admin']['mysqlserverversion'] = 'MySQL server version';
$lng['admin']['webserverinterface'] = 'Webserver interface';
$lng['domains']['isassigneddomain'] = 'Is assigned domain';
$lng['serversettings']['phpappendopenbasedir']['title'] = 'Paths to append to OpenBasedir';
$lng['serversettings']['phpappendopenbasedir']['description'] = 'These paths (separated by colons) will be added to the OpenBasedir-statement in every vHost-container.';

View File

@@ -455,9 +455,7 @@ $lng['error']['stringformaterror'] = 'Der Wert des Feldes "%s" ist nicht im erwa
$lng['admin']['serversoftware'] = 'Webserver';
$lng['admin']['phpversion'] = 'PHP-Version';
$lng['admin']['phpmemorylimit'] = 'PHP-Memory-Limit';
$lng['admin']['mysqlserverversion'] = 'MySQL Server Version';
$lng['admin']['mysqlclientversion'] = 'MySQL Client Version';
$lng['admin']['webserverinterface'] = 'Webserver-Interface';
$lng['domains']['isassigneddomain'] = 'Ist zugewiesene Domain';
$lng['serversettings']['phpappendopenbasedir']['title'] = 'An OpenBasedir anzuhängende Pfade';

View File

@@ -20,9 +20,15 @@
fwrite($debugHandler, "calculating mailspace usage\n");
$maildirs = $db->query("SELECT `id`, CONCAT(`homedir`, `maildir`) AS `maildirpath` FROM `".TABLE_MAIL_USERS."` ORDER BY `id`");
$maildirs_stmt = Database::query("
SELECT `id`, CONCAT(`homedir`, `maildir`) AS `maildirpath` FROM `".TABLE_MAIL_USERS."` ORDER BY `id`
");
while ($maildir = $db->fetch_array($maildirs)) {
$upd_stmt = Database::prepare("
UPDATE `".TABLE_MAIL_USERS."` SET `mboxsize` = :size WHERE `id` = :id
");
while ($maildir = $maildirs_stmt->fetch(PDO::FETCH_ASSOC)) {
$_maildir = makeCorrectDir($maildir['maildirpath']);
@@ -35,7 +41,7 @@ while ($maildir = $db->fetch_array($maildirs)) {
}
$emailusage = floatval($emailusage['0']);
unset($back);
$db->query("UPDATE `".TABLE_MAIL_USERS."` SET `mboxsize` = '".(int)$emailusage."' WHERE `id` ='".(int)$maildir['id']."'");
Database::pexecute($upd_stmt, array('size' => $emailusage, 'id' => $maildir['id']));
} else {
fwrite($debugHandler, 'maildir ' . $_maildir . ' does not exist' . "\n");
}

View File

@@ -93,20 +93,12 @@ $header
</tr>
<tr>
<td>{$lng['admin']['phpversion']}:</td>
<td>$phpversion</td>
</tr>
<tr>
<td>{$lng['admin']['phpmemorylimit']}:</td>
<td>$phpmemorylimit</td>
<td><a href="{$linker->getLink(array('section' => 'settings', 'page' => 'phpinfo'))}">$phpversion</a></td>
</tr>
<tr>
<td>{$lng['admin']['mysqlserverversion']}:</td>
<td>$mysqlserverversion</td>
</tr>
<tr>
<td>{$lng['admin']['mysqlclientversion']}:</td>
<td>$mysqlclientversion</td>
</tr>
<tr>
<td>{$lng['admin']['webserverinterface']}:</td>
<td>$webserverinterface</td>

View File

@@ -209,20 +209,12 @@ $header
</tr>
<tr>
<td>{$lng['admin']['phpversion']}:</td>
<td>$phpversion</td>
</tr>
<tr>
<td>{$lng['admin']['phpmemorylimit']}:</td>
<td>$phpmemorylimit</td>
<td><a href="{$linker->getLink(array('section' => 'settings', 'page' => 'phpinfo'))}">$phpversion</a></td>
</tr>
<tr>
<td>{$lng['admin']['mysqlserverversion']}:</td>
<td>$mysqlserverversion</td>
</tr>
<tr>
<td>{$lng['admin']['mysqlclientversion']}:</td>
<td>$mysqlclientversion</td>
</tr>
<tr>
<td>{$lng['admin']['webserverinterface']}:</td>
<td>$webserverinterface</td>