]> source.dussan.org Git - nextcloud-server.git/commitdiff
refactor: adjust to unexposed searchBySystemTag 39232/head
authorArthur Schiwon <blizzz@arthur-schiwon.de>
Thu, 6 Jul 2023 20:33:20 +0000 (22:33 +0200)
committerArthur Schiwon <blizzz@arthur-schiwon.de>
Fri, 7 Jul 2023 14:58:07 +0000 (16:58 +0200)
- in this backport we have to drop the breaking addition in
  \OCP\Files\Folder
- this requires adjustments in check for the existance of the method but
  also in testing
- another change in \OCP\SystemTag\ISystemTagManager can be applied as
  this interface is not implemented elsewhere

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
apps/dav/lib/Connector/Sabre/FilesReportPlugin.php
apps/dav/tests/unit/Connector/Sabre/FilesReportPluginTest.php
lib/private/Files/Node/LazyFolder.php
lib/public/SystemTag/ISystemTagManager.php

index 4b26d83777925f5019e8572c4375033b899c0971..1c6727e68ca447df4a2a51672e3d8110f14cbfb7 100644 (file)
@@ -336,7 +336,7 @@ class FilesReportPlugin extends ServerPlugin {
 
                // type check to ensure searchBySystemTag is available, it is not
                // exposed in API yet
-               if (!empty($systemTagIds)) {
+               if (!empty($systemTagIds) && method_exists($this->userFolder, 'searchBySystemTag')) {
                        $tags = $this->tagManager->getTagsByIds($systemTagIds, $this->userSession->getUser());
 
                        // For we run DB queries per tag and require intersection, we cannot apply limit and offset for DB queries on multi tag search.
index f1f1cc8b27f5e128a45b5c7b18153b252c477212..2bbe7bef6defca75314c2f7515468ae4e6630ba1 100644 (file)
@@ -114,6 +114,8 @@ class FilesReportPluginTest extends \Test\TestCase {
 
                $this->userFolder = $this->getMockBuilder(Folder::class)
                        ->disableOriginalConstructor()
+                       ->addMethods(['searchBySystemTag'])
+                       ->onlyMethods(get_class_methods(Folder::class))
                        ->getMock();
 
                $this->previewManager = $this->getMockBuilder(IPreview::class)
index 1b4bfe5b83d5b3edec4c21da503f8952539cdab2..484923dfdbe6ba20c835ccf7493352de3cc0d6b5 100644 (file)
@@ -448,6 +448,10 @@ class LazyFolder implements \OCP\Files\Folder {
                return $this->__call(__FUNCTION__, func_get_args());
        }
 
+       public function searchBySystemTag(string $tagName, string $userId, int $limit = 0, int $offset = 0): array {
+               return $this->__call(__FUNCTION__, func_get_args());
+       }
+
        /**
         * @inheritDoc
         */
index 211b66e33a3602a7c0f4535630203bc4ff6982e4..9d775d6e1e58a2a5bc56a22bcd25f56d31d6238f 100644 (file)
@@ -46,7 +46,7 @@ interface ISystemTagManager {
         * @throws TagNotFoundException if at least one given tag ids did no exist
         *                      The message contains a json_encoded array of the ids that could not be found
         *
-        * @since 9.0.0, optional parameter $user added in 28.0.0
+        * @since 9.0.0, optional parameter $user added in 26.0.4
         */
        public function getTagsByIds($tagIds, ?IUser $user = null): array;