DAViCal
 All Classes Namespaces Functions Variables Pages
DAVResource Class Reference
Inheritance diagram for DAVResource:

Public Member Functions

 __construct ($parameters=null)
 
 FromRow ($row)
 
 FromPath ($inpath)
 
 GetParentContainer ()
 
 FetchParentContainer ()
 
 Privileges ()
 
 HavePrivilegeTo ($do_what, $any=null)
 
 NeedPrivilege ($privilege, $any=null)
 
 BuildPrivileges ($privilege_names=null, &$xmldoc=null)
 
 FetchSupportedMethods ()
 
 BuildSupportedMethods ()
 
 FetchSupportedReports ()
 
 BuildSupportedReports (&$reply)
 
 FetchTickets ()
 
 BuildTicketinfo (&$reply)
 
 IsLocked ($depth=0)
 
 IsCollection ()
 
 IsPrincipal ()
 
 IsCalendar ()
 
 IsProxyCollection ($type= 'any')
 
 IsSchedulingCollection ($type= 'any')
 
 IsInSchedulingCollection ($type= 'any')
 
 IsAddressbook ()
 
 IsBinding ()
 
 IsExternal ()
 
 Exists ()
 
 ContainerExists ()
 
 url ()
 
 dav_name ()
 
 bound_from ()
 
 set_bind_location ($new_dav_name)
 
 parent_path ()
 
 principal_url ()
 
 user_no ()
 
 collection_id ()
 
 resource ()
 
 unique_tag ()
 
 resource_id ()
 
 sync_token ($cachedOK=true)
 
 IsPublic ()
 
 IsPublicOnly ()
 
 ContainerType ()
 
 BuildACE (&$xmldoc, $privs, $principal)
 
 GetACL (&$xmldoc)
 
 GetProperty ($name)
 
 DAV_AllProperties ()
 
 ResourceProperty ($tag, $prop, &$reply, &$denied)
 
 GetPropStat ($properties, &$reply, $props_only=false)
 
 RenderAsXML ($properties, &$reply, $bound_parent_path=null)
 

Static Public Member Functions

static BuildDeadPropertyXML ($property_name, $raw_string)
 

Protected Member Functions

 FetchCollection ()
 
 FetchPrincipal ()
 
 FetchResource ()
 
 FetchDeadProperties ()
 
 FetchPrivileges ()
 

Protected Attributes

 $dav_name
 
 $exists
 
 $unique_tag
 
 $resource
 
 $parent
 
 $resourcetypes
 
 $contenttype
 
 $bound_from
 

Private Member Functions

 ReadCollectionFromDatabase ()
 

Private Attributes

 $collection
 
 $principal
 
 $privileges
 
 $_is_collection
 
 $_is_principal
 
 $_is_calendar
 
 $_is_binding
 
 $_is_external
 
 $_is_addressbook
 
 $_is_proxy_resource
 
 $proxy_type
 
 $supported_methods
 
 $supported_reports
 
 $dead_properties
 
 $supported_components
 
 $tickets
 

Detailed Description

Definition at line 24 of file DAVResource.php.

Constructor & Destructor Documentation

DAVResource::__construct (   $parameters = null)

Constructor

Parameters
mixed$parametersIf null, an empty Resourced is created. If it is an object then it is expected to be a record that was read elsewhere.

Definition at line 152 of file DAVResource.php.

Member Function Documentation

DAVResource::bound_from ( )

Returns the dav_name of the resource we are bound to, within our internal namespace

Returns
string

Definition at line 1229 of file DAVResource.php.

DAVResource::BuildACE ( $xmldoc,
  $privs,
  $principal 
)

BuildACE - construct an XMLElement subtree for a DAV::ace

Definition at line 1404 of file DAVResource.php.

static DAVResource::BuildDeadPropertyXML (   $property_name,
  $raw_string 
)
static

FIXME: does this function return a string or an array, or either? It used to be string only, but b4fd9e2e changed successfully parsed values to array. However values not in angle brackets are passed through, and those seem to be the majority in my database?!

Definition at line 654 of file DAVResource.php.

DAVResource::BuildPrivileges (   $privilege_names = null,
$xmldoc = null 
)

Returns the array of privilege names converted into XMLElements

Definition at line 825 of file DAVResource.php.

DAVResource::BuildSupportedMethods ( )

Returns the array of supported methods converted into XMLElements

Definition at line 914 of file DAVResource.php.

DAVResource::BuildSupportedReports ( $reply)

Returns the array of supported reports converted into XMLElements

Definition at line 967 of file DAVResource.php.

DAVResource::BuildTicketinfo ( $reply)

Returns the array of tickets converted into XMLElements

If the current user does not have DAV::read-acl privilege on this resource they will only get to see the tickets where they are the owner, or which they supplied along with the request.

Parameters
&XMLDocument$reply A reference to the XMLDocument used to construct the reply
Returns
XMLTreeFragment A fragment of an XMLDocument to go in the reply

Definition at line 1028 of file DAVResource.php.

DAVResource::collection_id ( )

Returns the internal collection_id for this collection, or the collection containing this resource

Definition at line 1284 of file DAVResource.php.

DAVResource::ContainerExists ( )

Checks whether the container for this resource actually exists, in the virtual sense, within the hierarchy

Definition at line 1194 of file DAVResource.php.

DAVResource::ContainerType ( )

Return the type of whatever contains this resource, or would if it existed.

Definition at line 1370 of file DAVResource.php.

DAVResource::DAV_AllProperties ( )

Return an array which is an expansion of the DAV::allprop

Definition at line 1535 of file DAVResource.php.

DAVResource::dav_name ( )

Returns the dav_name of the resource in our internal namespace

Returns
string

Definition at line 1219 of file DAVResource.php.

DAVResource::Exists ( )

Checks whether this resource actually exists, in the virtual sense, within the hierarchy

Definition at line 1176 of file DAVResource.php.

DAVResource::FetchCollection ( )
protected

Find the collection associated with this resource.

RFC4918, 8.3: Identifiers for collections SHOULD end in '/'

  • also discussed at more length in 5.2

So we look for a collection which matches one of the following URLs:

  • The exact request.
  • If the exact request, doesn't end in '/', then the request URL with a '/' appended
  • The request URL truncated to the last '/' The collection URL for this request is therefore the longest row in the result, so we can "... ORDER BY LENGTH(dav_name) DESC LIMIT 1"

Definition at line 497 of file DAVResource.php.

DAVResource::FetchDeadProperties ( )
protected

Fetch any dead properties for this URL

Definition at line 634 of file DAVResource.php.

DAVResource::FetchParentContainer ( )

Fetch the parent to this resource. This is deprecated - use GetParentContainer() instead.

Deprecated:

Definition at line 767 of file DAVResource.php.

DAVResource::FetchPrincipal ( )
protected

Find the principal associated with this resource.

Definition at line 584 of file DAVResource.php.

DAVResource::FetchPrivileges ( )
protected

Build permissions for this URL

Definition at line 689 of file DAVResource.php.

DAVResource::FetchResource ( )
protected

Retrieve the actual resource.

Definition at line 607 of file DAVResource.php.

DAVResource::FetchSupportedMethods ( )

Returns the array of supported methods

Definition at line 837 of file DAVResource.php.

DAVResource::FetchSupportedReports ( )

Returns the array of supported reports

Definition at line 928 of file DAVResource.php.

DAVResource::FetchTickets ( )

Fetches an array of the access_ticket records applying to this path

Definition at line 983 of file DAVResource.php.

DAVResource::FromPath (   $inpath)

Initialise from a path

Parameters
object$inpathThe path to populate the resource data from

Definition at line 329 of file DAVResource.php.

DAVResource::FromRow (   $row)

Initialise from a database row

Parameters
object$rowThe row from the DB.

Definition at line 193 of file DAVResource.php.

DAVResource::GetACL ( $xmldoc)

Return ACL settings

Definition at line 1425 of file DAVResource.php.

DAVResource::GetParentContainer ( )

Get a DAVResource which is the parent to this resource.

Definition at line 747 of file DAVResource.php.

DAVResource::GetProperty (   $name)

Return general server-related properties, in plain form

Definition at line 1455 of file DAVResource.php.

DAVResource::GetPropStat (   $properties,
$reply,
  $props_only = false 
)

Construct XML propstat fragment for this resource

Parameters
arrayof string $properties The requested properties for this resource
Returns
string An XML fragment with the requested properties for this resource

Definition at line 1897 of file DAVResource.php.

DAVResource::HavePrivilegeTo (   $do_what,
  $any = null 
)

Does the user have the privileges to do what is requested.

Parameters
$do_whatmixed The request privilege name, or array of privilege names, to be checked.
$anyboolean Whether we accept any of the privileges. The default is true, unless the requested privilege is 'all', when it is false.
Returns
boolean Whether they do have one of those privileges against this resource.

Definition at line 788 of file DAVResource.php.

DAVResource::IsAddressbook ( )

Checks whether this resource is an addressbook

Definition at line 1152 of file DAVResource.php.

DAVResource::IsBinding ( )

Checks whether this resource is a bind to another resource

Definition at line 1160 of file DAVResource.php.

DAVResource::IsCalendar ( )

Checks whether this resource is a calendar

Definition at line 1108 of file DAVResource.php.

DAVResource::IsCollection ( )

Checks whether this resource is a collection

Definition at line 1092 of file DAVResource.php.

DAVResource::IsExternal ( )

Checks whether this resource is a bind to an external resource

Definition at line 1168 of file DAVResource.php.

DAVResource::IsInSchedulingCollection (   $type = 'any')

Checks whether this resource is IN a scheduling inbox/outbox collection

Parameters
string$typeThe type of scheduling collection, 'inbox', 'outbox' or 'any'

Definition at line 1141 of file DAVResource.php.

DAVResource::IsLocked (   $depth = 0)

Checks whether the resource is locked, returning any lock token, or false

Todo:
This logic does not catch all locking scenarios. For example an infinite depth request should check the permissions for all collections and resources within that. At present we only maintain permissions on a per-collection basis though.

Find the locks that might apply and load them into an array

Definition at line 1060 of file DAVResource.php.

DAVResource::IsPrincipal ( )

Checks whether this resource is a principal

Definition at line 1100 of file DAVResource.php.

DAVResource::IsProxyCollection (   $type = 'any')

Checks whether this resource is a proxy collection

Parameters
string$typeThe type of proxy collection, 'read', 'write' or 'any'

Definition at line 1117 of file DAVResource.php.

DAVResource::IsPublic ( )

Checks whether the target collection is publicly_readable

Definition at line 1354 of file DAVResource.php.

DAVResource::IsPublicOnly ( )

Checks whether the target collection is for public events only

Definition at line 1362 of file DAVResource.php.

DAVResource::IsSchedulingCollection (   $type = 'any')

Checks whether this resource is a scheduling inbox/outbox collection

Parameters
string$typeThe type of scheduling collection, 'inbox', 'outbox' or 'any'

Definition at line 1129 of file DAVResource.php.

DAVResource::NeedPrivilege (   $privilege,
  $any = null 
)

Check if we have the needed privilege or send an error response. If the user does not have the privileges then the call will not return, and an XML error document will be output.

Parameters
string$privilegeThe name of the needed privilege.
boolean$anyWhether we accept any of the privileges. The default is true, unless the requested privilege is 'all', when it is false.

Definition at line 810 of file DAVResource.php.

DAVResource::parent_path ( )

Returns the dav_name of the resource in our internal namespace

Definition at line 1250 of file DAVResource.php.

DAVResource::principal_url ( )

Returns the principal-URL for this resource

Definition at line 1266 of file DAVResource.php.

DAVResource::Privileges ( )

Return the privileges bits for the current session user to this resource

Definition at line 776 of file DAVResource.php.

DAVResource::RenderAsXML (   $properties,
$reply,
  $bound_parent_path = null 
)

Render XML for this resource

Parameters
array$propertiesThe requested properties for this principal
reference$replyA reference to the XMLDocument being used for the reply
Returns
string An XML fragment with the requested properties for this principal

Definition at line 1955 of file DAVResource.php.

array An array of the component types we support on this DAVResource::resource ( )

Returns the database row for this resource

Definition at line 1293 of file DAVResource.php.

DAVResource::resource_id ( )

Returns the definitive resource_id for this resource - usually a dav_id

Definition at line 1319 of file DAVResource.php.

DAVResource::ResourceProperty (   $tag,
  $prop,
$reply,
$denied 
)

Return general server-related properties for this URL

getlastmodified is HTTP Date format: i.e. the Last-Modified header in response to a GET

creationdate is ISO8601 format

indicating the style for future expansion

Definition at line 1554 of file DAVResource.php.

DAVResource::set_bind_location (   $new_dav_name)

Sets the dav_name of the resource we are bound as

Definition at line 1238 of file DAVResource.php.

DAVResource::sync_token (   $cachedOK = true)

Returns the current sync_token for this collection, or the containing collection

Definition at line 1333 of file DAVResource.php.

DAVResource::unique_tag ( )

Returns the unique_tag (ETag or getctag) for this resource

Definition at line 1302 of file DAVResource.php.

DAVResource::url ( )

Returns the URL of our resource

Returns
string

Definition at line 1207 of file DAVResource.php.

DAVResource::user_no ( )

Returns the internal user_no for the principal for this resource

Definition at line 1275 of file DAVResource.php.


The documentation for this class was generated from the following file: