[%# This Source Code Form is subject to the terms of the Mozilla Public
  # License, v. 2.0. If a copy of the MPL was not distributed with this
  # file, You can obtain one at http://mozilla.org/MPL/2.0/.
  #
  # This Source Code Form is "Incompatible With Secondary Licenses", as
  # defined by the Mozilla Public License, v. 2.0.
  #%]
[%
   title = "LDAP"
   desc = "Configure this first before choosing LDAP as an authentication method"
%]

[% param_descs = {
  LDAPserver => "The name (and optionally port) of your LDAP server " _
                "(e.g. ldap.company.com, or ldap.company.com:portnum). " _
                "URI syntax can also be used, such as "_
                "ldaps://ldap.company.com (for a secure connection) or " _
                "ldapi://%2fvar%2flib%2fldap_sock (for a socket-based " _
                "local connection. Multiple hostnames or URIs can be comma " _
                "separated; each will be tried in turn until a connection is " _
                "established.",

  LDAPstarttls => "Whether to require encrypted communication once a normal " _
                  "LDAP connection is achieved with the server.",

  LDAPbinddn => "If your LDAP server requires that you use a binddn and password " _
                "instead of binding anonymously, enter it here " _
                "(e.g. cn=default,cn=user:password). " _
                "Leave this empty for the normal case of an anonymous bind.",

  LDAPBaseDN => "The BaseDN for authenticating users against " _
                "(e.g. ou=People,o=Company).",

  LDAPuidattribute => "The name of the attribute containing the user's login name.",

  LDAPmailattribute => "The name of the attribute of a user in your " _
                       "directory that contains the email address, to be " _
                       "used as Bugzilla username. If this parameter " _
                       "is empty, Bugzilla will use the LDAP username"_
                       " as the Bugzilla username. You may also want" _
                       " to set the \"emailsuffix\" parameter, in this case.",

  LDAPfilter => "LDAP filter to AND with the <var>LDAPuidattribute</var> for " _
                "filtering the list of valid users." }
%]
