Added FTP - quota - patch made by monotek, fixes #13
This commit is contained in:
40
actions/admin/settings/220.ftpserver.php
Normal file
40
actions/admin/settings/220.ftpserver.php
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This file is part of the Froxlor project.
|
||||||
|
* Copyright (c) 2003-2009 the SysCP Team (see authors).
|
||||||
|
* Copyright (c) 2010 the Froxlor Team (see authors).
|
||||||
|
*
|
||||||
|
* For the full copyright and license information, please view the COPYING
|
||||||
|
* file that was distributed with this source code. You can also view the
|
||||||
|
* COPYING file online at http://files.froxlor.org/misc/COPYING.txt
|
||||||
|
*
|
||||||
|
* @copyright (c) the authors
|
||||||
|
* @author Florian Lippert <flo@syscp.org> (2003-2009)
|
||||||
|
* @author Froxlor team <team@froxlor.org> (2010-)
|
||||||
|
* @license GPLv2 http://files.froxlor.org/misc/COPYING.txt
|
||||||
|
* @package Settings
|
||||||
|
* @version $Id: 220.ftpserver.php 1 2010-04-07 10:00:00Z monotek $
|
||||||
|
*/
|
||||||
|
|
||||||
|
return array(
|
||||||
|
'groups' => array(
|
||||||
|
'ftpserver' => array(
|
||||||
|
'title' => $lng['admin']['ftpserversettings'],
|
||||||
|
'fields' => array(
|
||||||
|
'ftpserver' => array(
|
||||||
|
'label' => $lng['admin']['ftpserver'],
|
||||||
|
'settinggroup' => 'system',
|
||||||
|
'varname' => 'ftpserver',
|
||||||
|
'type' => 'option',
|
||||||
|
'default' => 'proftpd',
|
||||||
|
'option_mode' => 'one',
|
||||||
|
'option_options' => array('proftpd' => 'Proftpd', 'pureftpd' => 'Pureftpd'),
|
||||||
|
'save_method' => 'storeSettingField',
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
?>
|
||||||
@@ -184,6 +184,11 @@ if($page == 'customers'
|
|||||||
$db->query("DELETE FROM `" . TABLE_PANEL_TRAFFIC . "` WHERE `customerid`='" . (int)$id . "'");
|
$db->query("DELETE FROM `" . TABLE_PANEL_TRAFFIC . "` WHERE `customerid`='" . (int)$id . "'");
|
||||||
$db->query("DELETE FROM `" . TABLE_MAIL_USERS . "` WHERE `customerid`='" . (int)$id . "'");
|
$db->query("DELETE FROM `" . TABLE_MAIL_USERS . "` WHERE `customerid`='" . (int)$id . "'");
|
||||||
$db->query("DELETE FROM `" . TABLE_MAIL_VIRTUAL . "` WHERE `customerid`='" . (int)$id . "'");
|
$db->query("DELETE FROM `" . TABLE_MAIL_VIRTUAL . "` WHERE `customerid`='" . (int)$id . "'");
|
||||||
|
$result = $db->query("SELECT `username` FROM `" . TABLE_FTP_USERS . "` WHERE `customerid`='" . (int)$id . "'");
|
||||||
|
while($row = $db->fetch_array($result))
|
||||||
|
{
|
||||||
|
$db->query("DELETE FROM `" . TABLE_FTP_QUOTATALLIES . "` WHERE `name`='" . $row['username'] . "'");
|
||||||
|
}
|
||||||
$db->query("DELETE FROM `" . TABLE_FTP_GROUPS . "` WHERE `customerid`='" . (int)$id . "'");
|
$db->query("DELETE FROM `" . TABLE_FTP_GROUPS . "` WHERE `customerid`='" . (int)$id . "'");
|
||||||
$db->query("DELETE FROM `" . TABLE_FTP_USERS . "` WHERE `customerid`='" . (int)$id . "'");
|
$db->query("DELETE FROM `" . TABLE_FTP_USERS . "` WHERE `customerid`='" . (int)$id . "'");
|
||||||
$db->query("DELETE FROM `" . TABLE_MAIL_AUTORESPONDER . "` WHERE `customerid`='" . (int)$id . "'");
|
$db->query("DELETE FROM `" . TABLE_MAIL_AUTORESPONDER . "` WHERE `customerid`='" . (int)$id . "'");
|
||||||
@@ -592,6 +597,7 @@ if($page == 'customers'
|
|||||||
inserttask('1');
|
inserttask('1');
|
||||||
$result = $db->query("INSERT INTO `" . TABLE_FTP_USERS . "` " . "(`customerid`, `username`, `password`, `homedir`, `login_enabled`, `uid`, `gid`) " . "VALUES ('" . (int)$customerid . "', '" . $db->escape($loginname) . "', ENCRYPT('" . $db->escape($password) . "'), '" . $db->escape($documentroot) . "', 'y', '" . (int)$guid . "', '" . (int)$guid . "')");
|
$result = $db->query("INSERT INTO `" . TABLE_FTP_USERS . "` " . "(`customerid`, `username`, `password`, `homedir`, `login_enabled`, `uid`, `gid`) " . "VALUES ('" . (int)$customerid . "', '" . $db->escape($loginname) . "', ENCRYPT('" . $db->escape($password) . "'), '" . $db->escape($documentroot) . "', 'y', '" . (int)$guid . "', '" . (int)$guid . "')");
|
||||||
$result = $db->query("INSERT INTO `" . TABLE_FTP_GROUPS . "` " . "(`customerid`, `groupname`, `gid`, `members`) " . "VALUES ('" . (int)$customerid . "', '" . $db->escape($loginname) . "', '" . $db->escape($guid) . "', '" . $db->escape($loginname) . "')");
|
$result = $db->query("INSERT INTO `" . TABLE_FTP_GROUPS . "` " . "(`customerid`, `groupname`, `gid`, `members`) " . "VALUES ('" . (int)$customerid . "', '" . $db->escape($loginname) . "', '" . $db->escape($guid) . "', '" . $db->escape($loginname) . "')");
|
||||||
|
$result = $db->query("INSERT INTO `" . TABLE_FTP_QUOTATALLIES . "` (`name`, `quota_type`, `bytes_in_used`, `bytes_out_used`, `bytes_xfer_used`, `files_in_used`, `files_out_used`, `files_xfer_used`) VALUES ('" . $db->escape($loginname) . "', 'user', '0', '0', '0', '0', '0', '0')");
|
||||||
$log->logAction(ADM_ACTION, LOG_NOTICE, "automatically added ftp-account for user '" . $loginname . "'");
|
$log->logAction(ADM_ACTION, LOG_NOTICE, "automatically added ftp-account for user '" . $loginname . "'");
|
||||||
|
|
||||||
if($createstdsubdomain == '1')
|
if($createstdsubdomain == '1')
|
||||||
|
|||||||
@@ -97,6 +97,11 @@ elseif($page == 'accounts')
|
|||||||
&& $_POST['send'] == 'send')
|
&& $_POST['send'] == 'send')
|
||||||
{
|
{
|
||||||
$db->query("UPDATE `" . TABLE_FTP_USERS . "` SET `up_count`=`up_count`+'" . (int)$result['up_count'] . "', `up_bytes`=`up_bytes`+'" . (int)$result['up_bytes'] . "', `down_count`=`down_count`+'" . (int)$result['down_count'] . "', `down_bytes`=`down_bytes`+'" . (int)$result['down_bytes'] . "' WHERE `username`='" . $db->escape($userinfo['loginname']) . "'");
|
$db->query("UPDATE `" . TABLE_FTP_USERS . "` SET `up_count`=`up_count`+'" . (int)$result['up_count'] . "', `up_bytes`=`up_bytes`+'" . (int)$result['up_bytes'] . "', `down_count`=`down_count`+'" . (int)$result['down_count'] . "', `down_bytes`=`down_bytes`+'" . (int)$result['down_bytes'] . "' WHERE `username`='" . $db->escape($userinfo['loginname']) . "'");
|
||||||
|
$result = $db->query("SELECT `username` FROM `" . TABLE_FTP_USERS . "` WHERE `customerid`='" . (int)$userinfo['customerid'] . "' AND `id`='" . (int)$id . "'");
|
||||||
|
while($row = $db->fetch_array($result))
|
||||||
|
{
|
||||||
|
$db->query("DELETE FROM `" . TABLE_FTP_QUOTATALLIES . "` WHERE `name` = '" . $db->escape($row['username']) . "'");
|
||||||
|
}
|
||||||
$db->query("DELETE FROM `" . TABLE_FTP_USERS . "` WHERE `customerid`='" . (int)$userinfo['customerid'] . "' AND `id`='" . (int)$id . "'");
|
$db->query("DELETE FROM `" . TABLE_FTP_USERS . "` WHERE `customerid`='" . (int)$userinfo['customerid'] . "' AND `id`='" . (int)$id . "'");
|
||||||
$log->logAction(USR_ACTION, LOG_INFO, "deleted ftp-account '" . $result['username'] . "'");
|
$log->logAction(USR_ACTION, LOG_INFO, "deleted ftp-account '" . $result['username'] . "'");
|
||||||
$db->query("UPDATE `" . TABLE_FTP_GROUPS . "` SET `members`=REPLACE(`members`,'," . $db->escape($result['username']) . "','') WHERE `customerid`='" . (int)$userinfo['customerid'] . "'");
|
$db->query("UPDATE `" . TABLE_FTP_GROUPS . "` SET `members`=REPLACE(`members`,'," . $db->escape($result['username']) . "','') WHERE `customerid`='" . (int)$userinfo['customerid'] . "'");
|
||||||
@@ -176,6 +181,11 @@ elseif($page == 'accounts')
|
|||||||
$path = makeCorrectDir($userinfo['documentroot'] . '/' . $path);
|
$path = makeCorrectDir($userinfo['documentroot'] . '/' . $path);
|
||||||
|
|
||||||
$db->query("INSERT INTO `" . TABLE_FTP_USERS . "` (`customerid`, `username`, `password`, `homedir`, `login_enabled`, `uid`, `gid`) VALUES ('" . (int)$userinfo['customerid'] . "', '" . $db->escape($username) . "', ENCRYPT('" . $db->escape($password) . "'), '" . $db->escape($path) . "', 'y', '" . (int)$userinfo['guid'] . "', '" . (int)$userinfo['guid'] . "')");
|
$db->query("INSERT INTO `" . TABLE_FTP_USERS . "` (`customerid`, `username`, `password`, `homedir`, `login_enabled`, `uid`, `gid`) VALUES ('" . (int)$userinfo['customerid'] . "', '" . $db->escape($username) . "', ENCRYPT('" . $db->escape($password) . "'), '" . $db->escape($path) . "', 'y', '" . (int)$userinfo['guid'] . "', '" . (int)$userinfo['guid'] . "')");
|
||||||
|
$result = $db->query("SELECT `bytes_in_used` FROM `" . TABLE_FTP_QUOTATALLIES . "` WHERE `name` = '" . $userinfo['loginname'] . "'");
|
||||||
|
while($row = $db->fetch_array($result))
|
||||||
|
{
|
||||||
|
$db->query("INSERT INTO `" . TABLE_FTP_QUOTATALLIES . "` (`name`, `quota_type`, `bytes_in_used`, `bytes_out_used`, `bytes_xfer_used`, `files_in_used`, `files_out_used`, `files_xfer_used`) VALUES ('" . $db->escape($username) . "', 'user', '" . $db->escape($row[bytes_in_used]) . "', '0', '0', '0', '0', '0')");
|
||||||
|
}
|
||||||
$db->query("UPDATE `" . TABLE_FTP_GROUPS . "` SET `members`=CONCAT_WS(',',`members`,'" . $db->escape($username) . "') WHERE `customerid`='" . $userinfo['customerid'] . "' AND `gid`='" . (int)$userinfo['guid'] . "'");
|
$db->query("UPDATE `" . TABLE_FTP_GROUPS . "` SET `members`=CONCAT_WS(',',`members`,'" . $db->escape($username) . "') WHERE `customerid`='" . $userinfo['customerid'] . "' AND `gid`='" . (int)$userinfo['guid'] . "'");
|
||||||
$db->query("UPDATE `" . TABLE_PANEL_CUSTOMERS . "` SET `ftps_used`=`ftps_used`+1, `ftp_lastaccountnumber`=`ftp_lastaccountnumber`+1 WHERE `customerid`='" . (int)$userinfo['customerid'] . "'");
|
$db->query("UPDATE `" . TABLE_PANEL_CUSTOMERS . "` SET `ftps_used`=`ftps_used`+1, `ftp_lastaccountnumber`=`ftp_lastaccountnumber`+1 WHERE `customerid`='" . (int)$userinfo['customerid'] . "'");
|
||||||
|
|
||||||
|
|||||||
@@ -451,7 +451,7 @@ INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) V
|
|||||||
INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) VALUES (18, 'system', 'vmail_homedir', '/var/customers/mail/');
|
INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) VALUES (18, 'system', 'vmail_homedir', '/var/customers/mail/');
|
||||||
INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) VALUES (19, 'system', 'bindconf_directory', '/etc/bind/');
|
INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) VALUES (19, 'system', 'bindconf_directory', '/etc/bind/');
|
||||||
INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) VALUES (20, 'system', 'bindreload_command', '/etc/init.d/bind9 reload');
|
INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) VALUES (20, 'system', 'bindreload_command', '/etc/init.d/bind9 reload');
|
||||||
INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) VALUES (22, 'panel', 'version', '0.9.6-svn5');
|
INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) VALUES (22, 'panel', 'version', '0.9.6-svn6');
|
||||||
INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) VALUES (23, 'system', 'hostname', 'SERVERNAME');
|
INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) VALUES (23, 'system', 'hostname', 'SERVERNAME');
|
||||||
INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) VALUES (24, 'login', 'maxloginattempts', '3');
|
INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) VALUES (24, 'login', 'maxloginattempts', '3');
|
||||||
INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) VALUES (25, 'login', 'deactivatetime', '900');
|
INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) VALUES (25, 'login', 'deactivatetime', '900');
|
||||||
@@ -567,6 +567,7 @@ INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) V
|
|||||||
INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) VALUES (136, 'defaultwebsrverrhandler', 'err500', '');
|
INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) VALUES (136, 'defaultwebsrverrhandler', 'err500', '');
|
||||||
INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) VALUES (137, 'ticket', 'default_priority', '2');
|
INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) VALUES (137, 'ticket', 'default_priority', '2');
|
||||||
INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) VALUES (138, 'system', 'mod_fcgid_defaultini', '1');
|
INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) VALUES (138, 'system', 'mod_fcgid_defaultini', '1');
|
||||||
|
INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) VALUES (139, 'system', 'ftpserver', 'proftpd');
|
||||||
|
|
||||||
|
|
||||||
# --------------------------------------------------------
|
# --------------------------------------------------------
|
||||||
@@ -969,3 +970,45 @@ INSERT INTO `cronjobs_run` (`id`, `module`, `cronfile`, `interval`, `isactive`,
|
|||||||
INSERT INTO `cronjobs_run` (`id`, `module`, `cronfile`, `interval`, `isactive`, `desc_lng_key`) VALUES (6, 'froxlor/core', 'cron_traffic.php', '1 DAY', '1', 'cron_traffic');
|
INSERT INTO `cronjobs_run` (`id`, `module`, `cronfile`, `interval`, `isactive`, `desc_lng_key`) VALUES (6, 'froxlor/core', 'cron_traffic.php', '1 DAY', '1', 'cron_traffic');
|
||||||
INSERT INTO `cronjobs_run` (`id`, `module`, `cronfile`, `interval`, `isactive`, `desc_lng_key`) VALUES (7, 'froxlor/ticket', 'cron_used_tickets_reset.php', '1 MONTH', '1', 'cron_ticketsreset');
|
INSERT INTO `cronjobs_run` (`id`, `module`, `cronfile`, `interval`, `isactive`, `desc_lng_key`) VALUES (7, 'froxlor/ticket', 'cron_used_tickets_reset.php', '1 MONTH', '1', 'cron_ticketsreset');
|
||||||
INSERT INTO `cronjobs_run` (`id`, `module`, `cronfile`, `interval`, `isactive`, `desc_lng_key`) VALUES (8, 'froxlor/ticket', 'cron_ticketarchive.php', '1 MONTH', '1', 'cron_ticketarchive');
|
INSERT INTO `cronjobs_run` (`id`, `module`, `cronfile`, `interval`, `isactive`, `desc_lng_key`) VALUES (8, 'froxlor/ticket', 'cron_ticketarchive.php', '1 MONTH', '1', 'cron_ticketarchive');
|
||||||
|
|
||||||
|
# --------------------------------------------------------
|
||||||
|
|
||||||
|
#
|
||||||
|
# Tabellenstruktur fuer Tabelle `ftp_quotalimits`
|
||||||
|
#
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS `ftp_quotalimits` (
|
||||||
|
`name` varchar(30) default NULL,
|
||||||
|
`quota_type` enum('user','group','class','all') NOT NULL default 'user',
|
||||||
|
`per_session` enum('false','true') NOT NULL default 'false',
|
||||||
|
`limit_type` enum('soft','hard') NOT NULL default 'hard',
|
||||||
|
`bytes_in_avail` float NOT NULL,
|
||||||
|
`bytes_out_avail` float NOT NULL,
|
||||||
|
`bytes_xfer_avail` float NOT NULL,
|
||||||
|
`files_in_avail` int(10) unsigned NOT NULL,
|
||||||
|
`files_out_avail` int(10) unsigned NOT NULL,
|
||||||
|
`files_xfer_avail` int(10) unsigned NOT NULL
|
||||||
|
) ENGINE=MyISAM;
|
||||||
|
|
||||||
|
#
|
||||||
|
# Dumping data for table `ftp_quotalimits`
|
||||||
|
#
|
||||||
|
|
||||||
|
INSERT INTO `ftp_quotalimits` (`name`, `quota_type`, `per_session`, `limit_type`, `bytes_in_avail`, `bytes_out_avail`, `bytes_xfer_avail`, `files_in_avail`, `files_out_avail`, `files_xfer_avail`) VALUES ('froxlor', 'user', 'false', 'hard', 0, 0, 0, 0, 0, 0);
|
||||||
|
|
||||||
|
# --------------------------------------------------------
|
||||||
|
|
||||||
|
#
|
||||||
|
# Tabellenstruktur fuer Tabelle `ftp_quotatallies`
|
||||||
|
#
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS `ftp_quotatallies` (
|
||||||
|
`name` varchar(30) NOT NULL,
|
||||||
|
`quota_type` enum('user','group','class','all') NOT NULL,
|
||||||
|
`bytes_in_used` float NOT NULL,
|
||||||
|
`bytes_out_used` float NOT NULL,
|
||||||
|
`bytes_xfer_used` float NOT NULL,
|
||||||
|
`files_in_used` int(10) unsigned NOT NULL,
|
||||||
|
`files_out_used` int(10) unsigned NOT NULL,
|
||||||
|
`files_xfer_used` int(10) unsigned NOT NULL
|
||||||
|
) ENGINE=MyISAM;
|
||||||
|
|||||||
@@ -613,4 +613,34 @@ if(isFroxlorVersion('0.9.6-svn4'))
|
|||||||
updateToVersion('0.9.6-svn5');
|
updateToVersion('0.9.6-svn5');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(isFroxlorVersion('0.9.6-svn5'))
|
||||||
|
{
|
||||||
|
showUpdateStep("Updating from 0.9.6-svn5 to 0.9.6-svn6");
|
||||||
|
|
||||||
|
showUpdateStep("Adding new FTP-quota settings");
|
||||||
|
|
||||||
|
// add ftp server setting
|
||||||
|
$db->query("INSERT INTO `panel_settings` SET `settinggroup` = 'system', `varname` = 'ftpserver', `value` = 'proftpd';");
|
||||||
|
|
||||||
|
// add proftpd quota
|
||||||
|
$db->query("CREATE TABLE`ftp_quotalimits` (`name` varchar(30) default NULL, `quota_type` enum('user','group','class','all') NOT NULL default 'user', `per_session` enum('false','true') NOT NULL default 'false', `limit_type` enum('soft','hard') NOT NULL default 'hard', `bytes_in_avail` float NOT NULL, `bytes_out_avail` float NOT NULL, `bytes_xfer_avail` float NOT NULL, `files_in_avail` int(10) unsigned NOT NULL, `files_out_avail` int(10) unsigned NOT NULL, `files_xfer_avail` int(10) unsigned NOT NULL) ENGINE=MyISAM;");
|
||||||
|
|
||||||
|
$db->query("INSERT INTO `ftp_quotalimits` (`name`, `quota_type`, `per_session`, `limit_type`, `bytes_in_avail`, `bytes_out_avail`, `bytes_xfer_avail`, `files_in_avail`, `files_out_avail`, `files_xfer_avail`) VALUES ('froxlor', 'user', 'false', 'hard', 0, 0, 0, 0, 0, 0);");
|
||||||
|
|
||||||
|
$db->query("CREATE TABLE `ftp_quotatallies` (`name` varchar(30) NOT NULL, `quota_type` enum('user','group','class','all') NOT NULL, `bytes_in_used` float NOT NULL, `bytes_out_used` float NOT NULL, `bytes_xfer_used` float NOT NULL, `files_in_used` int(10) unsigned NOT NULL, `files_out_used` int(10) unsigned NOT NULL, `files_xfer_used` int(10) unsigned NOT NULL ) ENGINE=MyISAM;");
|
||||||
|
|
||||||
|
// fill quota tallies
|
||||||
|
$result_ftp_users = $db->query("SELECT username FROM `" . TABLE_FTP_USERS . "` WHERE 1;");
|
||||||
|
|
||||||
|
while($row_ftp_users = $db->fetch_array($result_ftp_users))
|
||||||
|
{
|
||||||
|
$result_ftp_quota = $db->query("SELECT diskspace_used FROM `" . TABLE_PANEL_CUSTOMERS . "` WHERE loginname = SUBSTRING_INDEX('" . $row_ftp_users[username] . "', '" . $settings['customer']['ftpprefix'] . "', 1);");
|
||||||
|
$row_ftp_quota = mysql_fetch_row($result_ftp_quota);
|
||||||
|
$db->query("INSERT INTO `ftp_quotatallies` (`name`, `quota_type`, `bytes_in_used`, `bytes_out_used`, `bytes_xfer_used`, `files_in_used`, `files_out_used`, `files_xfer_used`) VALUES ('" . $row_ftp_users[username] . "', 'user', '" . $row_ftp_quota[0] . "'*1024, '0', '0', '0', '0', '0');");
|
||||||
|
}
|
||||||
|
|
||||||
|
lastStepStatus(0);
|
||||||
|
updateToVersion('0.9.6-svn6');
|
||||||
|
}
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
|||||||
@@ -19,6 +19,8 @@
|
|||||||
|
|
||||||
define('TABLE_FTP_GROUPS', 'ftp_groups');
|
define('TABLE_FTP_GROUPS', 'ftp_groups');
|
||||||
define('TABLE_FTP_USERS', 'ftp_users');
|
define('TABLE_FTP_USERS', 'ftp_users');
|
||||||
|
define('TABLE_FTP_QUOTALIMITS', 'ftp_quotalimits');
|
||||||
|
define('TABLE_FTP_QUOTATALLIES', 'ftp_quotatallies');
|
||||||
define('TABLE_MAIL_USERS', 'mail_users');
|
define('TABLE_MAIL_USERS', 'mail_users');
|
||||||
define('TABLE_MAIL_VIRTUAL', 'mail_virtual');
|
define('TABLE_MAIL_VIRTUAL', 'mail_virtual');
|
||||||
define('TABLE_PANEL_ADMINS', 'panel_admins');
|
define('TABLE_PANEL_ADMINS', 'panel_admins');
|
||||||
@@ -68,7 +70,7 @@ define('PACKAGE_ENABLED', 2);
|
|||||||
|
|
||||||
// VERSION INFO
|
// VERSION INFO
|
||||||
|
|
||||||
$version = '0.9.6-svn5';
|
$version = '0.9.6-svn6';
|
||||||
$dbversion = '2';
|
$dbversion = '2';
|
||||||
$branding = '';
|
$branding = '';
|
||||||
|
|
||||||
|
|||||||
@@ -1383,4 +1383,12 @@ $lng['serversettings']['ticket']['default_priority'] = 'Default support-ticket p
|
|||||||
// ADDED IN FROXLOR 0.9.6-svn5
|
// ADDED IN FROXLOR 0.9.6-svn5
|
||||||
$lng['serversettings']['mod_fcgid']['defaultini'] = 'Default PHP configuration for new domains';
|
$lng['serversettings']['mod_fcgid']['defaultini'] = 'Default PHP configuration for new domains';
|
||||||
|
|
||||||
|
// ADDED IN FROXLOR 0.9.6-svn6
|
||||||
|
$lng['admin']['ftpserver'] = 'FTP Server';
|
||||||
|
$lng['admin']['ftpserversettings'] = 'FTP Server settings';
|
||||||
|
$lng['serversettings']['ftpserver']['desc'] = 'If pureftpd is selected the .ftpquota files for user quotas are created and updated daily';
|
||||||
|
|
||||||
|
// CHANGED IN FROXLOR 0.9.6-svn6
|
||||||
|
$lng['serversettings']['ftpprefix']['description'] = 'Which prefix should ftp accounts have?<br/><b>If you change this you also have to change the Quota SQL Query in your FTP Server config file in case you use it!</b> ';
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
|||||||
@@ -1379,4 +1379,12 @@ $lng['serversettings']['ticket']['default_priority'] = 'Voreingestellte Support-
|
|||||||
// ADDED IN FROXLOR 0.9.6-svn5
|
// ADDED IN FROXLOR 0.9.6-svn5
|
||||||
$lng['serversettings']['mod_fcgid']['defaultini'] = 'Voreingestellte PHP Konfiguration für neue Domains';
|
$lng['serversettings']['mod_fcgid']['defaultini'] = 'Voreingestellte PHP Konfiguration für neue Domains';
|
||||||
|
|
||||||
|
// ADDED IN FROXLOR 0.9.6-svn5
|
||||||
|
$lng['admin']['ftpserver'] = 'FTP Server';
|
||||||
|
$lng['admin']['ftpserversettings'] = 'FTP Server Einstellungen';
|
||||||
|
$lng['serversettings']['ftpserver']['desc'] = 'Wenn pureftpd ausgewählt ist, werden die .ftpquota Dateien für das Quota erstellt und täglich aktualisiert.';
|
||||||
|
|
||||||
|
// CHANGED IN FROXLOR 0.9.6-svn5
|
||||||
|
$lng['serversettings']['ftpprefix']['description'] = 'Welchen Prefix sollen die FTP-Benutzerkonten haben?<br/><b>Wenn du das änderst, musst du auch das Quota SQL Query in der FTP Server Config ändern, solltest du FTP-Quotas benutzen!</b>';
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
|||||||
@@ -365,6 +365,31 @@ while($row = $db->fetch_array($result))
|
|||||||
|
|
||||||
$diskusage = floatval($webspaceusage + $emailusage + $mysqlusage);
|
$diskusage = floatval($webspaceusage + $emailusage + $mysqlusage);
|
||||||
$db->query("UPDATE `" . TABLE_PANEL_CUSTOMERS . "` SET `diskspace_used`='" . (float)$current_diskspace['all'] . "', `traffic_used`='" . (float)$sum_month_traffic['all'] . "' WHERE `customerid`='" . (int)$row['customerid'] . "'");
|
$db->query("UPDATE `" . TABLE_PANEL_CUSTOMERS . "` SET `diskspace_used`='" . (float)$current_diskspace['all'] . "', `traffic_used`='" . (float)$sum_month_traffic['all'] . "' WHERE `customerid`='" . (int)$row['customerid'] . "'");
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Proftpd Quota
|
||||||
|
*/
|
||||||
|
|
||||||
|
$db->query("UPDATE `" . TABLE_FTP_QUOTATALLIES . "` SET `bytes_in_used`='" . (float)$current_diskspace['all'] . "'*1024 WHERE `name` = '" . $row['loginname'] . "' OR `name` LIKE '" . $row['loginname'] . $settings['customer']['ftpprefix'] . "%'");
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Pureftpd Quota
|
||||||
|
*/
|
||||||
|
|
||||||
|
if($settings['system']['ftpserver'] == "pureftpd")
|
||||||
|
{
|
||||||
|
$result_quota = $db->query("SELECT homedir FROM `" . TABLE_FTP_USERS . "` WHERE customerid = '" . $row['customerid'] . "'");
|
||||||
|
|
||||||
|
while($row_quota = $db->fetch_array($result_quota))
|
||||||
|
{
|
||||||
|
$quotafile = "" . $row_quota['homedir'] . ".ftpquota";
|
||||||
|
$fh = fopen($quotafile, 'w');
|
||||||
|
$stringdata = "0 " . $current_diskspace['all']*1024 . "";
|
||||||
|
fwrite($fh, $stringdata);
|
||||||
|
fclose($fh);
|
||||||
|
safe_exec('chown ' . $row['loginname'] . ':' . $row['loginname'] . ' ' . escapeshellarg($quotafile) . '');
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -18,10 +18,10 @@ LoadModule mod_sql.c
|
|||||||
#LoadModule mod_ldap.c
|
#LoadModule mod_ldap.c
|
||||||
LoadModule mod_sql_mysql.c
|
LoadModule mod_sql_mysql.c
|
||||||
#LoadModule mod_sql_postgres.c
|
#LoadModule mod_sql_postgres.c
|
||||||
#LoadModule mod_quotatab.c
|
LoadModule mod_quotatab.c
|
||||||
#LoadModule mod_quotatab_file.c
|
#LoadModule mod_quotatab_file.c
|
||||||
#LoadModule mod_quotatab_ldap.c
|
#LoadModule mod_quotatab_ldap.c
|
||||||
#LoadModule mod_quotatab_sql.c
|
LoadModule mod_quotatab_sql.c
|
||||||
#LoadModule mod_radius.c
|
#LoadModule mod_radius.c
|
||||||
LoadModule mod_wrap.c
|
LoadModule mod_wrap.c
|
||||||
LoadModule mod_rewrite.c
|
LoadModule mod_rewrite.c
|
||||||
|
|||||||
@@ -61,3 +61,15 @@ SQLNamedQuery download UPDATE "down_count=down_count+1, down_bytes=down_bytes+%b
|
|||||||
|
|
||||||
SQLLog STOR upload
|
SQLLog STOR upload
|
||||||
SQLNamedQuery upload UPDATE "up_count=up_count+1, up_bytes=up_bytes+%b WHERE username='%u'" ftp_users
|
SQLNamedQuery upload UPDATE "up_count=up_count+1, up_bytes=up_bytes+%b WHERE username='%u'" ftp_users
|
||||||
|
|
||||||
|
|
||||||
|
QuotaEngine on
|
||||||
|
QuotaShowQuotas on
|
||||||
|
QuotaDisplayUnits Mb
|
||||||
|
QuotaLock /var/lock/ftpd.quotatab.lock
|
||||||
|
QuotaLimitTable sql:/get-quota-limit
|
||||||
|
QuotaTallyTable sql:/get-quota-tally/update-quota-tally/insert-quota-tally
|
||||||
|
SQLNamedQuery get-quota-limit SELECT "ftp_users.username AS name, ftp_quotalimits.quota_type, ftp_quotalimits.per_session, ftp_quotalimits.limit_type, panel_customers.diskspace*1024 AS bytes_in_avail, ftp_quotalimits.bytes_out_avail, ftp_quotalimits.bytes_xfer_avail, ftp_quotalimits.files_in_avail, ftp_quotalimits.files_out_avail, ftp_quotalimits.files_xfer_avail FROM ftp_users, ftp_quotalimits, panel_customers WHERE ftp_users.username = '%{0}' AND panel_customers.loginname = SUBSTRING_INDEX('%{0}', 'ftp', 1) AND quota_type ='%{1}'"
|
||||||
|
SQLNamedQuery get-quota-tally SELECT "name, quota_type, bytes_in_used,bytes_out_used, bytes_xfer_used, files_in_used, files_out_used,files_xfer_used FROM ftp_quotatallies WHERE name = '%{0}' AND quota_type = '%{1}'"
|
||||||
|
SQLNamedQuery update-quota-tally UPDATE "bytes_in_used = bytes_in_used + %{0}, bytes_out_used = bytes_out_used + %{1}, bytes_xfer_used = bytes_xfer_used + %{2}, files_in_used = files_in_used + %{3}, files_out_used= files_out_used + %{4}, files_xfer_used = files_xfer_used + %{5} WHERE name= '%{6}' AND quota_type = '%{7}'" ftp_quotatallies
|
||||||
|
SQLNamedQuery insert-quota-tally INSERT "%{0}, %{1}, %{2}, %{3}, %{4},%{5}, %{6}, %{7}" ftp_quotatallies
|
||||||
|
|||||||
@@ -8,3 +8,4 @@ MYSQLGetPW SELECT password FROM ftp_users WHERE username="\L" AND login_ena
|
|||||||
MYSQLGetUID SELECT uid FROM ftp_users WHERE username="\L" AND login_enabled="y"
|
MYSQLGetUID SELECT uid FROM ftp_users WHERE username="\L" AND login_enabled="y"
|
||||||
MYSQLGetGID SELECT gid FROM ftp_users WHERE username="\L" AND login_enabled="y"
|
MYSQLGetGID SELECT gid FROM ftp_users WHERE username="\L" AND login_enabled="y"
|
||||||
MYSQLGetDir SELECT homedir FROM ftp_users WHERE username="\L" AND login_enabled="y"
|
MYSQLGetDir SELECT homedir FROM ftp_users WHERE username="\L" AND login_enabled="y"
|
||||||
|
MySQLGetQTASZ SELECT panel_customers.diskspace/1024 AS QuotaSize FROM panel_customers, ftp_users WHERE username = "\L" AND panel_customers.loginname = SUBSTRING_INDEX('\L', 'ftp', 1)
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ LoadModule mod_quotatab_file.c
|
|||||||
#LoadModule mod_quotatab_ldap.c
|
#LoadModule mod_quotatab_ldap.c
|
||||||
|
|
||||||
# Install proftpd-mod-pgsql or proftpd-mod-mysql to use this
|
# Install proftpd-mod-pgsql or proftpd-mod-mysql to use this
|
||||||
#LoadModule mod_quotatab_sql.c
|
LoadModule mod_quotatab_sql.c
|
||||||
LoadModule mod_quotatab_radius.c
|
LoadModule mod_quotatab_radius.c
|
||||||
LoadModule mod_wrap.c
|
LoadModule mod_wrap.c
|
||||||
LoadModule mod_rewrite.c
|
LoadModule mod_rewrite.c
|
||||||
|
|||||||
@@ -22,4 +22,16 @@ SQLNamedQuery download UPDATE "down_count=down_count+1, down_bytes=down_bytes+%b
|
|||||||
|
|
||||||
SQLLog STOR upload
|
SQLLog STOR upload
|
||||||
SQLNamedQuery upload UPDATE "up_count=up_count+1, up_bytes=up_bytes+%b WHERE username='%u'" ftp_users
|
SQLNamedQuery upload UPDATE "up_count=up_count+1, up_bytes=up_bytes+%b WHERE username='%u'" ftp_users
|
||||||
|
|
||||||
|
QuotaEngine on
|
||||||
|
QuotaShowQuotas on
|
||||||
|
QuotaDisplayUnits Mb
|
||||||
|
QuotaLock /var/lock/ftpd.quotatab.lock
|
||||||
|
QuotaLimitTable sql:/get-quota-limit
|
||||||
|
QuotaTallyTable sql:/get-quota-tally/update-quota-tally/insert-quota-tally
|
||||||
|
SQLNamedQuery get-quota-limit SELECT "ftp_users.username AS name, ftp_quotalimits.quota_type, ftp_quotalimits.per_session, ftp_quotalimits.limit_type, panel_customers.diskspace*1024 AS bytes_in_avail, ftp_quotalimits.bytes_out_avail, ftp_quotalimits.bytes_xfer_avail, ftp_quotalimits.files_in_avail, ftp_quotalimits.files_out_avail, ftp_quotalimits.files_xfer_avail FROM ftp_users, ftp_quotalimits, panel_customers WHERE ftp_users.username = '%{0}' AND panel_customers.loginname = SUBSTRING_INDEX('%{0}', 'ftp', 1) AND quota_type ='%{1}'"
|
||||||
|
SQLNamedQuery get-quota-tally SELECT "name, quota_type, bytes_in_used,bytes_out_used, bytes_xfer_used, files_in_used, files_out_used,files_xfer_used FROM ftp_quotatallies WHERE name = '%{0}' AND quota_type = '%{1}'"
|
||||||
|
SQLNamedQuery update-quota-tally UPDATE "bytes_in_used = bytes_in_used + %{0}, bytes_out_used = bytes_out_used + %{1}, bytes_xfer_used = bytes_xfer_used + %{2}, files_in_used = files_in_used + %{3}, files_out_used= files_out_used + %{4}, files_xfer_used = files_xfer_used + %{5} WHERE name= '%{6}' AND quota_type = '%{7}'" ftp_quotatallies
|
||||||
|
SQLNamedQuery insert-quota-tally INSERT "%{0}, %{1}, %{2}, %{3}, %{4},%{5}, %{6}, %{7}" ftp_quotatallies
|
||||||
|
|
||||||
</IfModule>
|
</IfModule>
|
||||||
@@ -8,3 +8,4 @@ MYSQLGetPW SELECT password FROM ftp_users WHERE username="\L" AND login_ena
|
|||||||
MYSQLGetUID SELECT uid FROM ftp_users WHERE username="\L" AND login_enabled="y"
|
MYSQLGetUID SELECT uid FROM ftp_users WHERE username="\L" AND login_enabled="y"
|
||||||
MYSQLGetGID SELECT gid FROM ftp_users WHERE username="\L" AND login_enabled="y"
|
MYSQLGetGID SELECT gid FROM ftp_users WHERE username="\L" AND login_enabled="y"
|
||||||
MYSQLGetDir SELECT homedir FROM ftp_users WHERE username="\L" AND login_enabled="y"
|
MYSQLGetDir SELECT homedir FROM ftp_users WHERE username="\L" AND login_enabled="y"
|
||||||
|
MySQLGetQTASZ SELECT panel_customers.diskspace/1024 AS QuotaSize FROM panel_customers, ftp_users WHERE username = "\L" AND panel_customers.loginname = SUBSTRING_INDEX('\L', 'ftp', 1)
|
||||||
|
|||||||
@@ -28,7 +28,10 @@ Group nogroup
|
|||||||
AllowOverwrite on
|
AllowOverwrite on
|
||||||
|
|
||||||
<IfModule mod_quotatab.c>
|
<IfModule mod_quotatab.c>
|
||||||
QuotaEngine off
|
QuotaEngine on
|
||||||
|
QuotaShowQuotas on
|
||||||
|
QuotaDisplayUnits Mb
|
||||||
|
QuotaLock /var/lock/ftpd.quotatab.lock
|
||||||
</IfModule>
|
</IfModule>
|
||||||
|
|
||||||
<IfModule mod_ratio.c>
|
<IfModule mod_ratio.c>
|
||||||
@@ -61,6 +64,13 @@ AllowOverwrite on
|
|||||||
|
|
||||||
SQLLog STOR upload
|
SQLLog STOR upload
|
||||||
SQLNamedQuery upload UPDATE "up_count=up_count+1, up_bytes=up_bytes+%b WHERE username='%u'" ftp_users
|
SQLNamedQuery upload UPDATE "up_count=up_count+1, up_bytes=up_bytes+%b WHERE username='%u'" ftp_users
|
||||||
|
|
||||||
|
QuotaLimitTable sql:/get-quota-limit
|
||||||
|
QuotaTallyTable sql:/get-quota-tally/update-quota-tally/insert-quota-tally
|
||||||
|
SQLNamedQuery get-quota-limit SELECT "ftp_users.username AS name, ftp_quotalimits.quota_type, ftp_quotalimits.per_session, ftp_quotalimits.limit_type, panel_customers.diskspace*1024 AS bytes_in_avail, ftp_quotalimits.bytes_out_avail, ftp_quotalimits.bytes_xfer_avail, ftp_quotalimits.files_in_avail, ftp_quotalimits.files_out_avail, ftp_quotalimits.files_xfer_avail FROM ftp_users, ftp_quotalimits, panel_customers WHERE ftp_users.username = '%{0}' AND panel_customers.loginname = SUBSTRING_INDEX('%{0}', 'ftp', 1) AND quota_type ='%{1}'"
|
||||||
|
SQLNamedQuery get-quota-tally SELECT "name, quota_type, bytes_in_used,bytes_out_used, bytes_xfer_used, files_in_used, files_out_used,files_xfer_used FROM ftp_quotatallies WHERE name = '%{0}' AND quota_type = '%{1}'"
|
||||||
|
SQLNamedQuery update-quota-tally UPDATE "bytes_in_used = bytes_in_used + %{0}, bytes_out_used = bytes_out_used + %{1}, bytes_xfer_used = bytes_xfer_used + %{2}, files_in_used = files_in_used + %{3}, files_out_used= files_out_used + %{4}, files_xfer_used = files_xfer_used + %{5} WHERE name= '%{6}' AND quota_type = '%{7}'" ftp_quotatallies
|
||||||
|
SQLNamedQuery insert-quota-tally INSERT "%{0}, %{1}, %{2}, %{3}, %{4},%{5}, %{6}, %{7}" ftp_quotatallies
|
||||||
</IfModule>
|
</IfModule>
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -59,6 +59,18 @@ SQLNamedQuery download UPDATE "down_count=down_count+1, down_bytes=down_bytes+%b
|
|||||||
SQLLog STOR upload
|
SQLLog STOR upload
|
||||||
SQLNamedQuery upload UPDATE "up_count=up_count+1, up_bytes=up_bytes+%b WHERE username='%u'" ftp_users
|
SQLNamedQuery upload UPDATE "up_count=up_count+1, up_bytes=up_bytes+%b WHERE username='%u'" ftp_users
|
||||||
|
|
||||||
|
# Quota settings
|
||||||
|
QuotaEngine on
|
||||||
|
QuotaShowQuotas on
|
||||||
|
QuotaDisplayUnits Mb
|
||||||
|
QuotaLock /var/lock/ftpd.quotatab.lock
|
||||||
|
QuotaLimitTable sql:/get-quota-limit
|
||||||
|
QuotaTallyTable sql:/get-quota-tally/update-quota-tally/insert-quota-tally
|
||||||
|
SQLNamedQuery get-quota-limit SELECT "ftp_users.username AS name, ftp_quotalimits.quota_type, ftp_quotalimits.per_session, ftp_quotalimits.limit_type, panel_customers.diskspace*1024 AS bytes_in_avail, ftp_quotalimits.bytes_out_avail, ftp_quotalimits.bytes_xfer_avail, ftp_quotalimits.files_in_avail, ftp_quotalimits.files_out_avail, ftp_quotalimits.files_xfer_avail FROM ftp_users, ftp_quotalimits, panel_customers WHERE ftp_users.username = '%{0}' AND panel_customers.loginname = SUBSTRING_INDEX('%{0}', 'ftp', 1) AND quota_type ='%{1}'"
|
||||||
|
SQLNamedQuery get-quota-tally SELECT "name, quota_type, bytes_in_used,bytes_out_used, bytes_xfer_used, files_in_used, files_out_used,files_xfer_used FROM ftp_quotatallies WHERE name = '%{0}' AND quota_type = '%{1}'"
|
||||||
|
SQLNamedQuery update-quota-tally UPDATE "bytes_in_used = bytes_in_used + %{0}, bytes_out_used = bytes_out_used + %{1}, bytes_xfer_used = bytes_xfer_used + %{2}, files_in_used = files_in_used + %{3}, files_out_used= files_out_used + %{4}, files_xfer_used = files_xfer_used + %{5} WHERE name= '%{6}' AND quota_type = '%{7}'" ftp_quotatallies
|
||||||
|
SQLNamedQuery insert-quota-tally INSERT "%{0}, %{1}, %{2}, %{3}, %{4},%{5}, %{6}, %{7}" ftp_quotatallies
|
||||||
|
|
||||||
# TLS settings
|
# TLS settings
|
||||||
#<IfModule mod_tls.c>
|
#<IfModule mod_tls.c>
|
||||||
#TLSEngine on
|
#TLSEngine on
|
||||||
|
|||||||
@@ -18,10 +18,10 @@ LoadModule mod_sql.c
|
|||||||
#LoadModule mod_ldap.c
|
#LoadModule mod_ldap.c
|
||||||
LoadModule mod_sql_mysql.c
|
LoadModule mod_sql_mysql.c
|
||||||
#LoadModule mod_sql_postgres.c
|
#LoadModule mod_sql_postgres.c
|
||||||
#LoadModule mod_quotatab.c
|
LoadModule mod_quotatab.c
|
||||||
#LoadModule mod_quotatab_file.c
|
#LoadModule mod_quotatab_file.c
|
||||||
#LoadModule mod_quotatab_ldap.c
|
#LoadModule mod_quotatab_ldap.c
|
||||||
#LoadModule mod_quotatab_sql.c
|
LoadModule mod_quotatab_sql.c
|
||||||
#LoadModule mod_radius.c
|
#LoadModule mod_radius.c
|
||||||
LoadModule mod_wrap.c
|
LoadModule mod_wrap.c
|
||||||
LoadModule mod_rewrite.c
|
LoadModule mod_rewrite.c
|
||||||
|
|||||||
@@ -67,3 +67,14 @@ SQLNamedQuery download UPDATE "down_count=down_count+1, down_bytes=down_bytes+%b
|
|||||||
|
|
||||||
SQLLog STOR upload
|
SQLLog STOR upload
|
||||||
SQLNamedQuery upload UPDATE "up_count=up_count+1, up_bytes=up_bytes+%b WHERE username='%u'" ftp_users
|
SQLNamedQuery upload UPDATE "up_count=up_count+1, up_bytes=up_bytes+%b WHERE username='%u'" ftp_users
|
||||||
|
|
||||||
|
QuotaEngine on
|
||||||
|
QuotaShowQuotas on
|
||||||
|
QuotaDisplayUnits Mb
|
||||||
|
QuotaLock /var/lock/ftpd.quotatab.lock
|
||||||
|
QuotaLimitTable sql:/get-quota-limit
|
||||||
|
QuotaTallyTable sql:/get-quota-tally/update-quota-tally/insert-quota-tally
|
||||||
|
SQLNamedQuery get-quota-limit SELECT "ftp_users.username AS name, ftp_quotalimits.quota_type, ftp_quotalimits.per_session, ftp_quotalimits.limit_type, panel_customers.diskspace*1024 AS bytes_in_avail, ftp_quotalimits.bytes_out_avail, ftp_quotalimits.bytes_xfer_avail, ftp_quotalimits.files_in_avail, ftp_quotalimits.files_out_avail, ftp_quotalimits.files_xfer_avail FROM ftp_users, ftp_quotalimits, panel_customers WHERE ftp_users.username = '%{0}' AND panel_customers.loginname = SUBSTRING_INDEX('%{0}', 'ftp', 1) AND quota_type ='%{1}'"
|
||||||
|
SQLNamedQuery get-quota-tally SELECT "name, quota_type, bytes_in_used,bytes_out_used, bytes_xfer_used, files_in_used, files_out_used,files_xfer_used FROM ftp_quotatallies WHERE name = '%{0}' AND quota_type = '%{1}'"
|
||||||
|
SQLNamedQuery update-quota-tally UPDATE "bytes_in_used = bytes_in_used + %{0}, bytes_out_used = bytes_out_used + %{1}, bytes_xfer_used = bytes_xfer_used + %{2}, files_in_used = files_in_used + %{3}, files_out_used= files_out_used + %{4}, files_xfer_used = files_xfer_used + %{5} WHERE name= '%{6}' AND quota_type = '%{7}'" ftp_quotatallies
|
||||||
|
SQLNamedQuery insert-quota-tally INSERT "%{0}, %{1}, %{2}, %{3}, %{4},%{5}, %{6}, %{7}" ftp_quotatallies
|
||||||
|
|||||||
@@ -18,10 +18,10 @@ LoadModule mod_sql.c
|
|||||||
#LoadModule mod_ldap.c
|
#LoadModule mod_ldap.c
|
||||||
LoadModule mod_sql_mysql.c
|
LoadModule mod_sql_mysql.c
|
||||||
#LoadModule mod_sql_postgres.c
|
#LoadModule mod_sql_postgres.c
|
||||||
#LoadModule mod_quotatab.c
|
LoadModule mod_quotatab.c
|
||||||
#LoadModule mod_quotatab_file.c
|
#LoadModule mod_quotatab_file.c
|
||||||
#LoadModule mod_quotatab_ldap.c
|
#LoadModule mod_quotatab_ldap.c
|
||||||
#LoadModule mod_quotatab_sql.c
|
LoadModule mod_quotatab_sql.c
|
||||||
#LoadModule mod_radius.c
|
#LoadModule mod_radius.c
|
||||||
LoadModule mod_wrap.c
|
LoadModule mod_wrap.c
|
||||||
LoadModule mod_rewrite.c
|
LoadModule mod_rewrite.c
|
||||||
|
|||||||
@@ -62,3 +62,14 @@ SQLNamedQuery download UPDATE "down_count=down_count+1, down_bytes=down_bytes+%b
|
|||||||
|
|
||||||
SQLLog STOR upload
|
SQLLog STOR upload
|
||||||
SQLNamedQuery upload UPDATE "up_count=up_count+1, up_bytes=up_bytes+%b WHERE username='%u'" ftp_users
|
SQLNamedQuery upload UPDATE "up_count=up_count+1, up_bytes=up_bytes+%b WHERE username='%u'" ftp_users
|
||||||
|
|
||||||
|
QuotaEngine on
|
||||||
|
QuotaShowQuotas on
|
||||||
|
QuotaDisplayUnits Mb
|
||||||
|
QuotaLock /var/lock/ftpd.quotatab.lock
|
||||||
|
QuotaLimitTable sql:/get-quota-limit
|
||||||
|
QuotaTallyTable sql:/get-quota-tally/update-quota-tally/insert-quota-tally
|
||||||
|
SQLNamedQuery get-quota-limit SELECT "ftp_users.username AS name, ftp_quotalimits.quota_type, ftp_quotalimits.per_session, ftp_quotalimits.limit_type, panel_customers.diskspace*1024 AS bytes_in_avail, ftp_quotalimits.bytes_out_avail, ftp_quotalimits.bytes_xfer_avail, ftp_quotalimits.files_in_avail, ftp_quotalimits.files_out_avail, ftp_quotalimits.files_xfer_avail FROM ftp_users, ftp_quotalimits, panel_customers WHERE ftp_users.username = '%{0}' AND panel_customers.loginname = SUBSTRING_INDEX('%{0}', 'ftp', 1) AND quota_type ='%{1}'"
|
||||||
|
SQLNamedQuery get-quota-tally SELECT "name, quota_type, bytes_in_used,bytes_out_used, bytes_xfer_used, files_in_used, files_out_used,files_xfer_used FROM ftp_quotatallies WHERE name = '%{0}' AND quota_type = '%{1}'"
|
||||||
|
SQLNamedQuery update-quota-tally UPDATE "bytes_in_used = bytes_in_used + %{0}, bytes_out_used = bytes_out_used + %{1}, bytes_xfer_used = bytes_xfer_used + %{2}, files_in_used = files_in_used + %{3}, files_out_used= files_out_used + %{4}, files_xfer_used = files_xfer_used + %{5} WHERE name= '%{6}' AND quota_type = '%{7}'" ftp_quotatallies
|
||||||
|
SQLNamedQuery insert-quota-tally INSERT "%{0}, %{1}, %{2}, %{3}, %{4},%{5}, %{6}, %{7}" ftp_quotatallies
|
||||||
|
|||||||
@@ -8,3 +8,4 @@ MYSQLGetPW SELECT password FROM ftp_users WHERE username="\L" AND login_ena
|
|||||||
MYSQLGetUID SELECT uid FROM ftp_users WHERE username="\L" AND login_enabled="y"
|
MYSQLGetUID SELECT uid FROM ftp_users WHERE username="\L" AND login_enabled="y"
|
||||||
MYSQLGetGID SELECT gid FROM ftp_users WHERE username="\L" AND login_enabled="y"
|
MYSQLGetGID SELECT gid FROM ftp_users WHERE username="\L" AND login_enabled="y"
|
||||||
MYSQLGetDir SELECT homedir FROM ftp_users WHERE username="\L" AND login_enabled="y"
|
MYSQLGetDir SELECT homedir FROM ftp_users WHERE username="\L" AND login_enabled="y"
|
||||||
|
MySQLGetQTASZ SELECT panel_customers.diskspace/1024 AS QuotaSize FROM panel_customers, ftp_users WHERE username = "\L" AND panel_customers.loginname = SUBSTRING_INDEX('\L', 'ftp', 1)
|
||||||
|
|||||||
Reference in New Issue
Block a user