Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/server.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoeland Jago Douma <rullzer@users.noreply.github.com>2019-10-29 13:18:04 +0300
committerGitHub <noreply@github.com>2019-10-29 13:18:04 +0300
commited8f3df9d7ad645559491f23b755140b0ed219de (patch)
tree9d6863ffdeaf6d2035fc1c3a0e7137e6d7b2d323
parent7481365698e1dfc206b299ccd8f900afbf6101e6 (diff)
parent57d84ce7aa39379ecd1fef5208a2bb43e60dae15 (diff)
Merge pull request #17733 from nextcloud/backport/17730/stable15
[stable15] Fix DAV mimetype search
-rw-r--r--lib/private/Files/Cache/QuerySearchHelper.php11
1 files changed, 7 insertions, 4 deletions
diff --git a/lib/private/Files/Cache/QuerySearchHelper.php b/lib/private/Files/Cache/QuerySearchHelper.php
index ac64ba5c592..2d9d8f374f7 100644
--- a/lib/private/Files/Cache/QuerySearchHelper.php
+++ b/lib/private/Files/Cache/QuerySearchHelper.php
@@ -136,16 +136,19 @@ class QuerySearchHelper {
$type = $operator->getType();
if ($field === 'mimetype') {
if ($operator->getType() === ISearchComparison::COMPARE_EQUAL) {
- $value = $this->mimetypeLoader->getId($value);
+ $value = (int)$this->mimetypeLoader->getId($value);
} else if ($operator->getType() === ISearchComparison::COMPARE_LIKE) {
// transform "mimetype='foo/%'" to "mimepart='foo'"
if (preg_match('|(.+)/%|', $value, $matches)) {
$field = 'mimepart';
- $value = $this->mimetypeLoader->getId($matches[1]);
+ $value = (int)$this->mimetypeLoader->getId($matches[1]);
$type = ISearchComparison::COMPARE_EQUAL;
- }
- if (strpos($value, '%') !== false) {
+ } else if (strpos($value, '%') !== false) {
throw new \InvalidArgumentException('Unsupported query value for mimetype: ' . $value . ', only values in the format "mime/type" or "mime/%" are supported');
+ } else {
+ $field = 'mimetype';
+ $value = (int)$this->mimetypeLoader->getId($value);
+ $type = ISearchComparison::COMPARE_EQUAL;
}
}
} else if ($field === 'favorite') {