Blame view

sources/3rdparty/sabre/dav/lib/Sabre/DAV/Browser/MapGetToPropFind.php 1.33 KB
03e52840d   Kload   Init
1
  <?php
6d9380f96   Cédric Dupont   Update sources OC...
2
3
4
  namespace Sabre\DAV\Browser;
  
  use Sabre\DAV;
03e52840d   Kload   Init
5
6
7
8
9
10
  /**
   * 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
   *
6d9380f96   Cédric Dupont   Update sources OC...
11
12
13
   * @copyright Copyright (C) 2007-2014 fruux GmbH (https://fruux.com/).
   * @author Evert Pot (http://evertpot.com/)
   * @license http://sabre.io/license/ Modified BSD License
03e52840d   Kload   Init
14
   */
6d9380f96   Cédric Dupont   Update sources OC...
15
  class MapGetToPropFind extends DAV\ServerPlugin {
03e52840d   Kload   Init
16
17
18
19
  
      /**
       * reference to server class
       *
6d9380f96   Cédric Dupont   Update sources OC...
20
       * @var Sabre\DAV\Server
03e52840d   Kload   Init
21
22
23
24
25
26
       */
      protected $server;
  
      /**
       * Initializes the plugin and subscribes to events
       *
6d9380f96   Cédric Dupont   Update sources OC...
27
       * @param DAV\Server $server
03e52840d   Kload   Init
28
29
       * @return void
       */
6d9380f96   Cédric Dupont   Update sources OC...
30
      public function initialize(DAV\Server $server) {
03e52840d   Kload   Init
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
  
          $this->server = $server;
          $this->server->subscribeEvent('beforeMethod',array($this,'httpGetInterceptor'));
      }
  
      /**
       * This method intercepts GET requests to non-files, and changes it into an HTTP PROPFIND request
       *
       * @param string $method
       * @param string $uri
       * @return bool
       */
      public function httpGetInterceptor($method, $uri) {
  
          if ($method!='GET') return true;
  
          $node = $this->server->tree->getNodeForPath($uri);
6d9380f96   Cédric Dupont   Update sources OC...
48
          if ($node instanceof DAV\IFile) return;
03e52840d   Kload   Init
49
50
51
52
53
54
55
  
          $this->server->invokeMethod('PROPFIND',$uri);
          return false;
  
      }
  
  }