[Svn] r2537 - in trunk/roundcubemail: . config program/include

trac at roundcube.net trac at roundcube.net
Tue May 26 09:01:55 CEST 2009


Author: alec
Date: 2009-05-26 02:01:55 -0500 (Tue, 26 May 2009)
New Revision: 2537

Modified:
   trunk/roundcubemail/CHANGELOG
   trunk/roundcubemail/config/main.inc.php.dist
   trunk/roundcubemail/program/include/rcube_user.php
Log:
- Support initial identity name from virtuser_query (#1484003)


Modified: trunk/roundcubemail/CHANGELOG
===================================================================
--- trunk/roundcubemail/CHANGELOG	2009-05-26 06:16:11 UTC (rev 2536)
+++ trunk/roundcubemail/CHANGELOG	2009-05-26 07:01:55 UTC (rev 2537)
@@ -1,6 +1,7 @@
 CHANGELOG RoundCube Webmail
 ===========================
 
+- Support initial identity name from virtuser_query (#1484003)
 - Added message menu, removed Print and Source buttons
 - Added possibility to save message as .eml file (#1485861)
 - Added 1 minute interval in autosave options (#1485854)

Modified: trunk/roundcubemail/config/main.inc.php.dist
===================================================================
--- trunk/roundcubemail/config/main.inc.php.dist	2009-05-26 06:16:11 UTC (rev 2536)
+++ trunk/roundcubemail/config/main.inc.php.dist	2009-05-26 07:01:55 UTC (rev 2537)
@@ -87,7 +87,8 @@
 
 // Query to resolve user names and e-mail addresses from the database
 // %u will be replaced with the current username for login.
-// The query should select the user's e-mail address as first col
+// The query should select the user's e-mail address as first column
+// and optional identity name as second column
 $rcmail_config['virtuser_query'] = '';
 
 // use this host for sending mails.

Modified: trunk/roundcubemail/program/include/rcube_user.php
===================================================================
--- trunk/roundcubemail/program/include/rcube_user.php	2009-05-26 06:16:11 UTC (rev 2536)
+++ trunk/roundcubemail/program/include/rcube_user.php	2009-05-26 07:01:55 UTC (rev 2537)
@@ -366,8 +366,8 @@
 
     // try to resolve user in virtuser table and file
     if ($user_email != '' && !strpos($user, '@')) {
-      if ($email_list = self::user2email($user, false))
-        $user_email = $email_list[0];
+      if ($email_list = self::user2email($user, false, true))
+        $user_email = is_array($email_list[0]) ? $email_list[0][0] : $email_list[0];
     }
 
     $dbh->query(
@@ -399,11 +399,20 @@
 
       // create new identities records
       $standard = 1;
-      foreach ($email_list as $email) {
+      foreach ($email_list as $row) {
+
+        if (is_array($row)) {
+          $email = $row[0];
+          $name = $row[1] ? $row[1] : $user_name;
+        } else {
+	  $email = $row;
+	  $name = $user_name;
+	}
+	
         $plugin = $rcmail->plugins->exec_hook('create_identity', array('record' => array(
           'login' => true,
           'user_id' => $user_id,
-          'name' => strip_newlines($user_name),
+          'name' => strip_newlines($name),
           'email' => $email,
           'standard' => $standard)));
           
@@ -461,9 +470,10 @@
    *
    * @param string User name
    * @param boolean If true returns first found entry
+   * @param boolean If true returns email as array (email and name for identity)
    * @return mixed Resolved e-mail address string or array of strings
    */
-  static function user2email($user, $first=true)
+  static function user2email($user, $first=true, $extended=false)
   {
     $result = array();
     $rcmail = rcmail::get_instance();
@@ -474,7 +484,7 @@
       $sql_result = $dbh->query(preg_replace('/%u/', $dbh->escapeSimple($user), $virtuser_query));
       while ($sql_arr = $dbh->fetch_array($sql_result))
         if (strpos($sql_arr[0], '@')) {
-          $result[] = $sql_arr[0];
+          $result[] = ($extended && count($sql_arr) > 1) ? $sql_arr : $sql_arr[0];
           if ($first)
             return $result[0];
         }

_______________________________________________
http://lists.roundcube.net/mailman/listinfo/svn



More information about the Svn mailing list