ILIAS  Release_4_0_x_branch Revision 61816
 All Data Structures Namespaces Files Functions Variables Groups Pages
webdav Namespace Reference

Class ilDAVLocks. More...

Detailed Description

Class ilDAVLocks.

This script provides a WebDAV interface for the ILIAS repository.

Class ilObjRootDAV.

Class ilObjNullDAV.

Class ilObjMountPointDAV.

Class ilObjGroupDAV.

Class ilObjFolderDAV.

Class ilObjFileDAV.

Class ilObjFileAccessSettingsGUI.

Class ilObjectDAV.

Class ilObjCourseDAV.

Class ilObjCategoryDAV.

Class ilDAVServer.

Class ilDAVProperties.

Handles locking of DAV objects. This class encapsulates the database table dav_lock.

This class provides low-level functions, which do not check on existing locks, before a certain lock-operation is performed.

Author
Werner Randelshofer, Hochschule Luzern, werne.nosp@m.r.ra.nosp@m.ndels.nosp@m.hofe.nosp@m.r@hsl.nosp@m.u.ch
Version
Id:
class.ilDAVLocks.php,v 1.0 2005/07/08 12:00:00 wrandelshofer Exp

Provides support for DAV specific object properties. This class encapsulates the database table dav_property.

Author
Werner Randelshofer, Hochschule Luzern, werne.nosp@m.r.ra.nosp@m.ndels.nosp@m.hofe.nosp@m.r@hsl.nosp@m.u.ch
Version
Id:
class.ilDAVProperties.php,v 1.0 2005/07/08 12:00:00 wrandelshofer Exp

Provides access to objects in the repository of ILIAS by means of the WebDAV protocol. This class is never directly invoked from HTTP. It is always invoked by the script /ilias3/webdav.php.

FIXME - We aren't able to handle filenames that contain a slash / character.

Author
Werner Randelshofer, Hochschule Luzern, werne.nosp@m.r.ra.nosp@m.ndels.nosp@m.hofe.nosp@m.r@hsl.nosp@m.u.ch
Version
Id:
class.ilDAVServer.php,v 1.0 2005/07/08 12:00:00 wrandelshofer Exp

Handles DAV requests on a category object.

Author
Werner Randelshofer, Hochschule Luzern, werne.nosp@m.r.ra.nosp@m.ndels.nosp@m.hofe.nosp@m.r@hsl.nosp@m.u.ch
Version
Id:
class.ilObjCategoryDAV.php 20544 2009-07-13 14:16:27Z wrandels

Handles DAV requests on a course object.

Author
Werner Randelshofer, Hochschule Luzern, werne.nosp@m.r.ra.nosp@m.ndels.nosp@m.hofe.nosp@m.r@hsl.nosp@m.u.ch
Version
Id:
class.ilObjCourseDAV.php 20544 2009-07-13 14:16:27Z wrandels

Superclass of all object specific handlers for DAV requests. Instances of this class are created and used by ilDAVServer.

Author
Werner Randelshofer, Hochschule Luzern, werne.nosp@m.r.ra.nosp@m.ndels.nosp@m.hofe.nosp@m.r@hsl.nosp@m.u.ch
Version
Id:
class.ilDAVServer.php,v 1.0 2005/07/08 12:00:00 wrandelshofer Exp
Author
Werner Randelshofer, Hochschule Luzern, werne.nosp@m.r.ra.nosp@m.ndels.nosp@m.hofe.nosp@m.r@hsl.nosp@m.u.ch
Version
Id:
class.ilObjFileAccessSettingsGUI.php 21086 2009-08-14 17:37:12Z akill

ilObjFileAccessSettingsGUI: ilPermissionGUI

Handles DAV requests on a file object.

Author
Werner Randelshofer, Hochschule Luzern, werne.nosp@m.r.ra.nosp@m.ndels.nosp@m.hofe.nosp@m.r@hsl.nosp@m.u.ch
Version
Id:
class.ilDAVServer.php,v 1.0 2005/07/08 12:00:00 wrandelshofer Exp

Handles DAV requests on a folder object.

Author
Werner Randelshofer, Hochschule Luzern, werne.nosp@m.r.ra.nosp@m.ndels.nosp@m.hofe.nosp@m.r@hsl.nosp@m.u.ch
Version
Id:
class.ilDAVServer.php,v 1.0 2005/07/08 12:00:00 wrandelshofer Exp

Handles DAV requests on a group object.

Author
Werner Randelshofer, Hochschule Luzern, werne.nosp@m.r.ra.nosp@m.ndels.nosp@m.hofe.nosp@m.r@hsl.nosp@m.u.ch
Version
Id:
class.ilDAVServer.php,v 1.0 2005/07/08 12:00:00 wrandelshofer Exp

Represents the top level mount point of webfolders.

This object, represents the parent of the root node of the ILIAS repository.

Author
Werner Randelshofer, Hochschule Luzern, werne.nosp@m.r.ra.nosp@m.ndels.nosp@m.hofe.nosp@m.r@hsl.nosp@m.u.ch
Version
Id:
class.ilDAVServer.php,v 1.0 2007/10/27 12:00:00 wrandelshofer Exp

Null Resources are used by WebDAV clients, to lock a resource name in the repository.

Cited from RFC 2518, chapter 3 "Terminology": "Null Resource - A resource which responds with 404 (Not Found) to any HTTP/1.1 or DAV method except for PUT, MKCOL, OPTIONS and LOCK. A Null Resource MUST NOT appear as a member of its parent collection."

Cited from RFC 2518, chapter 7.4 "Write Locks and Null Resources": "It is possible to assert a write lock on a null resource in order to lock the name. A write locked null resource, referred to as a lock-null resource, MUST respond with a 404 (Not Found) or 405 (Method Not Allowed) to any HTTP71.1 or DAV methods except for PUT, MKCOL, OPTIONS, PROPFIND, LOCK and UNLOCK. A lock-null resource MUST appear as a member of its parent collection. Additionally the lock-null resource MUST have defined on it all mandatory DAV properties. Most of these properties such as all the get properties, will have no value as a lock-null resource does not support the GET method. Lock-Null resources MUST have defined values for lockdiscovery and supportedlock properties. Until a method such as PUT or MKCOL is successfully executed on the lock-null resource the resource MUST stay in the lock-null state. However, once a PUT or MKCOL is successfully executed on a lock-null resouce the resource ceases to be in the lock-null state. If the resource is unlocked, for any reason, without a PUT, MKCOL, or similar method having been successfully executed upon it then the resource MUST return to the null state."

Null-resources are used by class.ilDAVSerrev.php for the following use cases:

Use case 1: Creating a new file resource

  1. Client sends a PROPFIND request on the name of the resource
  2. Server returns 404 (Not Found)
  3. Client sends a LOCK request on the name of the resource.
  4. Server creates a Null Resource and a Lock on the name.
  5. Client sends a PUT request on the name and passes the resource content along
  6. Server converts the Null Resource into a File resource and stores the resource content
  7. Client sends an UNLOCK request on the name of the resource
  8. Server deletes the Lock.

Use case 2: Creating a new collection resource

  1. Client sends a PROPFIND request on the name of the resource
  2. Server returns 404 (Not Found)
  3. Client sends a LOCK request on the name of the resource.
  4. Server creates a Null Resource and a Lock on the name.
  5. Client sends a MKCOL request on the name
  6. Server converts the Null Resource into a Collection resource and stores the resource content
  7. Client sends an UNLOCK request on the name of the resource
  8. Server deletes the Lock.

Use case 3: Locking and Unlocking a null resource

  1. Client sends a LOCK request on the name of the resource for some reason.
  2. Server creates a Null Resource and a Lock on the name.
  3. (Some time later) Client sends a UNLOCK request on the name of the resource
  4. Server deletes the Null Resource
  5. Server deletes the Lock.

Use case 4: Locking and timeout on lock on a null resource

  1. Client sends a LOCK request on the name of the resource for some reason.
  2. Server creates a Null Resource and a Lock on the name.
  3. (Some time later) the lock times out.
  4. Server deletes the Null Resource
  5. Server deletes the Lock.
Author
Werner Randelshofer, Hochschule Luzern, werne.nosp@m.r.ra.nosp@m.ndels.nosp@m.hofe.nosp@m.r@hsl.nosp@m.u.ch
Version
Id:
class.ilDAVServer.php,v 1.0 2005/07/08 12:00:00 wrandelshofer Exp

Represents the root node of the ILIAS Repository.

Author
Werner Randelshofer, Hochschule Luzern, werne.nosp@m.r.ra.nosp@m.ndels.nosp@m.hofe.nosp@m.r@hsl.nosp@m.u.ch
Version
Id:
class.ilDAVServer.php,v 1.0 2005/07/08 12:00:00 wrandelshofer Exp
Author
Werner Randelshofer, Hochschule Luzern, werne.nosp@m.r.ra.nosp@m.ndels.nosp@m.hofe.nosp@m.r@hsl.nosp@m.u.ch
Version
Id:
class.ilDAVServer.php,v 1.0 2005/07/08 12:00:00 wrandelshofer Exp