mirror of
https://github.com/OpenXE-org/OpenXE.git
synced 2024-11-15 20:47:15 +01:00
61 lines
1.5 KiB
PHP
61 lines
1.5 KiB
PHP
|
<?php
|
||
|
|
||
|
namespace Sabre\DAV\Browser;
|
||
|
|
||
|
use Sabre\DAV;
|
||
|
use Sabre\HTTP\RequestInterface;
|
||
|
use Sabre\HTTP\ResponseInterface;
|
||
|
|
||
|
/**
|
||
|
* This is a simple plugin that will map any GET request for non-files to
|
||
|
* PROPFIND allprops-requests.
|
||
|
*
|
||
|
* This should allow easy debugging of PROPFIND
|
||
|
*
|
||
|
* @copyright Copyright (C) fruux GmbH (https://fruux.com/)
|
||
|
* @author Evert Pot (http://evertpot.com/)
|
||
|
* @license http://sabre.io/license/ Modified BSD License
|
||
|
*/
|
||
|
class MapGetToPropFind extends DAV\ServerPlugin {
|
||
|
|
||
|
/**
|
||
|
* reference to server class
|
||
|
*
|
||
|
* @var DAV\Server
|
||
|
*/
|
||
|
protected $server;
|
||
|
|
||
|
/**
|
||
|
* Initializes the plugin and subscribes to events
|
||
|
*
|
||
|
* @param DAV\Server $server
|
||
|
* @return void
|
||
|
*/
|
||
|
function initialize(DAV\Server $server) {
|
||
|
|
||
|
$this->server = $server;
|
||
|
$this->server->on('method:GET', [$this, 'httpGet'], 90);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* This method intercepts GET requests to non-files, and changes it into an HTTP PROPFIND request
|
||
|
*
|
||
|
* @param RequestInterface $request
|
||
|
* @param ResponseInterface $response
|
||
|
* @return bool
|
||
|
*/
|
||
|
function httpGet(RequestInterface $request, ResponseInterface $response) {
|
||
|
|
||
|
$node = $this->server->tree->getNodeForPath($request->getPath());
|
||
|
if ($node instanceof DAV\IFile) return;
|
||
|
|
||
|
$subRequest = clone $request;
|
||
|
$subRequest->setMethod('PROPFIND');
|
||
|
|
||
|
$this->server->invokeMethod($subRequest, $response);
|
||
|
return false;
|
||
|
|
||
|
}
|
||
|
|
||
|
}
|