From fdff34093d479f1a9cb98107b68eb9137278b181 Mon Sep 17 00:00:00 2001
From: alecpl <alec@alec.pl>
Date: Tue, 03 Jan 2012 04:56:19 -0500
Subject: [PATCH] - Move some checks into login() method

---
 program/include/rcmail.php |   64 ++++++++++++--------------------
 1 files changed, 24 insertions(+), 40 deletions(-)

diff --git a/program/include/rcmail.php b/program/include/rcmail.php
index 3808c60..fbf691a 100644
--- a/program/include/rcmail.php
+++ b/program/include/rcmail.php
@@ -159,8 +159,6 @@
   /**
    * Initial startup function
    * to register session, create database and imap connections
-   *
-   * @todo Remove global vars $DB, $USER
    */
   private function startup()
   {
@@ -172,7 +170,10 @@
     }
 
     // connect to database
-    $GLOBALS['DB'] = $this->get_dbh();
+    $this->get_dbh();
+
+    // set global object for backward compatibility
+    $GLOBALS['DB'] = $this->db;
 
     // start session
     $this->session_init();
@@ -240,6 +241,8 @@
   {
     if (is_object($user)) {
       $this->user = $user;
+
+      // set global object for backward compatibility
       $GLOBALS['USER'] = $this->user;
 
       // overwrite config with user preferences
@@ -320,8 +323,8 @@
 
     return $this->db;
   }
-  
-  
+
+
   /**
    * Get global handle for memcache access
    *
@@ -584,7 +587,6 @@
    * Create global IMAP object and connect to server
    *
    * @param boolean True if connection should be established
-   * @todo Remove global $IMAP
    */
   public function imap_init($connect = false)
   {
@@ -596,23 +598,27 @@
     $this->imap->skip_deleted = $this->config->get('skip_deleted');
 
     // enable caching of imap data
-    $imap_cache = $this->config->get('imap_cache');
+    $imap_cache     = $this->config->get('imap_cache');
     $messages_cache = $this->config->get('messages_cache');
     // for backward compatybility
     if ($imap_cache === null && $messages_cache === null && $this->config->get('enable_caching')) {
         $imap_cache     = 'db';
         $messages_cache = true;
     }
+
     if ($imap_cache)
         $this->imap->set_caching($imap_cache);
     if ($messages_cache)
         $this->imap->set_messages_caching(true);
 
     // set pagesize from config
-    $this->imap->set_pagesize($this->config->get('pagesize', 50));
+    $pagesize = $this->config->get('mail_pagesize');
+    if (!$pagesize) {
+        $pagesize = $this->config->get('pagesize', 50);
+    }
+    $this->imap->set_pagesize($pagesize);
 
-    // Setting root and delimiter before establishing the connection
-    // can save time detecting them using NAMESPACE and LIST
+    // set connection options
     $options = array(
       'auth_type'   => $this->config->get('imap_auth_type', 'check'),
       'auth_cid'    => $this->config->get('imap_auth_cid'),
@@ -744,11 +750,15 @@
    * @param string IMAP user name
    * @param string IMAP password
    * @param string IMAP host
+   *
    * @return boolean True on success, False on failure
    */
   function login($username, $pass, $host=NULL)
   {
-    $user = NULL;
+    if (empty($username)) {
+      return false;
+    }
+
     $config = $this->config->all();
 
     if (!$host)
@@ -988,7 +998,6 @@
     if (is_string($attrib))
       $attrib = array('name' => $attrib);
 
-    $nr = is_numeric($attrib['nr']) ? $attrib['nr'] : 1;
     $name = $attrib['name'] ? $attrib['name'] : '';
 
     // attrib contain text values: use them from now
@@ -996,35 +1005,11 @@
         $this->texts[$name] = $setval;
 
     // check for text with domain
-    if ($domain && ($text_item = $this->texts[$domain.'.'.$name]))
+    if ($domain && ($text = $this->texts[$domain.'.'.$name]))
       ;
     // text does not exist
-    else if (!($text_item = $this->texts[$name])) {
+    else if (!($text = $this->texts[$name])) {
       return "[$name]";
-    }
-
-    // make text item array
-    $a_text_item = is_array($text_item) ? $text_item : array('single' => $text_item);
-
-    // decide which text to use
-    if ($nr == 1) {
-      $text = $a_text_item['single'];
-    }
-    else if ($nr > 0) {
-      $text = $a_text_item['multiple'];
-    }
-    else if ($nr == 0) {
-      if ($a_text_item['none'])
-        $text = $a_text_item['none'];
-      else if ($a_text_item['single'])
-        $text = $a_text_item['single'];
-      else if ($a_text_item['multiple'])
-        $text = $a_text_item['multiple'];
-    }
-
-    // default text is single
-    if ($text == '') {
-      $text = $a_text_item['single'];
     }
 
     // replace vars in text
@@ -1041,7 +1026,7 @@
     else if ($attrib['lowercase'])
       return mb_strtolower($text);
 
-    return $text;
+    return strtr($text, array('\n' => "\n"));
   }
 
 
@@ -1213,7 +1198,6 @@
       $this->smtp->disconnect();
 
     foreach ($this->address_books as $book) {
-console('---------------');
       if (is_object($book) && is_a($book, 'rcube_addressbook'))
         $book->close();
     }

--
Gitblit v1.9.1