Skip to content

Commit 7c207d0

Browse files
authored
Merge pull request #17732 from nextcloud/backport/17730/stable16
[stable16] Fix DAV mimetype search
2 parents a7de52e + 3ce9f00 commit 7c207d0

File tree

1 file changed

+7
-4
lines changed

1 file changed

+7
-4
lines changed

lib/private/Files/Cache/QuerySearchHelper.php

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -136,16 +136,19 @@ private function getOperatorFieldAndValue(ISearchComparison $operator) {
136136
$type = $operator->getType();
137137
if ($field === 'mimetype') {
138138
if ($operator->getType() === ISearchComparison::COMPARE_EQUAL) {
139-
$value = $this->mimetypeLoader->getId($value);
139+
$value = (int)$this->mimetypeLoader->getId($value);
140140
} else if ($operator->getType() === ISearchComparison::COMPARE_LIKE) {
141141
// transform "mimetype='foo/%'" to "mimepart='foo'"
142142
if (preg_match('|(.+)/%|', $value, $matches)) {
143143
$field = 'mimepart';
144-
$value = $this->mimetypeLoader->getId($matches[1]);
144+
$value = (int)$this->mimetypeLoader->getId($matches[1]);
145145
$type = ISearchComparison::COMPARE_EQUAL;
146-
}
147-
if (strpos($value, '%') !== false) {
146+
} else if (strpos($value, '%') !== false) {
148147
throw new \InvalidArgumentException('Unsupported query value for mimetype: ' . $value . ', only values in the format "mime/type" or "mime/%" are supported');
148+
} else {
149+
$field = 'mimetype';
150+
$value = (int)$this->mimetypeLoader->getId($value);
151+
$type = ISearchComparison::COMPARE_EQUAL;
149152
}
150153
}
151154
} else if ($field === 'favorite') {

0 commit comments

Comments
 (0)