From 651da7934ed4c13e2cbc2e4a82caf2ebaba87373 Mon Sep 17 00:00:00 2001 From: alecpl <alec@alec.pl> Date: Sat, 14 Apr 2012 02:28:10 -0400 Subject: [PATCH] - Fix folder collapsing/expanding broken with framework merge (#1488430) --- installer/test.php | 72 +++++++++++++++++++++++------------- 1 files changed, 46 insertions(+), 26 deletions(-) diff --git a/installer/test.php b/installer/test.php index e75ef27..2dd3305 100644 --- a/installer/test.php +++ b/installer/test.php @@ -88,7 +88,7 @@ ?> <h3>Check if directories are writable</h3> -<p>RoundCube may need to write/save files into these directories</p> +<p>Roundcube may need to write/save files into these directories</p> <?php if ($RCI->configured) { @@ -156,6 +156,14 @@ } } +else if ($db_working && $_POST['updatedb']) { + if (!($success = $RCI->update_db($DB, $_POST['version']))) { + $updatefile = INSTALL_PATH . 'SQL/' . (isset($RCI->db_map[$DB->db_provider]) ? $RCI->db_map[$DB->db_provider] : $DB->db_provider) . '.update.sql'; + echo '<p class="warning">Please manually execute the SQL statements from '.$updatefile.' on your database.<br/>'; + echo 'See comments in the file and execute queries below the comment with the currently installed version number.</p>'; + } +} + // test database if ($db_working) { $db_read = $DB->query("SELECT count(*) FROM {$RCI->config['db_table_users']}"); @@ -164,11 +172,13 @@ echo '<p><input type="submit" name="initdb" value="Initialize database" /></p>'; $db_working = false; } - else if ($RCI->db_schema_check($DB, $update = !empty($_POST['updatedb']))) { + else if ($err = $RCI->db_schema_check($DB, $update = !empty($_POST['updatedb']))) { $RCI->fail('DB Schema', "Database schema differs"); - $updatefile = INSTALL_PATH . 'SQL/' . $DB->db_provider . '.update.sql'; - echo '<p class="warning">Please manually execute the SQL statements from '.$updatefile.' on your database.<br/>'; - echo 'See comments in the file and execute queries that are superscribed with the currently installed version number.</p>'; + echo '<ul style="margin:0"><li>' . join("</li>\n<li>", $err) . "</li></ul>"; + $select = $RCI->versions_select(array('name' => 'version')); + echo '<p class="suggestion">You should run the update queries to get the schmea fixed.<br/><br/>Version to update from: ' . $select->show() . ' <input type="submit" name="updatedb" value="Update" /></p>'; +// echo '<p class="warning">Please manually execute the SQL statements from '.$updatefile.' on your database.<br/>'; +// echo 'See comments in the file and execute queries that are superscribed with the currently installed version number.</p>'; $db_working = false; } else { @@ -214,7 +224,7 @@ <h3>Test SMTP config</h3> <p> -Server: <?php echo $RCI->getprop('smtp_server', 'PHP mail()'); ?><br /> +Server: <?php echo rcube_parse_host($RCI->getprop('smtp_server', 'PHP mail()')); ?><br /> Port: <?php echo $RCI->getprop('smtp_port'); ?><br /> <?php @@ -248,18 +258,21 @@ echo '<p>Trying to send email...<br />'; - if (preg_match('/^' . $RCI->email_pattern . '$/i', trim($_POST['_from'])) && - preg_match('/^' . $RCI->email_pattern . '$/i', trim($_POST['_to']))) { + $from = idn_to_ascii(trim($_POST['_from'])); + $to = idn_to_ascii(trim($_POST['_to'])); + if (preg_match('/^' . $RCI->email_pattern . '$/i', $from) && + preg_match('/^' . $RCI->email_pattern . '$/i', $to) + ) { $headers = array( - 'From' => trim($_POST['_from']), - 'To' => trim($_POST['_to']), - 'Subject' => 'Test message from RoundCube', + 'From' => $from, + 'To' => $to, + 'Subject' => 'Test message from Roundcube', ); - $body = 'This is a test to confirm that RoundCube can send email.'; + $body = 'This is a test to confirm that Roundcube can send email.'; $smtp_response = array(); - + // send mail using configured SMTP server if ($RCI->getprop('smtp_server')) { $CONFIG = $RCI->config; @@ -275,7 +288,8 @@ $send_headers = $mail_object->headers($headers); $SMTP = new rcube_smtp(); - $SMTP->connect(); + $SMTP->connect(rcube_parse_host($RCI->getprop('smtp_server')), + $RCI->getprop('smtp_port'), $CONFIG['smtp_user'], $CONFIG['smtp_pass']); $status = $SMTP->send_mail($headers['From'], $headers['To'], ($foo = $mail_object->txtHeaders($send_headers)), $body); @@ -368,22 +382,27 @@ <?php if (isset($_POST['imaptest']) && !empty($_POST['_host']) && !empty($_POST['_user'])) { - + echo '<p>Connecting to ' . Q($_POST['_host']) . '...<br />'; - - $a_host = parse_url($_POST['_host']); + + $imap_host = trim($_POST['_host']); + $imap_port = $RCI->getprop('default_port'); + $a_host = parse_url($imap_host); + if ($a_host['host']) { $imap_host = $a_host['host']; - $imap_ssl = (isset($a_host['scheme']) && in_array($a_host['scheme'], array('ssl','imaps','tls'))) ? $a_host['scheme'] : null; - $imap_port = isset($a_host['port']) ? $a_host['port'] : ($imap_ssl ? 993 : $CONFIG['default_port']); + $imap_ssl = (isset($a_host['scheme']) && in_array($a_host['scheme'], array('ssl','imaps','tls'))) ? $a_host['scheme'] : null; + if (isset($a_host['port'])) + $imap_port = $a_host['port']; + else if ($imap_ssl && $imap_ssl != 'tls' && (!$imap_port || $imap_port == 143)) + $imap_port = 993; } - else { - $imap_host = trim($_POST['_host']); - $imap_port = $RCI->getprop('default_port'); - } - + + $imap_host = idn_to_ascii($imap_host); + $imap_user = idn_to_ascii($_POST['_user']); + $imap = new rcube_imap(null); - if ($imap->connect($imap_host, $_POST['_user'], $_POST['_pass'], $imap_port, $imap_ssl)) { + if ($imap->connect($imap_host, $imap_user, $_POST['_pass'], $imap_port, $imap_ssl)) { $RCI->pass('IMAP connect', 'SORT capability: ' . ($imap->get_capability('SORT') ? 'yes' : 'no')); $imap->close(); } @@ -403,7 +422,8 @@ <p class="warning"> After completing the installation and the final tests please <b>remove</b> the whole -installer folder from the document root of the webserver.<br /> +installer folder from the document root of the webserver or make sure that +<tt>enable_installer</tt> option in config/main.inc.php is disabled.<br /> <br /> These files may expose sensitive configuration data like server passwords and encryption keys -- Gitblit v1.9.1