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.
This is just cosmetic, but the "to use" is superfluous and doesn't match the wording of the other labels (and makes the rendered UI a bit weird by pushing everything to the side).
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).
Use common LDAP terminology and update comments to reflect how the
configuration options work (e.g. that all the LDAP attribute options
are multivalued).
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.