| | |
| | | <?php |
| | | |
| | | /* |
| | | /** |
| | | +-----------------------------------------------------------------------+ |
| | | | Roundcube/rcube_ldap_generic.php | |
| | | | | |
| | |
| | | * Get a specific LDAP entry, identified by its DN |
| | | * |
| | | * @param string $dn Record identifier |
| | | * @param array $attributes Attributes to return |
| | | * |
| | | * @return array Hash array |
| | | */ |
| | | function get_entry($dn) |
| | | function get_entry($dn, $attributes = array()) |
| | | { |
| | | return parent::get_entry($dn, $this->attributes); |
| | | return parent::get_entry($dn, !empty($attributes) ? $attributes : $this->attributes); |
| | | } |
| | | |
| | | /** |
| | |
| | | * Turn an LDAP entry into a regular PHP array with attributes as keys. |
| | | * |
| | | * @param array $entry Attributes array as retrieved from ldap_get_attributes() or ldap_get_entries() |
| | | * @param bool $flat Convert one-element-array values into strings (not implemented) |
| | | * |
| | | * @return array Hash array with attributes as keys |
| | | */ |
| | | public static function normalize_entry($entry) |
| | | public static function normalize_entry($entry, $flat = false) |
| | | { |
| | | if (!isset($entry['count'])) { |
| | | return $entry; |
| | |
| | | } |
| | | |
| | | $groups = array(); |
| | | $words = rcube_utils::tokenize_string($value, 1); |
| | | $value = str_replace('*', '', $value); |
| | | $words = $mode == 0 ? rcube_utils::tokenize_string($value, 1) : array($value); |
| | | |
| | | // set wildcards |
| | | $wp = $ws = ''; |
| | |
| | | $groups[] = '(|' . join('', $parts) . ')'; |
| | | } |
| | | |
| | | return empty($groups) ? '' : '(&' . join('', $groups) . ')'; |
| | | return count($groups) > 1 ? '(&' . join('', $groups) . ')' : join('', $groups); |
| | | } |
| | | } |
| | | |