LDAP in ownCloud 6.0.3: improved performance and more
In about a week we release version 6.0.3 of ownCloud Community Edition! It is a maintenance release that includes nearly two months of improvements (including performance improvements) and some fixes. I want to use this opportunity to shed some light on the fixes the LDAP back-end has seen.
There are no big things, however, but the performance improvements in sharing related methods and in the configuration wizard will significantly enhance the experience for end users and admins. The following list is not a complete one, but addresses the most notable changes.
Faster user retrieval in sharing dialogue
By optimizing the behavior in fetching and caching the display name, additional per user queries to the LDAP server are not necessary anymore. Fortunately, it was a low hanging fruit, because we requested the attribute on the original search query already. The missing piece was to push the value to the LDAP cache. The result, obviously, is that users will appear faster in the share dialogue and the number of LDAP queries is reduced.
Regular updates of email (and quota)
Users really appreciate the feature to send email notifications when sharing files. Now, they found out that LDAP users were not notified, although the email attribute was configured properly. Well, yes, the email was only fetched upon login. If a user never logged in before, for example, the email address would not have been known to ownCloud. Previously, this was totally OK as there was no big use for the email address nevertheless, but things are different today.
Now, user details like user quota and the email address will be fetched initially with mapping of the user (one-time happening) and on the regular user exists check (with utilizing the LDAP cache). So the email address will be accurate whenever the notification will be used.
More reliable Configuration Wizard
The LDAP Wizard has seen two major improvements. First, when determining the object classes in the User and Group Filter tabs, it does not look at every available object anymore. A nasty mistake by missing to implement a limitation. Now, only three LDAP objects will be looked at, which reduces the detection time massively, especially with bigger LDAP setups.
Another issue has been a race condition that could lead to a reset (respectively automatic compilation) of the LDAP filters. No undesired surprises any more.
More accurate reporting
Do you know the ownCloud command line client? It gives the administrator some tools for managing ownCloud that are handy to not (only) have in the web interface. There is also a method to get the total number of users, user:report. In LDAP we need to count the whole result set for this. If available (depending on PHP version and LDAP server configuration), we work with paged results. Well, we should, and we do since now also in this case.
This allows us to get a specific total number from Active Directory. For OpenLDAP however, the configured size limit on the LDAP server is the maximum number of results we can get. It is because OpenLDAP follows a suggestion of the awkward RFC 2696 (section 6) and AD does not (guess who wrote the RFC).
Good news for FreeIPA users: Robin McCorkell (thank you!) added support for the UUID attribute used in FreeIPA so the configuration will work right out of the box without any changes in the expert settings.
ownCloud 6.0.3 RC
ownCloud 6.0.3 is currently in the Release Candidate stage. With so many different setups out there in the wild we always appreciate testers. So, if you have some time left, please get it and poke around! Also, the temporary changelog is available.