Webdav authentication, authorization and locking
We just released the 2008.2 release of the eZ Components yesterday. This stable release received 6 months of care by the core developers and many contributors. Thanks to all of you for the great work!
The most significant features were added to the Document and Webdav components. In addition we have a brand new MvcTools component and many smaller features as well as bug fixes to other existing packages.
The Document component is intended to convert between many different document formats. It is now capable to convert from and to different Wiki dialects, DocBook XML, XHMTML, different eZ Publish XML formats and ReStructured Text. MvcTools is a component that supports you while writing a flexible MVC implementation for your own applications. It's not intended to be an MVC out of the box, but can be used like that to some degree.
My tasks for 2008.2 were dedicated to the Webdav component. This package allows you to easily integrate WebDAV access features into your applications.
With the earlier 2007.2 release, this component was born. By then, it supported just rudimentary WebDAV features (compliance class 1) and we focused on its architecture to make it as flexible as possible. It supported easy adjustment to the needs and incompatibilities of different clients and the possibility to use a custom back-end to server data from any kind of storage.
A drawback for a productive integration of Webdav into applications was, that you needed to take care for authentication and authorization yourself completely. This has changed with 2008.2. The component now allows you to easily integrate your applications authentication mechanism by implementing a proxy following certain simple interfaces. Integrating your permission database works pretty much the same.
A commonly requested feature for Webdav was to support locking. Especially important for large sites, where many users collaborate, we implemented this feature for 2008.2, too.
To add locking, a flexible plug-in API was thought out, which allows you, to enhance the Webdav component with custom functionality in an easy way. The lock plug-in is the first plug-in realized this way. It solves the lost update problem independent from the currently connected client independent from the back-end you use in your environment. That means, you can also use the lock mechanism with custom back-ends. In addition, you can simply leave out the somewhat complex lock stuff, with simply not using the plugin.
With lock support, the Webdav component now complies to WebDAV class 2 (and in many ways already to 3). If you want to know more about the component and see how you can integrate it, please refer to my article about Webdav on the eZ Components website, which was just released.