Blame view
sources/3rdparty/sabre/dav/lib/Sabre/DAV/Property/LockDiscovery.php
2.95 KB
|
03e52840d
|
1 |
<?php |
|
6d9380f96
|
2 3 4 |
namespace Sabre\DAV\Property; use Sabre\DAV; |
|
03e52840d
|
5 6 7 8 9 |
/**
* Represents {DAV:}lockdiscovery property
*
* This property contains all the open locks on a given resource
*
|
|
6d9380f96
|
10 11 12 |
* @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
|
13 |
*/ |
|
6d9380f96
|
14 |
class LockDiscovery extends DAV\Property {
|
|
03e52840d
|
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
/**
* locks
*
* @var array
*/
public $locks;
/**
* Should we show the locktoken as well?
*
* @var bool
*/
public $revealLockToken;
/**
* Hides the {DAV:}lockroot element from the response.
*
* It was reported that showing the lockroot in the response can break
* Office 2000 compatibility.
*/
static public $hideLockRoot = false;
/**
* __construct
*
* @param array $locks
* @param bool $revealLockToken
*/
public function __construct($locks, $revealLockToken = false) {
$this->locks = $locks;
$this->revealLockToken = $revealLockToken;
}
/**
* serialize
*
|
|
6d9380f96
|
54 55 |
* @param DAV\Server $server
* @param \DOMElement $prop
|
|
03e52840d
|
56 57 |
* @return void
*/
|
|
6d9380f96
|
58 |
public function serialize(DAV\Server $server, \DOMElement $prop) {
|
|
03e52840d
|
59 60 61 62 63 64 65 66 67 68 |
$doc = $prop->ownerDocument;
foreach($this->locks as $lock) {
$activeLock = $doc->createElementNS('DAV:','d:activelock');
$prop->appendChild($activeLock);
$lockScope = $doc->createElementNS('DAV:','d:lockscope');
$activeLock->appendChild($lockScope);
|
|
6d9380f96
|
69 |
$lockScope->appendChild($doc->createElementNS('DAV:','d:' . ($lock->scope==DAV\Locks\LockInfo::EXCLUSIVE?'exclusive':'shared')));
|
|
03e52840d
|
70 71 72 73 74 75 76 77 78 79 80 81 82 83 |
$lockType = $doc->createElementNS('DAV:','d:locktype');
$activeLock->appendChild($lockType);
$lockType->appendChild($doc->createElementNS('DAV:','d:write'));
/* {DAV:}lockroot */
if (!self::$hideLockRoot) {
$lockRoot = $doc->createElementNS('DAV:','d:lockroot');
$activeLock->appendChild($lockRoot);
$href = $doc->createElementNS('DAV:','d:href');
$href->appendChild($doc->createTextNode($server->getBaseUri() . $lock->uri));
$lockRoot->appendChild($href);
}
|
|
6d9380f96
|
84 |
$activeLock->appendChild($doc->createElementNS('DAV:','d:depth',($lock->depth == DAV\Server::DEPTH_INFINITY?'infinity':$lock->depth)));
|
|
03e52840d
|
85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 |
$activeLock->appendChild($doc->createElementNS('DAV:','d:timeout','Second-' . $lock->timeout));
if ($this->revealLockToken) {
$lockToken = $doc->createElementNS('DAV:','d:locktoken');
$activeLock->appendChild($lockToken);
$lockToken->appendChild($doc->createElementNS('DAV:','d:href','opaquelocktoken:' . $lock->token));
}
$activeLock->appendChild($doc->createElementNS('DAV:','d:owner',$lock->owner));
}
}
}
|