SharingPlugin
extends ServerPlugin
in package
This plugin implements support for caldav sharing.
This spec is defined at: http://svn.calendarserver.org/repository/calendarserver/CalendarServer/trunk/doc/Extensions/caldav-sharing.txt
See: Sabre\CalDAV\Backend\SharingSupport for all the documentation.
Note: This feature is experimental, and may change in between different SabreDAV versions.
Tags
Table of Contents
- $server : Server
- Reference to SabreDAV server object.
- getFeatures() : array<string|int, mixed>
- This method should return a list of server-features.
- getHTTPMethods() : array<string|int, mixed>
- Use this method to tell the server this plugin defines additional HTTP methods.
- getPluginInfo() : array<string|int, mixed>
- Returns a bunch of meta-data about the plugin.
- getPluginName() : string
- Returns a plugin name.
- getSupportedReportSet() : array<string|int, mixed>
- Returns a list of reports this plugin supports.
- httpPost() : bool|null
- We intercept this to handle POST requests on calendars.
- initialize() : mixed
- This initializes the plugin.
- propFindEarly() : mixed
- This event is triggered when properties are requested for a certain node.
- propFindLate() : mixed
- This method is triggered *after* all properties have been retrieved.
- propPatch() : mixed
- This method is trigged when a user attempts to update a node's properties.
Properties
$server
Reference to SabreDAV server object.
protected
Server
$server
Methods
getFeatures()
This method should return a list of server-features.
public
getFeatures() : array<string|int, mixed>
This is for example 'versioning' and is added to the DAV: header in an OPTIONS response.
Return values
array<string|int, mixed> —getHTTPMethods()
Use this method to tell the server this plugin defines additional HTTP methods.
public
getHTTPMethods(string $path) : array<string|int, mixed>
This method is passed a uri. It should only return HTTP methods that are available for the specified uri.
Parameters
- $path : string
Return values
array<string|int, mixed> —getPluginInfo()
Returns a bunch of meta-data about the plugin.
public
getPluginInfo() : array<string|int, mixed>
Providing this information is optional, and is mainly displayed by the Browser plugin.
The description key in the returned array may contain html and will not be sanitized.
Return values
array<string|int, mixed> —getPluginName()
Returns a plugin name.
public
getPluginName() : string
Using this name other plugins will be able to access other plugins using Sabre\DAV\Server::getPlugin
Return values
string —getSupportedReportSet()
Returns a list of reports this plugin supports.
public
getSupportedReportSet(string $uri) : array<string|int, mixed>
This will be used in the {DAV:}supported-report-set property. Note that you still need to subscribe to the 'report' event to actually implement them
Parameters
- $uri : string
Return values
array<string|int, mixed> —httpPost()
We intercept this to handle POST requests on calendars.
public
httpPost(RequestInterface $request, ResponseInterface $response) : bool|null
Parameters
- $request : RequestInterface
- $response : ResponseInterface
Return values
bool|null —initialize()
This initializes the plugin.
public
initialize(Server $server) : mixed
This function is called by Sabre\DAV\Server, after addPlugin is called.
This method should set up the required event subscriptions.
Parameters
- $server : Server
Return values
mixed —propFindEarly()
This event is triggered when properties are requested for a certain node.
public
propFindEarly(PropFind $propFind, INode $node) : mixed
This allows us to inject any properties early.
Parameters
Return values
mixed —propFindLate()
This method is triggered *after* all properties have been retrieved.
public
propFindLate(PropFind $propFind, INode $node) : mixed
This allows us to inject the correct resourcetype for calendars that have been shared.
Parameters
Return values
mixed —propPatch()
This method is trigged when a user attempts to update a node's properties.
public
propPatch(string $path, PropPatch $propPatch) : mixed
A previous draft of the sharing spec stated that it was possible to use PROPPATCH to remove 'shared-owner' from the resourcetype, thus unsharing the calendar.
Even though this is no longer in the current spec, we keep this around because OS X 10.7 may still make use of this feature.
Parameters
- $path : string
- $propPatch : PropPatch