diff --git a/actions/admin/settings/220.quota.php b/actions/admin/settings/220.quota.php new file mode 100644 index 00000000..f29e1a00 --- /dev/null +++ b/actions/admin/settings/220.quota.php @@ -0,0 +1,60 @@ + (2011-) + * @license GPLv2 http://files.froxlor.org/misc/COPYING.txt + * @package Settings + * + */ + +return array( + 'groups' => array( + 'diskquota' => array( + 'title' => $lng['diskquota'], + 'fields' => array( + 'diskquota_enabled' => array( + 'label' => $lng['serversettings']['diskquota_enabled'], + 'settinggroup' => 'system', + 'varname' => 'diskquota_enabled', + 'type' => 'bool', + 'default' => false, + 'save_method' => 'storeSettingField', + 'overview_option' => true + ), + 'diskquota_repquota_path' => array( + 'label' => $lng['serversettings']['diskquota_repquota_path']['description'], + 'settinggroup' => 'system', + 'varname' => 'diskquota_repquota_path', + 'type' => 'string', + 'default' => '/usr/sbin/repquota', + 'save_method' => 'storeSettingField', + ), + 'diskquota_quotatool_path' => array( + 'label' => $lng['serversettings']['diskquota_quotatool_path']['description'], + 'settinggroup' => 'system', + 'varname' => 'diskquota_quotatool_path', + 'type' => 'string', + 'default' => '/usr/bin/quotatool', + 'save_method' => 'storeSettingField', + ), + 'diskquota_customer_partition' => array( + 'label' => $lng['serversettings']['diskquota_customer_partition']['description'], + 'settinggroup' => 'system', + 'varname' => 'diskquota_customer_partition', + 'type' => 'string', + 'default' => '/dev/root', + 'save_method' => 'storeSettingField', + ), + ), + ), + ), + ); + +?> diff --git a/admin_customers.php b/admin_customers.php index 7e5ae3b1..f2f92f8f 100644 --- a/admin_customers.php +++ b/admin_customers.php @@ -42,7 +42,7 @@ if($page == 'customers' { // clear request data unset($_SESSION['requestData']); - + $log->logAction(ADM_ACTION, LOG_NOTICE, "viewed admin_customers"); $fields = array( 'c.loginname' => $lng['login']['username'], @@ -83,11 +83,11 @@ if($page == 'customers' $fields['c.tickets'] = $lng['customer']['tickets']; $fields['c.tickets_used'] = $lng['customer']['tickets'] . ' (' . $lng['panel']['used'] . ')'; } - + if($settings['autoresponder']['autoresponder_active'] == 1) { $fields['c.email_autoresponder'] = $lng['customer']['autoresponder']; - $fields['c.email_autoresponder_used'] = $lng['customer']['autoresponder'] . ' (' . $lng['panel']['used'] . ')'; + $fields['c.email_autoresponder_used'] = $lng['customer']['autoresponder'] . ' (' . $lng['panel']['used'] . ')'; } */ @@ -175,11 +175,11 @@ if($page == 'customers' if(isset($_POST['send']) && $_POST['send'] == 'send') { - $result = $db->query("UPDATE - `" . TABLE_PANEL_CUSTOMERS . "` - SET - `loginfail_count` = '0' - WHERE + $result = $db->query("UPDATE + `" . TABLE_PANEL_CUSTOMERS . "` + SET + `loginfail_count` = '0' + WHERE `customerid`= '" . (int)$id . "'" ); redirectTo($filename, Array('page' => $page, 's' => $s)); @@ -259,7 +259,7 @@ if($page == 'customers' // remove all package related settings $db->query("DELETE FROM `".TABLE_APS_SETTINGS."` WHERE `InstanceID` = '".(int)$apsrow['ID']."'"); // maybe some leftovers in the tasks - $db->query("DELETE FROM `".TABLE_APS_TASKS."` WHERE `InstanceID` = '".(int)$apsrow['ID']."'"); + $db->query("DELETE FROM `".TABLE_APS_TASKS."` WHERE `InstanceID` = '".(int)$apsrow['ID']."'"); } // now remove all user instances $db->query("DELETE FROM `".TABLE_APS_INSTANCES."` WHERE `CustomerID`='".(int)$id."'"); @@ -330,13 +330,19 @@ if($page == 'customers' $log->logAction(ADM_ACTION, LOG_INFO, "deleted user '" . $result['loginname'] . "'"); inserttask('1'); inserttask('4'); - + if(isset($_POST['delete_userfiles']) && (int)$_POST['delete_userfiles'] == 1) { inserttask('6', $result['loginname']); } - + + # Using filesystem - quota, insert a task which cleans the filesystem - quota + if ($settings['system']['diskquota_enabled']) + { + inserttask('10'); + } + /* * move old tickets to archive */ @@ -354,8 +360,8 @@ if($page == 'customers' $mainticket->Archive(); $log->logAction(ADM_ACTION, LOG_NOTICE, "archived ticket '" . $mainticket->Get('subject') . "'"); } - } - + } + redirectTo($filename, Array('page' => $page, 's' => $s)); } else @@ -439,7 +445,7 @@ if($page == 'customers' { $email_quota = - 1; } - + if($settings['autoresponder']['autoresponder_active'] == '1') { $email_autoresponder = intval_ressource($_POST['email_autoresponder']); @@ -455,13 +461,13 @@ if($page == 'customers' } $email_imap = 0; - if(isset($_POST['email_imap'])) + if(isset($_POST['email_imap'])) $email_imap = intval_ressource($_POST['email_imap']); - + $email_pop3 = 0; - if(isset($_POST['email_pop3'])) + if(isset($_POST['email_pop3'])) $email_pop3 = intval_ressource($_POST['email_pop3']); - + $ftps = 0; if(isset($_POST['ftps'])) $ftps = intval_ressource($_POST['ftps']); @@ -499,7 +505,7 @@ if($page == 'customers' { $number_of_aps_packages = 0; } - + $createstdsubdomain = 0; if(isset($_POST['createstdsubdomain'])) $createstdsubdomain = intval($_POST['createstdsubdomain']); @@ -510,37 +516,37 @@ if($page == 'customers' { $password = validatePassword($password); } - + $backup_allowed = 0; if(isset($_POST['backup_allowed'])) $backup_allowed = intval($_POST['backup_allowed']); - + if ($backup_allowed != 0) { $backup_allowed = 1; } - + // gender out of range? [0,2] if ($gender < 0 || $gender > 2) { $gender = 0; } - + $sendpassword = 0; if(isset($_POST['sendpassword'])) $sendpassword = intval($_POST['sendpassword']); - + $phpenabled = 0; if(isset($_POST['phpenabled'])) $phpenabled = intval($_POST['phpenabled']); - + $perlenabled = 0; if(isset($_POST['perlenabled'])) $perlenabled = intval($_POST['perlenabled']); - + $store_defaultindex = 0; if(isset($_POST['store_defaultindex'])) $store_defaultindex = intval($_POST['store_defaultindex']); - + $diskspace = $diskspace * 1024; $traffic = $traffic * 1024 * 1024; @@ -658,40 +664,40 @@ if($page == 'customers' $_theme = $settings['panel']['default_theme']; $result = $db->query( - "INSERT INTO `" . TABLE_PANEL_CUSTOMERS . "` SET - `adminid` = '" . (int)$userinfo['adminid'] . "', - `loginname` = '" . $db->escape($loginname) . "', - `password` = '" . md5($password) . "', - `name` = '" . $db->escape($name) . "', - `firstname` = '" . $db->escape($firstname) . "', + "INSERT INTO `" . TABLE_PANEL_CUSTOMERS . "` SET + `adminid` = '" . (int)$userinfo['adminid'] . "', + `loginname` = '" . $db->escape($loginname) . "', + `password` = '" . md5($password) . "', + `name` = '" . $db->escape($name) . "', + `firstname` = '" . $db->escape($firstname) . "', `gender` = '" . (int)$gender . "', - `company` = '" . $db->escape($company) . "', - `street` = '" . $db->escape($street) . "', - `zipcode` = '" . $db->escape($zipcode) . "', - `city` = '" . $db->escape($city) . "', - `phone` = '" . $db->escape($phone) . "', - `fax` = '" . $db->escape($fax) . "', - `email` = '" . $db->escape($email) . "', - `customernumber` = '" . $db->escape($customernumber) . "', - `def_language` = '" . $db->escape($def_language) . "', - `documentroot` = '" . $db->escape($documentroot) . "', - `guid` = '" . $db->escape($guid) . "', - `diskspace` = '" . $db->escape($diskspace) . "', - `traffic` = '" . $db->escape($traffic) . "', - `subdomains` = '" . $db->escape($subdomains) . "', - `emails` = '" . $db->escape($emails) . "', - `email_accounts` = '" . $db->escape($email_accounts) . "', - `email_forwarders` = '" . $db->escape($email_forwarders) . "', - `email_quota` = '" . $db->escape($email_quota) . "', - `ftps` = '" . $db->escape($ftps) . "', - `tickets` = '" . $db->escape($tickets) . "', - `mysqls` = '" . $db->escape($mysqls) . "', - `standardsubdomain` = '0', - `phpenabled` = '" . $db->escape($phpenabled) . "', - `imap` = '" . $db->escape($email_imap) . "', - `pop3` = '" . $db->escape($email_pop3) . "', - `aps_packages` = '" . (int)$number_of_aps_packages . "', - `perlenabled` = '" . $db->escape($perlenabled) . "', + `company` = '" . $db->escape($company) . "', + `street` = '" . $db->escape($street) . "', + `zipcode` = '" . $db->escape($zipcode) . "', + `city` = '" . $db->escape($city) . "', + `phone` = '" . $db->escape($phone) . "', + `fax` = '" . $db->escape($fax) . "', + `email` = '" . $db->escape($email) . "', + `customernumber` = '" . $db->escape($customernumber) . "', + `def_language` = '" . $db->escape($def_language) . "', + `documentroot` = '" . $db->escape($documentroot) . "', + `guid` = '" . $db->escape($guid) . "', + `diskspace` = '" . $db->escape($diskspace) . "', + `traffic` = '" . $db->escape($traffic) . "', + `subdomains` = '" . $db->escape($subdomains) . "', + `emails` = '" . $db->escape($emails) . "', + `email_accounts` = '" . $db->escape($email_accounts) . "', + `email_forwarders` = '" . $db->escape($email_forwarders) . "', + `email_quota` = '" . $db->escape($email_quota) . "', + `ftps` = '" . $db->escape($ftps) . "', + `tickets` = '" . $db->escape($tickets) . "', + `mysqls` = '" . $db->escape($mysqls) . "', + `standardsubdomain` = '0', + `phpenabled` = '" . $db->escape($phpenabled) . "', + `imap` = '" . $db->escape($email_imap) . "', + `pop3` = '" . $db->escape($email_pop3) . "', + `aps_packages` = '" . (int)$number_of_aps_packages . "', + `perlenabled` = '" . $db->escape($perlenabled) . "', `email_autoresponder` = '" . $db->escape($email_autoresponder) . "', `backup_allowed` = '" . $db->escape($backup_allowed) . "', `theme` = '" . $db->escape($_theme) . "'" @@ -768,6 +774,11 @@ if($page == 'customers' $log->logAction(ADM_ACTION, LOG_INFO, "added user '" . $loginname . "'"); inserttask('2', $loginname, $guid, $guid, $store_defaultindex); + # Using filesystem - quota, insert a task which cleans the filesystem - quota + if ($settings['system']['diskquota_enabled']) + { + inserttask('10'); + } // Add htpasswd for the webalizer stats if(CRYPT_STD_DES == 1) @@ -809,16 +820,16 @@ if($page == 'customers' $_stdsubdomain = $loginname . '.' . $settings['system']['hostname']; } - $db->query("INSERT INTO `" . TABLE_PANEL_DOMAINS . "` SET " . + $db->query("INSERT INTO `" . TABLE_PANEL_DOMAINS . "` SET " . "`domain` = '". $db->escape($_stdsubdomain) . "', " . "`customerid` = '" . (int)$customerid . "', " . - "`adminid` = '" . (int)$userinfo['adminid'] . "', " . + "`adminid` = '" . (int)$userinfo['adminid'] . "', " . "`parentdomainid` = '-1', " . - "`ipandport` = '" . $db->escape($settings['system']['defaultip']) . "', " . - "`documentroot` = '" . $db->escape($documentroot) . "', " . + "`ipandport` = '" . $db->escape($settings['system']['defaultip']) . "', " . + "`documentroot` = '" . $db->escape($documentroot) . "', " . "`zonefile` = '', " . "`isemaildomain` = '0', " . - "`caneditdomain` = '0', " . + "`caneditdomain` = '0', " . "`openbasedir` = '1', " . "`safemode` = '1', " . "`speciallogfile` = '0', " . @@ -904,11 +915,11 @@ if($page == 'customers' #$perlenabled = makeyesno('perlenabled', '1', '0', '0'); #$store_defaultindex = makeyesno('store_defaultindex', '1', '0', '1'); $backup_allowed = makeyesno('backup_allowed', '1', '0', '0'); - + $gender_options = makeoption($lng['gender']['undef'], 0, true, true, true); $gender_options .= makeoption($lng['gender']['male'], 1, null, true, true); $gender_options .= makeoption($lng['gender']['female'], 2, null, true, true); - + $customer_add_data = include_once dirname(__FILE__).'/lib/formfields/admin/customer/formfield.customer_add.php'; $customer_add_form = htmlform::genHTMLForm($customer_add_data); @@ -1010,16 +1021,16 @@ if($page == 'customers' else { $email_autoresponder = 0; - } + } $email_imap = 0; - if(isset($_POST['email_imap'])) + if(isset($_POST['email_imap'])) $email_imap = intval_ressource($_POST['email_imap']); - + $email_pop3 = 0; - if(isset($_POST['email_pop3'])) + if(isset($_POST['email_pop3'])) $email_pop3 = intval_ressource($_POST['email_pop3']); - + $ftps = 0; if(isset($_POST['ftps'])) $ftps = intval_ressource($_POST['ftps']); @@ -1036,11 +1047,11 @@ if($page == 'customers' { $tickets = - 1; } - + $backup_allowed = 0; if (isset($_POST['backup_allowed'])) $backup_allowed = intval($_POST['backup_allowed']); - + if($backup_allowed != '0'){ $backup_allowed = 1; } @@ -1049,7 +1060,7 @@ if($page == 'customers' if ($gender < 0 || $gender > 2) { $gender = 0; } - + $mysqls = 0; if(isset($_POST['mysqls'])) $mysqls = intval_ressource($_POST['mysqls']); @@ -1060,7 +1071,7 @@ if($page == 'customers' } if($settings['aps']['aps_active'] == '1') - { + { $number_of_aps_packages = intval_ressource($_POST['number_of_aps_packages']); if(isset($_POST['number_of_aps_packages_ul'])) @@ -1076,15 +1087,15 @@ if($page == 'customers' $createstdsubdomain = 0; if(isset($_POST['createstdsubdomain'])) $createstdsubdomain = intval($_POST['createstdsubdomain']); - + $deactivated = 0; if(isset($_POST['deactivated'])) $deactivated = intval($_POST['deactivated']); - + $phpenabled = 0; if(isset($_POST['phpenabled'])) $phpenabled = intval($_POST['phpenabled']); - + $perlenabled = 0; if(isset($_POST['perlenabled'])) $perlenabled = intval($_POST['perlenabled']); @@ -1210,7 +1221,7 @@ if($page == 'customers' $db->query("UPDATE `" . TABLE_MAIL_USERS . "` SET `postfix`='" . (($deactivated) ? 'N' : 'Y') . "', `pop3`='" . (($deactivated) ? '0' : '1') . "', `imap`='" . (($deactivated) ? '0' : '1') . "' WHERE `customerid`='" . (int)$id . "'"); $db->query("UPDATE `" . TABLE_FTP_USERS . "` SET `login_enabled`='" . (($deactivated) ? 'N' : 'Y') . "' WHERE `customerid`='" . (int)$id . "'"); $db->query("UPDATE `" . TABLE_PANEL_DOMAINS . "` SET `deactivated`='" . (int)$deactivated . "' WHERE `customerid`='" . (int)$id . "'"); - + /* Retrieve customer's databases */ $databases = $db->query("SELECT * FROM " . TABLE_PANEL_DATABASES . " WHERE customerid='" . (int)$id . "' ORDER BY `dbserver`"); $db_root = new db($sql_root[0]['host'], $sql_root[0]['user'], $sql_root[0]['password'], ''); @@ -1232,7 +1243,7 @@ if($page == 'customers' foreach(array_unique(explode(',', $settings['system']['mysql_access_host'])) as $mysql_access_host) { $mysql_access_host = trim($mysql_access_host); - + /* Prevent access, if deactivated */ if($deactivated) { @@ -1240,7 +1251,7 @@ if($page == 'customers' $db_root->query('REVOKE ALL PRIVILEGES ON `' . str_replace('_', '\_', $db_root->escape($row_database['databasename'])) . '` . * FROM `' . $db_root->escape($row_database['databasename']) . '`@`' . $db_root->escape($mysql_access_host) . '`'); } else /* Otherwise grant access */ - { + { $db_root->query('GRANT ALL PRIVILEGES ON `' . $db_root->escape($row_database['databasename']) .'`.* TO `' . $db_root->escape($row_database['databasename']) . '`@`' . $db_root->escape($mysql_access_host) . '`'); $db_root->query('GRANT ALL PRIVILEGES ON `' . str_replace('_', '\_', $db_root->escape($row_database['databasename'])) . '` . * TO `' . $db_root->escape($row_database['databasename']) . '`@`' . $db_root->escape($mysql_access_host) . '`'); } @@ -1250,7 +1261,7 @@ if($page == 'customers' /* At last flush the new privileges */ $db_root->query('FLUSH PRIVILEGES;'); $db_root->close(); - + $log->logAction(ADM_ACTION, LOG_INFO, "deactivated user '" . $result['loginname'] . "'"); inserttask('1'); } @@ -1273,6 +1284,12 @@ if($page == 'customers' $db->query("UPDATE `" . TABLE_PANEL_CUSTOMERS . "` SET `name`='" . $db->escape($name) . "', `firstname`='" . $db->escape($firstname) . "', `gender`='" . $db->escape($gender) . "', `company`='" . $db->escape($company) . "', `street`='" . $db->escape($street) . "', `zipcode`='" . $db->escape($zipcode) . "', `city`='" . $db->escape($city) . "', `phone`='" . $db->escape($phone) . "', `fax`='" . $db->escape($fax) . "', `email`='" . $db->escape($email) . "', `customernumber`='" . $db->escape($customernumber) . "', `def_language`='" . $db->escape($def_language) . "', `password` = '" . $password . "', `diskspace`='" . $db->escape($diskspace) . "', `traffic`='" . $db->escape($traffic) . "', `subdomains`='" . $db->escape($subdomains) . "', `emails`='" . $db->escape($emails) . "', `email_accounts` = '" . $db->escape($email_accounts) . "', `email_forwarders`='" . $db->escape($email_forwarders) . "', `ftps`='" . $db->escape($ftps) . "', `tickets`='" . $db->escape($tickets) . "', `mysqls`='" . $db->escape($mysqls) . "', `deactivated`='" . $db->escape($deactivated) . "', `phpenabled`='" . $db->escape($phpenabled) . "', `email_quota`='" . $db->escape($email_quota) . "', `imap`='" . $db->escape($email_imap) . "', `pop3`='" . $db->escape($email_pop3) . "', `aps_packages`='" . (int)$number_of_aps_packages . "', `perlenabled`='" . $db->escape($perlenabled) . "', `email_autoresponder`='" . $db->escape($email_autoresponder) . "', `backup_allowed`='" . $db->escape($backup_allowed) . "' WHERE `customerid`='" . (int)$id . "'"); $admin_update_query = "UPDATE `" . TABLE_PANEL_ADMINS . "` SET `customers_used` = `customers_used` "; + # Using filesystem - quota, insert a task which cleans the filesystem - quota + if ($settings['system']['diskquota_enabled']) + { + inserttask('10'); + } + if($mysqls != '-1' || $result['mysqls'] != '-1') { @@ -1568,7 +1585,7 @@ if($page == 'customers' $gender_options = makeoption($lng['gender']['undef'], 0, ($result['gender'] == '0' ? true : false), true, true); $gender_options .= makeoption($lng['gender']['male'], 1, ($result['gender'] == '1' ? true : false), true, true); $gender_options .= makeoption($lng['gender']['female'], 2, ($result['gender'] == '2' ? true : false), true, true); - + $customer_edit_data = include_once dirname(__FILE__).'/lib/formfields/admin/customer/formfield.customer_edit.php'; $customer_edit_form = htmlform::genHTMLForm($customer_edit_data); diff --git a/admin_settings.php b/admin_settings.php index 2ea64dd0..9ccc5f44 100644 --- a/admin_settings.php +++ b/admin_settings.php @@ -32,7 +32,7 @@ if(($page == 'settings' || $page == 'overview') { $settings_data = loadConfigArrayDir('./actions/admin/settings/'); $settings = loadSettings($settings_data, $db); - + if(isset($_POST['send']) && $_POST['send'] == 'send') { @@ -64,10 +64,10 @@ if(($page == 'settings' || $page == 'overview') $settings_part = false; $only_enabledisable = true; } - + if(processFormEx( - $settings_data, - $_POST, + $settings_data, + $_POST, array('filename' => $filename, 'action' => $action, 'page' => $page), $_part, $settings_all, @@ -86,24 +86,24 @@ if(($page == 'settings' || $page == 'overview') else { $_part = isset($_GET['part']) ? $_GET['part'] : ''; - + if($_part == '') { $_part = isset($_POST['part']) ? $_POST['part'] : ''; } $fields = buildFormEx($settings_data, $_part); - + $settings_page = ''; if($_part == '') { eval("\$settings_page .= \"" . getTemplate("settings/settings_overview") . "\";"); - } + } else { eval("\$settings_page .= \"" . getTemplate("settings/settings") . "\";"); } - + eval("echo \"" . getTemplate("settings/settings_form_begin") . "\";"); eval("echo \$settings_page;"); eval("echo \"" . getTemplate("settings/settings_form_end") . "\";"); @@ -121,6 +121,7 @@ elseif($page == 'rebuildconfigs' inserttask('4'); inserttask('5'); inserttask('9'); + inserttask('10'); standard_success('rebuildingconfigs', '', array('filename' => 'admin_index.php')); } else diff --git a/install/froxlor.sql b/install/froxlor.sql index 8c711708..7a1c9030 100644 --- a/install/froxlor.sql +++ b/install/froxlor.sql @@ -468,7 +468,7 @@ INSERT INTO `panel_settings` (`settinggroup`, `varname`, `value`) VALUES ('syste INSERT INTO `panel_settings` (`settinggroup`, `varname`, `value`) VALUES ('system', 'vmail_homedir', '/var/customers/mail/'); INSERT INTO `panel_settings` (`settinggroup`, `varname`, `value`) VALUES ('system', 'bindconf_directory', '/etc/bind/'); INSERT INTO `panel_settings` (`settinggroup`, `varname`, `value`) VALUES ('system', 'bindreload_command', '/etc/init.d/bind9 reload'); -INSERT INTO `panel_settings` (`settinggroup`, `varname`, `value`) VALUES ('panel', 'version', '0.9.21'); +INSERT INTO `panel_settings` (`settinggroup`, `varname`, `value`) VALUES ('panel', 'version', '0.9.22-svn1'); INSERT INTO `panel_settings` (`settinggroup`, `varname`, `value`) VALUES ('system', 'hostname', 'SERVERNAME'); INSERT INTO `panel_settings` (`settinggroup`, `varname`, `value`) VALUES ('login', 'maxloginattempts', '3'); INSERT INTO `panel_settings` (`settinggroup`, `varname`, `value`) VALUES ('login', 'deactivatetime', '900'); @@ -632,6 +632,11 @@ INSERT INTO `panel_settings` (`settinggroup`, `varname`, `value`) VALUES ('syste INSERT INTO `panel_settings` (`settinggroup`, `varname`, `value`) VALUES ('system', 'backup_ftp_user', ''); INSERT INTO `panel_settings` (`settinggroup`, `varname`, `value`) VALUES ('system', 'backup_ftp_pass', ''); INSERT INTO `panel_settings` (`settinggroup`, `varname`, `value`) VALUES ('system', 'backup_ftp_passive', '1'); +INSERT INTO `panel_settings` (`settinggroup`, `varname`, `value`) VALUES ('system', 'diskquota_enabled', '0'); +INSERT INTO `panel_settings` (`settinggroup`, `varname`, `value`) VALUES ('system', 'diskquota_repquota_path', '/usr/sbin/repquota'); +INSERT INTO `panel_settings` (`settinggroup`, `varname`, `value`) VALUES ('system', 'diskquota_quotatool_path', '/usr/bin/quotatool'); +INSERT INTO `panel_settings` (`settinggroup`, `varname`, `value`) VALUES ('system', 'diskquota_customer_partition', '/dev/root'); + # -------------------------------------------------------- # @@ -1019,7 +1024,7 @@ CREATE TABLE IF NOT EXISTS `aps_temp_settings` ( DROP TABLE IF EXISTS `cronjobs_run`; CREATE TABLE IF NOT EXISTS `cronjobs_run` ( `id` bigint(20) NOT NULL auto_increment, - `module` varchar(250) NOT NULL, + `module` varchar(250) NOT NULL, `cronfile` varchar(250) NOT NULL, `lastrun` int(15) NOT NULL DEFAULT '0', `interval` varchar(100) NOT NULL DEFAULT '5 MINUTE', diff --git a/install/updates/froxlor/0.9/update_0.9.inc.php b/install/updates/froxlor/0.9/update_0.9.inc.php index 4d6fcab1..f068bda9 100644 --- a/install/updates/froxlor/0.9/update_0.9.inc.php +++ b/install/updates/froxlor/0.9/update_0.9.inc.php @@ -1382,7 +1382,7 @@ if(isFroxlorVersion('0.9.16')) } $check = $db->query_first("SELECT `varname` FROM `" . TABLE_PANEL_TEMPLATES . "` WHERE `varname`='trafficninetypercent_mailbody';"); if(isset($check['varname']) && $check['varname'] == 'trafficninetypercent_mailbody') - { + { $db->query("UPDATE `" . TABLE_PANEL_TEMPLATES . "` SET `varname` = 'trafficmaxpercent_mailbody' WHERE `varname`='trafficninetypercent_mailbody';"); } lastStepStatus(0); @@ -1400,7 +1400,7 @@ if(isFroxlorVersion('0.9.17-svn1')) `fid` int(11) NOT NULL, `docrootsettings` text NOT NULL, PRIMARY KEY (`id`) -) ENGINE=MyISAM;"); +) ENGINE=MyISAM;"); $db->query("CREATE TABLE IF NOT EXISTS `domain_docrootsettings` ( `id` int(5) NOT NULL auto_increment, `fid` int(11) NOT NULL, @@ -1495,11 +1495,11 @@ if(isFroxlorVersion('0.9.19')) { showUpdateStep("Updating from 0.9.19 to 0.9.20-svn1"); lastStepStatus(0); - + showUpdateStep("Adding new setting for domain validation"); $db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'validate_domain', '1')"); lastStepStatus(0); - + updateToVersion('0.9.20-svn1'); } @@ -1549,7 +1549,7 @@ if(isFroxlorVersion('0.9.20.1')) lastStepStatus(0); showUpdateStep("Fixing possible broken tables"); - + // The customer-table may miss the columns, if installed a fresh 0.9.20 or 0.9.20.1 - add them $result = $db->query("DESCRIBE `" . TABLE_PANEL_CUSTOMERS . "`"); $columnfound = 0; @@ -1593,7 +1593,7 @@ if(isFroxlorVersion('0.9.20.1-svn1') || isFroxlorVersion('0.9.20.2-svn1')) // add table column for gender $db->query("ALTER TABLE `" . TABLE_PANEL_CUSTOMERS . "` ADD `gender` INT( 1 ) NOT NULL DEFAULT '0' AFTER `firstname`"); - + lastStepStatus(0); @@ -1604,10 +1604,10 @@ if(isFroxlorVersion('0.9.21-svn1')) { showUpdateStep("Updating from 0.9.21-svn1 to 0.9.21-svn2"); lastStepStatus(0); - + /* add new setting: backup FTP mode */ $db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'backup_ftp_passive', '1')"); - + lastStepStatus(0); updateToVersion('0.9.21-svn2'); @@ -1617,6 +1617,20 @@ if(isFroxlorVersion('0.9.21-svn2')) { showUpdateStep("Updating from 0.9.21-svn2 to 0.9.21"); lastStepStatus(0); - + updateToVersion('0.9.21'); } + +if(isFroxlorVersion('0.9.21')) +{ + showUpdateStep("Updating from 0.9.21 to 0.9.22-svn1"); + lastStepStatus(0); + + /* add new settings for diskspacequota - support */ + $db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'diskquota_enabled', '0');"); + $db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'diskquota_repquota_path', '/usr/sbin/repquota');"); + $db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'diskquota_quotatool_path', '/usr/bin/quotatool');"); + $db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'diskquota_customer_partition', '/dev/root');"); + + updateToVersion('0.9.22-svn1'); +} diff --git a/lib/functions/froxlor/function.CronjobFunctions.php b/lib/functions/froxlor/function.CronjobFunctions.php index 79cff04e..04aee62a 100644 --- a/lib/functions/froxlor/function.CronjobFunctions.php +++ b/lib/functions/froxlor/function.CronjobFunctions.php @@ -18,18 +18,18 @@ /* * Function getNextCronjobs * - * checks which cronjobs have to be executed + * checks which cronjobs have to be executed * * @return array array of cron-files which are to be executed */ function getNextCronjobs() { global $db; - + $query = "SELECT `id`, `cronfile` FROM `".TABLE_PANEL_CRONRUNS."` WHERE `interval` <> '0' AND `isactive` = '1' AND ("; $intervals = getIntervalOptions(); - + $x = 0; foreach($intervals as $name => $ival) { @@ -37,23 +37,23 @@ function getNextCronjobs() if($x == 0) { $query.= '(UNIX_TIMESTAMP(DATE_ADD(FROM_UNIXTIME(`lastrun`), INTERVAL '.$ival.')) <= UNIX_TIMESTAMP() AND `interval`=\''.$ival.'\')'; - } else { + } else { $query.= ' OR (UNIX_TIMESTAMP(DATE_ADD(FROM_UNIXTIME(`lastrun`), INTERVAL '.$ival.')) <= UNIX_TIMESTAMP() AND `interval`=\''.$ival.'\')'; } $x++; } - + $query.= ');'; - + $result = $db->query($query); - + $cron_files = array(); while($row = $db->fetch_array($result)) { $cron_files[] = $row['cronfile']; $db->query("UPDATE `".TABLE_PANEL_CRONRUNS."` SET `lastrun` = UNIX_TIMESTAMP() WHERE `id` ='".(int)$row['id']."';"); } - + return $cron_files; } @@ -63,10 +63,10 @@ function includeCronjobs($debugHandler, $pathtophpfiles) global $settings; $cronjobs = getNextCronjobs(); - + $jobs_to_run = array(); $cron_path = makeCorrectDir($pathtophpfiles.'/scripts/jobs/'); - + if($cronjobs !== false && is_array($cronjobs) && isset($cronjobs[0])) @@ -77,7 +77,7 @@ function includeCronjobs($debugHandler, $pathtophpfiles) $jobs_to_run[] = $cron_file; } } - + return $jobs_to_run; } @@ -103,7 +103,7 @@ function getIntervalOptions() $cronlog->logAction(CRON_ACTION, LOG_ERROR, "Invalid SQL-Interval ".$row['interval']." detected. Please fix this in the database."); } } - + return $cron_intervals; } @@ -111,14 +111,14 @@ function getIntervalOptions() function getCronjobsLastRun() { global $db, $lng; - + $query = "SELECT `lastrun`, `desc_lng_key` FROM `".TABLE_PANEL_CRONRUNS."` WHERE `isactive` = '1' ORDER BY `cronfile` ASC"; $result = $db->query($query); - + $cronjobs_last_run = ''; while($row = $db->fetch_array($result)) - { + { $lastrun = $lng['cronjobs']['notyetrun']; if($row['lastrun'] > 0) { $lastrun = date('d.m.Y H:i:s', $row['lastrun']); @@ -129,18 +129,18 @@ function getCronjobsLastRun() eval("\$cronjobs_last_run .= \"" . getTemplate("index/overview_item") . "\";"); } - + return $cronjobs_last_run; } function toggleCronStatus($module = null, $isactive = 0) { global $db; - + if($isactive != 1) { $isactive = 0; } - + $query = "UPDATE `".TABLE_PANEL_CRONRUNS."` SET `isactive` = '".(int)$isactive."' WHERE `module` = '".$module."'"; $db->query($query); @@ -149,10 +149,10 @@ function toggleCronStatus($module = null, $isactive = 0) function getOutstandingTasks() { global $db, $lng; - + $query = "SELECT * FROM `".TABLE_PANEL_TASKS."` ORDER BY `type` ASC"; $result = $db->query($query); - + $value = '