Browse Source

require at least one param or prop filter element

Signed-off-by: Georg Ehrke <developer@georgehrke.com>
tags/v12.0.0beta1
Georg Ehrke 7 years ago
parent
commit
c76633bb8a
No account linked to committer's email address

+ 5
- 1
apps/dav/lib/CalDAV/Search/Xml/Request/CalendarSearchReport.php View File

@@ -143,7 +143,7 @@ class CalendarSearchReport implements XmlDeserializable {
throw new BadRequest('The {' . SearchPlugin::NS_Nextcloud . '}filter element is required for this request');
}

$propsOrParamsDefined = (!empty($newProps['filters']['props']) || !empty($newProps['filters']));
$propsOrParamsDefined = (!empty($newProps['filters']['props']) || !empty($newProps['filters']['params']));
$noCompsDefined = empty($newProps['filters']['comps']);
if ($propsOrParamsDefined && $noCompsDefined) {
throw new BadRequest('{' . SearchPlugin::NS_Nextcloud . '}prop-filter or {' . SearchPlugin::NS_Nextcloud . '}param-filter given without any {' . SearchPlugin::NS_Nextcloud . '}comp-filter');
@@ -153,6 +153,10 @@ class CalendarSearchReport implements XmlDeserializable {
throw new BadRequest('{' . SearchPlugin::NS_Nextcloud . '}search-term is required for this request');
}

if (empty($newProps['filters']['props']) && empty($newProps['filters']['params'])) {
throw new BadRequest('At least one{' . SearchPlugin::NS_Nextcloud . '}prop-filter or {' . SearchPlugin::NS_Nextcloud . '}param-filter is required for this request');
}


$obj = new self();
foreach ($newProps as $key => $value) {

+ 4
- 0
apps/dav/tests/unit/CalDAV/Search/Request/CalendarSearchReportTest.php View File

@@ -202,6 +202,10 @@ XML;
$result = $this->parse($xml);
}

/**
* @expectedException \Sabre\DAV\Exception\BadRequest
* @expectedExceptionMessage At least one{http://nextcloud.com/ns}prop-filter or {http://nextcloud.com/ns}param-filter is required for this request
*/
public function testCompOnly() {
$xml = <<<XML
<?xml version="1.0" encoding="UTF-8"?>

Loading…
Cancel
Save