| | |
| | | * |
| | | * // The id of the address book to use to automatically set a new |
| | | * // user's full name in their new identity. (This should be an |
| | | * // string, which refers to the $rcmail_config['ldap_public'] array.) |
| | | * $rcmail_config['new_user_identity_addressbook'] = 'People'; |
| | | * // string, which refers to the $config['ldap_public'] array.) |
| | | * $config['new_user_identity_addressbook'] = 'People'; |
| | | * |
| | | * // When automatically setting a new users's full name in their |
| | | * // new identity, match the user's login name against this field. |
| | | * $rcmail_config['new_user_identity_match'] = 'uid'; |
| | | * $config['new_user_identity_match'] = 'uid'; |
| | | */ |
| | | class new_user_identity extends rcube_plugin |
| | | { |
| | |
| | | { |
| | | if ($this->init_ldap($args['host'])) { |
| | | $results = $this->ldap->search('*', $args['user'], true); |
| | | |
| | | if (count($results->records) == 1) { |
| | | $user_name = is_array($results->records[0]['name']) ? $results->records[0]['name'][0] : $results->records[0]['name']; |
| | | $user_email = is_array($results->records[0]['email']) ? $results->records[0]['email'][0] : $results->records[0]['email']; |
| | | |
| | | $args['user_name'] = $user_name; |
| | | $args['user_name'] = $user_name; |
| | | $args['email_list'] = array(); |
| | | |
| | | if (!$args['user_email'] && strpos($user_email, '@')) { |
| | | $args['user_email'] = rcube_utils::idn_to_ascii($user_email); |
| | | } |
| | | |
| | | foreach (array_keys($results[0]) as $key) { |
| | | if (!preg_match('/^email($|:)/', $key)) { |
| | | continue; |
| | | } |
| | | |
| | | foreach ((array) $results->records[0][$key] as $alias) { |
| | | if (strpos($alias, '@')) { |
| | | $args['email_list'][] = rcube_utils::idn_to_ascii($alias); |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |
| | | } |
| | | |
| | | return $args; |
| | | } |
| | | |