A directory rarely keeps everything worth suggesting in one branch:
people sit under ou=People, while meeting rooms and other bookable
resources live elsewhere - ou=Resources on our installations. Because
the plugin queries a single base DN, typing part of a room's name while
composing an invitation returns nothing, even though the entry exists.
Widening the base to the domain root is not a fix: it pulls every
service account into the suggestion list.
base_dn now accepts several branches separated by '|', each queried with
the same filter, results concatenated. That separator cannot appear
unescaped in a DN, so existing single-branch configurations keep working
untouched. An unreachable branch is logged with its own DN and no longer
silences the remaining ones - previously a single failed search
discarded the whole lookup.
Plugin version bumped to 2.15.
Since multiple LDAP attributes are supported for the user name/email,
there's no harm in having defaults that are a bit more flexible
(for example, "givenName" is commonly only the users first name,
while a full name is usually preferable as an email recipient).
ldap_connect(<host>, <port>) is deprecated and ldap_connect(<uri>) is
more expressive (for example, by allowing the use of SSL to be
mandatory using a ldaps:// URL).
While the LDAP search is case insensitive, the array which is returned from
ldap_get_entries() will only use lowercase. This means that if one
configures the plugin to look for e.g. "givenName", no results
will be returned.
The plugin currently supports SSL (by using a ldaps:// URI as the
hostname of the LDAP server) and unencrypted LDAP. This patch
also adds StartTLS support, which is used by many LDAP servers.