コード例 #1
0
ファイル: transport.php プロジェクト: jacomyma/GEXF-Atlas
 /**
  * Parses the UNLOCK request and returns a request object.
  *
  * This method is responsible for parsing the UNLOCK request. It retrieves
  * the current request URI in $path and the request body as $body.  The
  * return value, if no exception is thrown, is a valid {@link
  * ezcWebdavUnlockRequest} object.
  *
  * This method may be overwritten to adjust it to special client behaviour.
  * 
  * @param string $path 
  * @param string $body 
  * @return ezcWebdavUnlockRequest
  */
 protected function parseUnlockRequest($path, $body)
 {
     $request = new ezcWebdavUnlockRequest($path);
     $request->setHeaders(ezcWebdavServer::getInstance()->headerHandler->parseHeaders());
     $request->setHeader('Lock-Token', $this->headerHandler->parseLockTokenHeader());
     return $request;
 }
コード例 #2
0
ファイル: main.php プロジェクト: jacomyma/GEXF-Atlas
 /**
  * Callback for the hook ezcWebdavServer::receivedRequest().
  *
  * Parameters are:
  * - ezcWebdavRequest request
  *
  * Needs to react directly on:
  * - ezcWebdavLockRequest
  * - ezcWebdavUnlockRequest
  *
  * Needs to check if lock violations occur on:
  * - ezcWebdavCopyRequest
  * - ezcWebdavMoveRequest
  * - ezcWebdavMakeCollectionRequest
  * - ezcWebdavPropPatchRequest
  * - ezcWebdavPutRequest
  * 
  * @param ezcWebdavPluginParameters $params 
  * @return ezcWebdavResponse|null
  */
 public function receivedRequest(ezcWebdavPluginParameters $params)
 {
     $request = $params['request'];
     $requestClass = get_class($request);
     if (isset(ezcWebdavLockPlugin::$requestHandlingMap[$requestClass])) {
         // Set headers parsed by the lock plugin only.
         $request->setHeader('If', $this->headerHandler->parseIfHeader($request));
         $request->setHeader('Timeout', $this->headerHandler->parseTimeoutHeader($request));
         $request->setHeader('Lock-Token', $this->headerHandler->parseLockTokenHeader($request));
         $request->validateHeaders();
         $handlerClass = ezcWebdavLockPlugin::$requestHandlingMap[$requestClass];
         $this->handler = new $handlerClass(new ezcWebdavLockTools($this->options));
         if ($this->handler->needsBackendLock) {
             ezcWebdavServer::getInstance()->backend->lock($this->options->backendLockWaitTime, $this->options->backendLockTimeout);
         }
         $res = null;
         try {
             $res = $this->handler->receivedRequest($request);
         } catch (Exception $e) {
             if ($this->handler->needsBackendLock) {
                 ezcWebdavServer::getInstance()->backend->unlock();
             }
             throw $e;
         }
         return $res;
     }
     // return null
 }
コード例 #3
0
 /**
  * testParseTimeoutHeader 
  * 
  * @param mixed $content 
  * @param mixed $result 
  * @return void
  *
  * @dataProvider provideTimeoutHeaderData
  */
 public function testParseTimeoutHeader($content, $result)
 {
     $_SERVER['HTTP_TIMEOUT'] = $content;
     $handler = new ezcWebdavLockHeaderHandler();
     $this->assertEquals($result, $handler->parseTimeoutHeader());
 }