Page Menu
Home
Phabricator
Search
Configure Global Search
Log In
Files
F1821857
Plugin.php
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Size
2 KB
Subscribers
None
Plugin.php
View Options
<?php
namespace
Sabre\DAV\Mount
;
use
Sabre\DAV
;
use
Sabre\HTTP\RequestInterface
;
use
Sabre\HTTP\ResponseInterface
;
/**
* This plugin provides support for RFC4709: Mounting WebDAV servers
*
* Simply append ?mount to any collection to generate the davmount response.
*
* @copyright Copyright (C) 2007-2015 fruux GmbH (https://fruux.com/).
* @author Evert Pot (http://evertpot.com/)
* @license http://sabre.io/license/ Modified BSD License
*/
class
Plugin
extends
DAV\ServerPlugin
{
/**
* Reference to Server class
*
* @var Sabre\DAV\Server
*/
protected
$server
;
/**
* Initializes the plugin and registers event handles
*
* @param DAV\Server $server
* @return void
*/
function
initialize
(
DAV\Server
$server
)
{
$this
->
server
=
$server
;
$this
->
server
->
on
(
'method:GET'
,
[
$this
,
'httpGet'
],
90
);
}
/**
* 'beforeMethod' event handles. This event handles intercepts GET requests ending
* with ?mount
*
* @param RequestInterface $request
* @param ResponseInterface $response
* @return bool
*/
function
httpGet
(
RequestInterface
$request
,
ResponseInterface
$response
)
{
$queryParams
=
$request
->
getQueryParameters
();
if
(!
array_key_exists
(
'mount'
,
$queryParams
))
return
;
$currentUri
=
$request
->
getAbsoluteUrl
();
// Stripping off everything after the ?
list
(
$currentUri
)
=
explode
(
'?'
,
$currentUri
);
$this
->
davMount
(
$response
,
$currentUri
);
// Returning false to break the event chain
return
false
;
}
/**
* Generates the davmount response
*
* @param ResponseInterface $response
* @param string $uri absolute uri
* @return void
*/
function
davMount
(
ResponseInterface
$response
,
$uri
)
{
$response
->
setStatus
(
200
);
$response
->
setHeader
(
'Content-Type'
,
'application/davmount+xml'
);
ob_start
();
echo
'<?xml version="1.0"?>'
,
"
\n
"
;
echo
"<dm:mount xmlns:dm=
\"
http://purl.org/NET/webdav/mount
\"
>
\n
"
;
echo
" <dm:url>"
,
htmlspecialchars
(
$uri
,
ENT_NOQUOTES
,
'UTF-8'
),
"</dm:url>
\n
"
;
echo
"</dm:mount>"
;
$response
->
setBody
(
ob_get_clean
());
}
}
File Metadata
Details
Attached
Mime Type
text/x-php
Expires
Tue, Dec 24, 10:52 AM (16 h, 53 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
914676
Default Alt Text
Plugin.php (2 KB)
Attached To
rDAVCAL DokuWiki DAVCal PlugIn
Event Timeline
Log In to Comment