alecpl
2009-05-26 1301e981103696df7745fc0015762e25aee854db
- Support initial identity name from virtuser_query (#1484003)


3 files modified
26 ■■■■ changed files
CHANGELOG 1 ●●●● patch | view | raw | blame | history
config/main.inc.php.dist 3 ●●●● patch | view | raw | blame | history
program/include/rcube_user.php 22 ●●●● patch | view | raw | blame | history
CHANGELOG
@@ -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)
config/main.inc.php.dist
@@ -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.
program/include/rcube_user.php
@@ -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];
        }