From 62c791f60923e12ef157f6de7018d0f7ada47911 Mon Sep 17 00:00:00 2001 From: thomascube Date: Sat, 18 Sep 2010 16:32:00 +0000 Subject: Prevent from saving a non-existing skin path in user prefs --- CHANGELOG | 1 + program/include/rcube_template.php | 12 ++++++++++-- program/steps/mail/show.inc | 2 +- program/steps/settings/save_prefs.inc | 5 +++-- 4 files changed, 15 insertions(+), 5 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 1ece7d52d..51033a281 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,6 +1,7 @@ CHANGELOG RoundCube Webmail =========================== +- Prevent from saving a non-existing skin path in user prefs (#1486936) - Improve handling of single-part messages with bogus BODYSTRUCTURE (#1486898) - Fix path to SQL files when using pgsql/mysqli/sqlsrv drivers (#1486902) - Fix upgrade script for SQLite (#1486903) diff --git a/program/include/rcube_template.php b/program/include/rcube_template.php index f301b3618..4c59c4197 100755 --- a/program/include/rcube_template.php +++ b/program/include/rcube_template.php @@ -138,13 +138,21 @@ class rcube_template extends rcube_html_page */ public function set_skin($skin) { - if (!empty($skin) && is_dir('skins/'.$skin) && is_readable('skins/'.$skin)) + $valid = false; + + if (!empty($skin) && is_dir('skins/'.$skin) && is_readable('skins/'.$skin)) { $skin_path = 'skins/'.$skin; - else + $valid = true; + } + else { $skin_path = $this->config['skin_path'] ? $this->config['skin_path'] : 'skins/default'; + $valid = !$skin; + } $this->app->config->set('skin_path', $skin_path); $this->config['skin_path'] = $skin_path; + + return $valid; } /** diff --git a/program/steps/mail/show.inc b/program/steps/mail/show.inc index 69b30eb4d..a9dbced90 100644 --- a/program/steps/mail/show.inc +++ b/program/steps/mail/show.inc @@ -29,7 +29,7 @@ if ($uid = get_input_value('_uid', RCUBE_INPUT_GET)) { if (empty($MESSAGE->headers)) { rcmail_message_error($uid); } - +sleep(5); send_nocacheing_headers(); $mbox_name = $IMAP->get_mailbox_name(); diff --git a/program/steps/settings/save_prefs.inc b/program/steps/settings/save_prefs.inc index 3f13c0af4..a8ff87869 100644 --- a/program/steps/settings/save_prefs.inc +++ b/program/steps/settings/save_prefs.inc @@ -116,8 +116,9 @@ switch ($CURR_SECTION) $OUTPUT->command('reload', 500); } - // switch skin - $OUTPUT->set_skin($a_user_prefs['skin']); + // switch skin (if valid, otherwise unset the pref and fall back to default) + if (!$OUTPUT->set_skin($a_user_prefs['skin'])) + unset($a_user_prefs['skin']); // force min size if ($a_user_prefs['pagesize'] < 1) -- cgit v1.2.3