alecpl
2010-04-23 2eb7943f2aeaec8efc74b16b7bedb56da9913abf
program/include/rcube_user.php
@@ -111,19 +111,22 @@
      if (!isset($old_prefs[$key]) && ($value == $config->get($key)))
        unset($save_prefs[$key]);
    }
    $save_prefs = serialize($save_prefs);
    $this->db->query(
      "UPDATE ".get_table_name('users')."
       SET    preferences=?,
              language=?
       WHERE  user_id=?",
      serialize($save_prefs),
      $save_prefs,
      $_SESSION['language'],
      $this->ID);
    $this->language = $_SESSION['language'];
    if ($this->db->affected_rows()) {
      $config->set_user_prefs($a_user_prefs);
      $this->data['preferences'] = $save_prefs;
      return true;
    }
@@ -191,7 +194,7 @@
    $query_params[] = $this->ID;
    $sql = "UPDATE ".get_table_name('identities')."
       SET ".join(', ', $query_cols)."
       SET    changed=".$this->db->now().", ".join(', ', $query_cols)."
       WHERE  identity_id=?
       AND    user_id=?
       AND    del<>1";
@@ -226,8 +229,8 @@
    $insert_values[] = $this->ID;
    $sql = "INSERT INTO ".get_table_name('identities')."
        (".join(', ', $insert_cols).")
       VALUES (".join(', ', array_pad(array(), sizeof($insert_values), '?')).")";
        (changed, ".join(', ', $insert_cols).")
       VALUES (".$this->db->now().", ".join(', ', array_pad(array(), sizeof($insert_values), '?')).")";
    call_user_func_array(array($this->db, 'query'),
                        array_merge(array($sql), $insert_values));
@@ -247,9 +250,9 @@
    if (!$this->ID)
      return false;
    $sql_result = $this->db->query("SELECT count(*) AS ident_count FROM " .
      get_table_name('identities') .
      " WHERE user_id = ? AND del <> 1",
    $sql_result = $this->db->query(
      "SELECT count(*) AS ident_count FROM ".get_table_name('identities')."
       WHERE user_id = ? AND del <> 1",
      $this->ID);
    $sql_arr = $this->db->fetch_assoc($sql_result);
@@ -258,7 +261,7 @@
    
    $this->db->query(
      "UPDATE ".get_table_name('identities')."
       SET    del=1
       SET    del=1, changed=".$this->db->now()."
       WHERE  user_id=?
       AND    identity_id=?",
      $this->ID,
@@ -359,7 +362,7 @@
    // try to resolve user in virtuser table and file
    if ($email_list = self::user2email($user, false, true)) {
      $user_email = is_array($email_list[0]) ? $email_list[0][0] : $email_list[0];
      $user_email = is_array($email_list[0]) ? $email_list[0]['email'] : $email_list[0];
    }
    $data = $rcmail->plugins->exec_hook('create_user',
@@ -407,24 +410,23 @@
      // create new identities records
      $standard = 1;
      foreach ($email_list as $row) {
   $record = array();
        if (is_array($row)) {
          $email = $row[0];
          $name = $row[1] ? $row[1] : $user_name;
     $record = $row;
        }
        else {
          $email = $row;
          $name = $user_name;
          $record['email'] = $row;
        }
        $plugin = $rcmail->plugins->exec_hook('create_identity', array(
          'login' => true,
          'record' => array(
            'user_id' => $user_id,
            'name' => strip_newlines($name),
            'email' => $email,
            'standard' => $standard,
          ),
        ));
   if (empty($record['name']))
     $record['name'] = $user_name;
        $record['name'] = strip_newlines($record['name']);
        $record['user_id'] = $user_id;
        $record['standard'] = $standard;
        $plugin = $rcmail->plugins->exec_hook('create_identity',
     array('login' => true, 'record' => $record));
          
        if (!$plugin['abort'] && $plugin['record']['email']) {
          $rcmail->user->insert_identity($plugin['record']);