]> BookStack Code Mirror - bookstack/commitdiff
Amended owned by search filter to use slugs
authorDan Brown <redacted>
Mon, 15 Mar 2021 18:27:03 +0000 (18:27 +0000)
committerDan Brown <redacted>
Mon, 15 Mar 2021 18:27:03 +0000 (18:27 +0000)
app/Entities/Tools/SearchRunner.php
tests/Entity/EntitySearchTest.php

index 99634184a0f3421aa80512e3aa4aa66ed116a398..fc127f9068a49075d8cd14c2ad0e87968f96dd5b 100644 (file)
@@ -289,13 +289,11 @@ class SearchRunner
 
     protected function filterOwnedBy(EloquentBuilder $query, Entity $model, $input)
     {
-        if (!is_numeric($input) && $input !== 'me') {
-            return;
-        }
-        if ($input === 'me') {
-            $input = user()->id;
+        $userSlug = $input === 'me' ? user()->slug : trim($input);
+        $user = User::query()->where('slug', '=', $userSlug)->first(['id']);
+        if ($user) {
+            $query->where('owned_by', '=', $user->id);
         }
-        $query->where('owned_by', '=', $input);
     }
 
     protected function filterInName(EloquentBuilder $query, Entity $model, $input)
index 9c963e105370253baf1f4a5a08bd3f0c2c911342..6b53b2cb61705cec2391217737ee83ee6a475a10 100644 (file)
@@ -135,7 +135,7 @@ class EntitySearchTest extends TestCase
         $this->get('/search?term=' . urlencode('danzorbhsing {created_by:me}'))->assertDontSee($page->name);
         $this->get('/search?term=' . urlencode('danzorbhsing {updated_by:me}'))->assertDontSee($page->name);
         $this->get('/search?term=' . urlencode('danzorbhsing {owned_by:me}'))->assertDontSee($page->name);
-        $this->get('/search?term=' . urlencode('danzorbhsing {updated_by:'.$editorId.'}'))->assertDontSee($page->name);
+        $this->get('/search?term=' . urlencode('danzorbhsing {updated_by:'.$editorSlug.'}'))->assertDontSee($page->name);
         $page->created_by = $editorId;
         $page->save();
         $this->get('/search?term=' . urlencode('danzorbhsing {created_by:me}'))->assertSee($page->name);