ucb: webdav-curl: fix getting DAV:lockdiscovery property
commit b4576f3da4
"tdf#82744: fix WebDAV
lock/unlock behaviour - part 3" added a call to get the
DAV:lockdiscovery property.
But WebDAVResponseParser puts lock related properties into a separate
return value maResult_Lock that is only returned for LOCK requests.
Just add it as a normal property too, then PROPFIND can get it, and
the dialog in SfxMedium::LockOrigFileOnDemand() no longer displays
"Unknown user".
Change-Id: Icee920588ea40b6e203b18287d75484528cfdebb
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/133185
Tested-by: Jenkins
Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
This commit is contained in:
@@ -22,11 +22,13 @@
|
|||||||
#include "DAVProperties.hxx"
|
#include "DAVProperties.hxx"
|
||||||
#include "UCBDeadPropertyValue.hxx"
|
#include "UCBDeadPropertyValue.hxx"
|
||||||
|
|
||||||
#include <com/sun/star/xml/sax/XDocumentHandler.hpp>
|
#include <comphelper/processfactory.hxx>
|
||||||
|
#include <comphelper/sequence.hxx>
|
||||||
|
|
||||||
#include <cppuhelper/implbase.hxx>
|
#include <cppuhelper/implbase.hxx>
|
||||||
#include <com/sun/star/xml/sax/Parser.hpp>
|
#include <com/sun/star/xml/sax/Parser.hpp>
|
||||||
#include <com/sun/star/xml/sax/InputSource.hpp>
|
#include <com/sun/star/xml/sax/InputSource.hpp>
|
||||||
#include <comphelper/processfactory.hxx>
|
#include <com/sun/star/xml/sax/XDocumentHandler.hpp>
|
||||||
#include <com/sun/star/ucb/LockEntry.hpp>
|
#include <com/sun/star/ucb/LockEntry.hpp>
|
||||||
#include <com/sun/star/ucb/LockScope.hpp>
|
#include <com/sun/star/ucb/LockScope.hpp>
|
||||||
#include <com/sun/star/ucb/LockType.hpp>
|
#include <com/sun/star/ucb/LockType.hpp>
|
||||||
@@ -76,6 +78,7 @@ namespace
|
|||||||
{
|
{
|
||||||
WebDAVName_unknown = 0,
|
WebDAVName_unknown = 0,
|
||||||
WebDAVName_activelock,
|
WebDAVName_activelock,
|
||||||
|
WebDAVName_lockdiscovery,
|
||||||
WebDAVName_multistatus,
|
WebDAVName_multistatus,
|
||||||
WebDAVName_response,
|
WebDAVName_response,
|
||||||
WebDAVName_href,
|
WebDAVName_href,
|
||||||
@@ -115,6 +118,7 @@ namespace
|
|||||||
if(aWebDAVNameMapperList.empty())
|
if(aWebDAVNameMapperList.empty())
|
||||||
{
|
{
|
||||||
aWebDAVNameMapperList.insert(WebDAVNameValueType(OUString("activelock"), WebDAVName_activelock));
|
aWebDAVNameMapperList.insert(WebDAVNameValueType(OUString("activelock"), WebDAVName_activelock));
|
||||||
|
aWebDAVNameMapperList.insert(WebDAVNameValueType(OUString("lockdiscovery"), WebDAVName_lockdiscovery));
|
||||||
aWebDAVNameMapperList.insert(WebDAVNameValueType(OUString("multistatus"), WebDAVName_multistatus));
|
aWebDAVNameMapperList.insert(WebDAVNameValueType(OUString("multistatus"), WebDAVName_multistatus));
|
||||||
aWebDAVNameMapperList.insert(WebDAVNameValueType(OUString("response"), WebDAVName_response));
|
aWebDAVNameMapperList.insert(WebDAVNameValueType(OUString("response"), WebDAVName_response));
|
||||||
aWebDAVNameMapperList.insert(WebDAVNameValueType(OUString("href"), WebDAVName_href));
|
aWebDAVNameMapperList.insert(WebDAVNameValueType(OUString("href"), WebDAVName_href));
|
||||||
@@ -752,6 +756,20 @@ namespace
|
|||||||
maResult_Lock.push_back(maLock);
|
maResult_Lock.push_back(maLock);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case WebDAVName_lockdiscovery:
|
||||||
|
{
|
||||||
|
// lockdiscovery may be requested via PROPFIND,
|
||||||
|
// in addition to LOCK! so return it 2 ways
|
||||||
|
if (isCollectingProperties())
|
||||||
|
{
|
||||||
|
http_dav_ucp::DAVPropertyValue aDAVPropertyValue;
|
||||||
|
|
||||||
|
aDAVPropertyValue.Name = "DAV:lockdiscovery";
|
||||||
|
aDAVPropertyValue.Value <<= ::comphelper::containerToSequence(maResult_Lock);
|
||||||
|
maPropStatProperties.push_back(aDAVPropertyValue);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
case WebDAVName_propstat:
|
case WebDAVName_propstat:
|
||||||
{
|
{
|
||||||
// propstat end, check status
|
// propstat end, check status
|
||||||
|
Reference in New Issue
Block a user