Skip to content

Commit

Permalink
Added: php5-imap package (required by i-MSCP frontEnd)
Browse files Browse the repository at this point in the history
Fixed: odd/even behavior (datatables)
Rewritten: Mail interface
Removed: mail_quota action script
Small fixes + i18n
  • Loading branch information
nuxwin committed Sep 24, 2013
1 parent bc7d039 commit 72c8ce1
Show file tree
Hide file tree
Showing 42 changed files with 1,316 additions and 1,992 deletions.
5 changes: 4 additions & 1 deletion CHANGELOG
Expand Up @@ -7,6 +7,7 @@ Git Master
CONFIG:
- Added: Packages file for Debian Jessie (testing)
- Added: SPF Resource Record Type in bind template
- Added: php5-imap package (required by i-MSCP frontEnd)
- Changed: php5-mysql package to php5-mysqlnd (native driver) when available
- Removed: php5-adodb package
- Updated: Apache templates to support 2.4.x branch
Expand Down Expand Up @@ -48,9 +49,11 @@ GUI:
- Fixed: Unable to delete plugin in some contexts
- Fixed: Show DNS record data as tooltip when their length is too big
- Fixed: Wrong placeholders in admin/imscp_debugger.php
- Readded: idna_convert class (more flexible because can operate on arbitrary strings)
- Removed: IE6 support
- Removed: mail_quota action script
- Removed: Tool links from login page
- Readded: idna_convert class (more flexible because can operate on arbitrary strings)
- Rewritten: Mail interface
- Updated: Assets are now reachable through the /themes/<theme>/assets path
- Updated: Plugin API

Expand Down
2 changes: 1 addition & 1 deletion configs/debian/database/database.sql
Expand Up @@ -82,7 +82,7 @@ INSERT IGNORE INTO `config` (`name`, `value`) VALUES
('PREVENT_EXTERNAL_LOGIN_ADMIN', '1'),
('PREVENT_EXTERNAL_LOGIN_RESELLER', '1'),
('PREVENT_EXTERNAL_LOGIN_CLIENT', '1'),
('DATABASE_REVISION', '162'),
('DATABASE_REVISION', '166'),
('PHPINI_ALLOW_URL_FOPEN', 'off'),
('PHPINI_DISPLAY_ERRORS', 'off'),
('PHPINI_UPLOAD_MAX_FILESIZE', '10'),
Expand Down
1 change: 1 addition & 0 deletions docs/Debian/packages-jessie.xml
Expand Up @@ -80,6 +80,7 @@
<package>php-pear</package>
<package>php5-gd</package>
<package>php-gettext</package>
<package>php5-imap</package>
<package>php5-intl</package>
<package>php5-mcrypt</package>
<package>php5-mysqlnd</package>
Expand Down
1 change: 1 addition & 0 deletions docs/Debian/packages-squeeze.xml
Expand Up @@ -132,6 +132,7 @@
<package>php-pear</package>
<package>php5-gd</package>
<package>php-gettext</package>
<package>php5-imap</package>
<package>php5-intl</package>
<package>php5-mcrypt</package>
<package>php5-mysql</package>
Expand Down
1 change: 1 addition & 0 deletions docs/Debian/packages-wheezy.xml
Expand Up @@ -107,6 +107,7 @@
<package>php-pear</package>
<package>php5-gd</package>
<package>php-gettext</package>
<package>php5-imap</package>
<package>php5-intl</package>
<package>php5-mcrypt</package>
<package>php5-mysql</package>
Expand Down
1 change: 1 addition & 0 deletions docs/Ubuntu/packages-lucid.xml
Expand Up @@ -114,6 +114,7 @@
<package>php-pear</package>
<package>php5-gd</package>
<package>php-gettext</package>
<package>php5-imap</package>
<package>php5-intl</package>
<package>php5-mcrypt</package>
<package>php5-mysql</package>
Expand Down
1 change: 1 addition & 0 deletions docs/Ubuntu/packages-precise.xml
Expand Up @@ -108,6 +108,7 @@
<package>php-pear</package>
<package>php5-gd</package>
<package>php-gettext</package>
<package>php5-imap</package>
<package>php5-intl</package>
<package>php5-mcrypt</package>
<package>php5-mysqlnd</package>
Expand Down
1 change: 1 addition & 0 deletions docs/Ubuntu/packages-quantal.xml
Expand Up @@ -109,6 +109,7 @@
<package>php5</package>
<package>php5-gd</package>
<package>php-gettext</package>
<package>php5-imap</package>
<package>php5-intl</package>
<package>php5-mcrypt</package>
<package>php5-mysqlnd</package>
Expand Down
1 change: 1 addition & 0 deletions docs/Ubuntu/packages-raring.xml
Expand Up @@ -109,6 +109,7 @@
<package>php5</package>
<package>php5-gd</package>
<package>php-gettext</package>
<package>php5-imap</package>
<package>php5-intl</package>
<package>php5-mcrypt</package>
<package>php5-mysqlnd</package>
Expand Down
2 changes: 1 addition & 1 deletion engine/setup/imscp-setup-methods.pl
Expand Up @@ -1111,7 +1111,7 @@ sub setupAskDomainBackup
- None (no backup)
",
['yes', 'no'],
$backupDomains ne 'yes' ? 'no' : 'yes'
$backupDomains ne 'no' ? 'yes' : 'no'
);
}

Expand Down
13 changes: 6 additions & 7 deletions gui/library/calc-functions.php
Expand Up @@ -198,7 +198,6 @@ function mebibyteHuman($value, $unit = null)
*/
function translate_limit_value($value, $autosize = false, $to = null)
{

$trEnabled = '<span style="color:green">' . tr('Enabled') . '</span>';
$trDisabled = '<span style="color:red">' . tr('Disabled') . '</span>';

Expand All @@ -213,12 +212,12 @@ function translate_limit_value($value, $autosize = false, $to = null)
case '_no_':
case 'no':
return $trDisabled;
case '_full_':
return tr('Domain and SQL databases');
case '_dmn_':
return tr('Web files only');
case '_sql_':
return tr('SQL databases only');
case 'full':
return '<span style="color:green">' . tr('Domain and SQL databases') . '</span>';
case 'dmn':
return '<span style="color:green">' . tr('Web files only') . '</span>';
case 'sql':
return '<span style="color:green">' . tr('SQL databases only') . '</span>';
default:
return (!$autosize) ? $value : mebibyteHuman($value, $to);
}
Expand Down
2 changes: 1 addition & 1 deletion gui/library/iMSCP/Initializer.php
Expand Up @@ -316,7 +316,7 @@ protected function _initializeDatabase()

$connection = iMSCP_Database::connect(
$this->_config->DATABASE_USER,
decrypt_db_password($this->_config->DATABASE_PASSWORD),
decryptBlowfishCbcPassword($this->_config->DATABASE_PASSWORD),
$this->_config->DATABASE_TYPE,
$this->_config->DATABASE_HOST,
$this->_config->DATABASE_NAME
Expand Down
113 changes: 64 additions & 49 deletions gui/library/iMSCP/Update/Database.php
Expand Up @@ -668,7 +668,7 @@ protected function _databaseUpdate_53()
UPDATE
`mail_users`
SET
`mail_pass`= " . $db->quote(decrypt_db_password($data['mail_pass'])) . ", `status` = '$status'
`mail_pass`= " . $db->quote(decryptBlowfishCbcPassword($data['mail_pass'])) . ", `status` = '$status'
WHERE
`mail_id` = '{$data['mail_id']}'
";
Expand All @@ -685,7 +685,7 @@ protected function _databaseUpdate_53()
UPDATE
`sql_user`
SET
`sqlu_pass` = " . $db->quote(decrypt_db_password($data['sqlu_pass'])) . "
`sqlu_pass` = " . $db->quote(decryptBlowfishCbcPassword($data['sqlu_pass'])) . "
WHERE
`sqlu_id` = '{$data['sqlu_id']}'
";
Expand All @@ -702,7 +702,7 @@ protected function _databaseUpdate_53()
UPDATE
`ftp_users`
SET
`rawpasswd` = " . $db->quote(decrypt_db_password($data['passwd'])) . "
`rawpasswd` = " . $db->quote(decryptBlowfishCbcPassword($data['passwd'])) . "
WHERE
`userid` = '{$data['userid']}'
";
Expand Down Expand Up @@ -916,16 +916,6 @@ protected function _databaseUpdate_73()
";
}

/**
* #58: Increases mail quota value from 10 Mio to 100 Mio
*
* @return string SQL statement to be executed
*/
protected function _databaseUpdate_75()
{
return "UPDATE `mail_users` SET `quota` = '104857600' WHERE `quota` = '10485760'";
}

/**
* Adds unique index on user_gui_props.user_id column
*
Expand Down Expand Up @@ -2435,7 +2425,7 @@ protected function _databaseUpdate_155()
}

/**
* Sync mail quota values
* Synchronize mail quota values
*
* @return array Stack of SQL statements to be executed
*/
Expand All @@ -2451,24 +2441,20 @@ protected function _databaseUpdate_156()

if (sizeof($props) == 24) {
list(, , , , , , , , , $diskspace) = $props;
$diskspace = $diskspace * 1048576;
$diskspace = $diskspace * 1048576; // MiB to bytes

$sqlUpd[] = "
UPDATE
`hosting_plans`
SET
`props` = CONCAT(`props`,';$diskspace')
`props` = CONCAT(`props`, ';$diskspace')
WHERE
`id` = {$data['id']}
";
}
}
}

if (!empty($sqlUpd)) {
$sqlUpd[] = "UPDATE `domain` SET `mail_quota` = (`domain_disk_limit` * 1048576)";
}

return $sqlUpd;
}

Expand Down Expand Up @@ -2581,7 +2567,7 @@ protected function _databaseUpdate_159()
*
* @return string
*/
protected function _databaseUpdate_160()
protected function _databaseUpdate_163()
{
return "
UPDATE
Expand All @@ -2594,45 +2580,74 @@ protected function _databaseUpdate_160()
}

/**
* Sync mail_users.quota field with domain.mail_quota field
* Remove possible orphan entries in quota_dovecot table
*
* @return array SQL statements to be e executed
* @return string SQL statement to be executed
*/
protected function _databaseUpdate_161()
protected function _databaseUpdate_164()
{
$sqlUpd = array();
return "DELETE FROM `quota_dovecot` WHERE `username` NOT IN(SELECT `mail_addr` FROM `mail_users`)";
}

$stmt = execute_query(
"
SELECT
`domain_id`, `quota`, `mail_quota`
FROM
`mail_users`
INNER JOIN
`domain` USING(`domain_id`)
/**
* Update domain.mail_quota and domain.domain_disk_limit fields according the number of existent mailboxes for which
* a quota is appliable
*
* @return array SQL statements to be executed
*/
protected function _databaseUpdate_165()
{
return array(
'
UPDATE
`domain` AS `t1`
JOIN (
SELECT
COUNT(`mail_id`) AS `nb_mailboxes`, `domain_id`
FROM
`mail_users`
WHERE
`quota` IS NOT NULL
) AS `t2` USING(`domain_id`)
SET
`t1`.`domain_disk_limit` = `t2`.`nb_mailboxes`
WHERE
`quota` IS NOT NULL
"
`t1`.`domain_disk_limit` <> 0
AND
`t1`.`domain_disk_limit` < `t2`.`nb_mailboxes`
',
'
UPDATE
`domain` AS `t1`
JOIN (
SELECT
COUNT(`mail_id`) AS `nb_mailboxes`, `domain_id`
FROM
`mail_users`
WHERE
`quota` IS NOT NULL
) AS `t2` USING(`domain_id`)
SET
`t1`.`mail_quota` = `t2`.`nb_mailboxes`
WHERE
`t1`.`mail_quota` <> 0
AND
`t1`.`mail_quota` < `t2`.`nb_mailboxes`
'
);

if ($stmt->rowCount()) {
while ($data = $stmt->fetchRow(PDO::FETCH_ASSOC)) {
if ($data['mail_quota'] != '0' && $data['quota'] > $data['mail_quota']) {
$sqlUpd[] = "UPDATE `mail_users` SET `quota` = {$data['mail_quota']}";
}
}
}

return $sqlUpd;
}

/**
* Remove possible orphan entries in quota_dovecot table
* Synchronize mailboxes quota
*
* @return string SQL statement to be executed
* @return void
*/
protected function _databaseUpdate_162()
protected function _databaseUpdate_166()
{
return "DELETE FROM `quota_dovecot` WHERE `username` NOT IN(SELECT `mail_addr` FROM `mail_users`)";
$stmt = exec_query('SELECT `domain_id`, `mail_quota` FROM `domain`');

while($data = $stmt->fetchRow(PDO::FETCH_ASSOC)) {
sync_mailboxes_quota($data['domain_id'], $data['mail_quota']);
}
}
}
2 changes: 1 addition & 1 deletion gui/library/input-checks.php
Expand Up @@ -121,7 +121,7 @@ function clean_input($input, $htmlencode = false)
}

if ($htmlencode) {
return htmlentities($input, ENT_QUOTES, 'UTF-8');
return htmlentities($input, ENT_QUOTES, 'UTF-8', false);
} else {
return $input;
}
Expand Down

0 comments on commit 72c8ce1

Please sign in to comment.