------------------
- Group type accessGroup added to the list of group records
recognized and usable within the LDAPUserFolder. Michael
Stroeder spotted this type of group on a IBM SecureWay
directory server.
- More efficient groups search filter for specific user
record, suggested by Michael Stroeder.
- Logging and caching are factored out into instance-level
objects
- The security model has seen a complete change to make
it simpler and to respect access controls placed on the
LDAP server itself more:
- providing a Manager DN and password is optional
- if a Manager DN has been provided in the configuration
then that DN will be used to bind for every single
LDAP operation
- if no Manager DN has been provided then the current
user's DN will be used for binding.
- if no Manager DN has been provided and a user who
authenticated against another user folder is
attempting to perform LDAP operations it will
be performed with an anonymous bind.
This all implies that if you want to make changes in LDAP that
require specific rights you must either log in as a user with
those specific rights or use the less security-conscious
workaround of providing a Manager DN in the LDAPUserFolder
configuration.
If you attempt to make changes with a Manager user
authenticated against another user folder you might not be able
to, which might be a source of confusion for some Zope admins.
- Catch ldap.PARTIAL_RESULTS after issuing a search request
to the server, something the Micro$haft "Active Directory"
server seems to like doing. Thanks go to Brad Powell for
reporting this nonstandard server behavior.
- Reclassified and clarified some logging calls and their
message output.
- A lot of "whitespace normalization" (hate that expression!)
and fixes to overly long lines of code.
- Handling of multi-valued attributes has been cleaned up and
changed slightly. If an attribute value contains semicolon
(;) characters it will be assumed to contain a semicolon-
separated list of values. The ZMI "Users" tab will also
display semicolon-separated values for all multi-valued
attributes when you view the record.
- A misconfigured Users base DN setting is now less likely to
lead to complete blowups upon trying to connect to the
LDAP server so that access to the container will always remain
intact and the LDAPUserFolder can be reconfigured or deleted
if needed.
- No blowups from getUser if the name passed in is not a string,
just returns None instead now. (Tracker issue 166 filed by
Romain Eliot)