public function removeLock(LockInfoInterface $lock) { $this->conn->delete('#__webdav_lock', ['token' => $lock->getToken()->toBinary()]); }
protected function createLockResponse($status, LockInfoInterface $lock, Uri $baseUri, $lockHeader = true) { $response = new HttpResponse($status); $response->setHeader('Content-Type', 'application/xml; charset="utf-8"'); if ($lockHeader) { $response->setHeader('Lock-Token', sprintf('<urn:webdav:lock:%s>', $lock->getToken())); } $response->setEntity(function (StreamInterface $stream) use($lock, $baseUri) { $xml = new XmlStreamWriter(new StreamWrapper($stream)); $xml->registerNamespace(WebDav::NS_DAV, 'D'); $xml->startDocument(); $xml->startElement(WebDav::NS_DAV, 'prop'); $xml->startElement(WebDav::NS_DAV, 'lockdiscovery'); $lock->toXml($xml, $baseUri); $xml->endElement(); // D:lockdiscovery $xml->endElement(); // D:prop $xml->endDocument(); $xml->flush(); }); return $response; }
public function removeLock(LockInfoInterface $lock) { $sql = ' DELETE FROM "file_locks" WHERE "id" = :token AND "expires" > :time '; $stmt = $this->lockStore->prepare($sql); $stmt->bindValue('token', (string) $lock->getToken()); $stmt->bindValue('time', time()); $stmt->execute(); }