/moodle-local_davroot

DAVRoot: Moodle Files through WebDAV

Primary LanguagePHPGNU General Public License v3.0GPL-3.0

This Moodle local plugin uses SabreDAV, a WebDAV framework for PHP,
to map the Moodle Files API into DAV Resources and Collections.

To install using git, type this command in the root of your Moodle installation:
    git clone git://github.com/scara/moodle-local_davroot.git ./local/davroot
Then add '/local/davroot' to your git ignore or local exclude, e.g.:
    echo '/local/davroot' >> .git/info/exclude

Alternatively, download the tar.gz/zip from:
    https://github.com/scara/moodle-local_davroot/tarball/master
    https://github.com/scara/moodle-local_davroot/zipball/master
and uncompress it into the 'local' folder. Then rename the new folder
into 'davroot'.

Log into your Moodle instance as admin: the installation process will start.

After you have installed this local plugin , you'll need to configure it under
Site administration -> Plugins -> Local plugins -> DAVRoot in the 'Settings' block.

LICENSE
DAVRoot is licenced under the GNU GPL v3 or later.
SabreDAV is licenced under the modified BSD, which is compatible with GPL:
details in http://www.gnu.org/licenses/license-list.html#ModifiedBSD.

SECURITY
Requires the 'local/davroot:canconnect' capability at system context level.

PERFORMANCES
WebDAV browsing is limited by, mostly, the amount of queries required
to browse this virtual file system, especially when using
Microsoft Windows' WebDAV implementation and you have some shell extensions.
There will probably be the need for improving the code too.

KNOWN ISSUES
- DAVRoot uses the Moodle Files API EXCEPT when folders/files will be renamed:
  using DAVRoot "should" be as safe as manipulating files using Moodle.
  Browsing is the safest option.
- Microsoft Windows' WebDAV implementation requires some configurations:
  read more at http://code.google.com/p/sabredav/wiki/Windows.
  Shortly, on Vista:
  1. Create a Virtual Host to directly expose the local/davroot folder
  2. Change Virtual Host settings of the DAVRoot plugin
  3. Software Update for Web Folders (KB907306)
  4. [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters]
    "UseBasicAuth"=dword:00000001
    "BasicAuthLevel"=dword:00000002
  5. Restart
  Shortly, on Apache: create a Virtual Host pointing to local/davroot
- Authentication with MNet accounts is not supported
- DAVRoot has been tested NOT in a production environment, using
  Moodle 2.0/MySQL 5.0/PHP 5.2.17 with the following WebDAV clients:
  . davfs, under CentOS 5.7
  . cadaver, under CentOS 5.7
  . Cyberduck, under Windows Vista Home Premium SP2
  . Microsoft Windows' WebDAV implementation, Microsoft-WebDAV-MiniRedir/6.0.6002
- Pay attention when using concurrent clients: Lock Manager should be enabled

TODO
- Temporary file patterns configuration
- Let required folders be configured as part of the plugin settings
- Log who change what
- AOB: see the notes in the code