| | |
| | | | program/include/rcube_user.inc | |
| | | | | |
| | | | This file is part of the RoundCube Webmail client | |
| | | | Copyright (C) 2005-2009, RoundCube Dev. - Switzerland | |
| | | | Copyright (C) 2005-2010, RoundCube Dev. - Switzerland | |
| | | | Licensed under the GNU GPL | |
| | | | | |
| | | | PURPOSE: | |
| | |
| | | /** |
| | | * Build a user name string (as e-mail address) |
| | | * |
| | | * @return string Full user name |
| | | * @param string Username part (empty or 'local' or 'domain') |
| | | * @return string Full user name or its part |
| | | */ |
| | | function get_username() |
| | | function get_username($part = null) |
| | | { |
| | | if ($this->data['username']) { |
| | | if (!strpos($this->data['username'], '@')) |
| | | return $this->data['username'] . '@' . $this->data['mail_host']; |
| | | list($local, $domain) = explode('@', $this->data['username']); |
| | | |
| | | // at least we should always have the local part |
| | | if ($part == 'local') { |
| | | return $local; |
| | | } |
| | | // if no domain was provided... |
| | | if (empty($domain)) { |
| | | $rcmail = rcmail::get_instance(); |
| | | $domain = $rcmail->config->mail_domain($this->data['mail_host']); |
| | | } |
| | | |
| | | if ($part == 'domain') { |
| | | return $domain; |
| | | } |
| | | |
| | | if (!empty($domain)) |
| | | return $local . '@' . $domain; |
| | | else |
| | | return $this->data['username']; |
| | | return $local; |
| | | } |
| | | |
| | | return false; |
| | |
| | | { |
| | | if (!empty($this->language)) |
| | | $prefs = array('language' => $this->language); |
| | | |
| | | |
| | | if ($this->ID && $this->data['preferences']) |
| | | $prefs += (array)unserialize($this->data['preferences']); |
| | | |
| | | |
| | | return $prefs; |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | /** |
| | | * Write the given user prefs to the user's record |
| | | * |
| | |
| | | $user_email = is_array($email_list[0]) ? $email_list[0]['email'] : $email_list[0]; |
| | | } |
| | | |
| | | $data = $rcmail->plugins->exec_hook('create_user', |
| | | $data = $rcmail->plugins->exec_hook('user_create', |
| | | array('user'=>$user, 'user_name'=>$user_name, 'user_email'=>$user_email)); |
| | | |
| | | // plugin aborted this operation |
| | |
| | | strip_newlines($user), |
| | | strip_newlines($host), |
| | | strip_newlines($data['alias'] ? $data['alias'] : $user_email), |
| | | $_SESSION['language']); |
| | | strip_newlines($data['language'] ? $data['language'] : $_SESSION['language'])); |
| | | |
| | | if ($user_id = $dbh->insert_id('users')) { |
| | | // create rcube_user instance to make plugin hooks work |
| | |
| | | $record['user_id'] = $user_id; |
| | | $record['standard'] = $standard; |
| | | |
| | | $plugin = $rcmail->plugins->exec_hook('create_identity', |
| | | $plugin = $rcmail->plugins->exec_hook('identity_create', |
| | | array('login' => true, 'record' => $record)); |
| | | |
| | | if (!$plugin['abort'] && $plugin['record']['email']) { |
| | |
| | | |
| | | return empty($plugin['email']) ? NULL : $plugin['email']; |
| | | } |
| | | |
| | | |
| | | } |