]> BookStack Code Mirror - bookstack/commitdiff
Merge branch 'search-owned-by-me' of git://github.com/benediktvolke/BookStack into...
authorDan Brown <redacted>
Mon, 15 Mar 2021 18:21:09 +0000 (18:21 +0000)
committerDan Brown <redacted>
Mon, 15 Mar 2021 18:21:09 +0000 (18:21 +0000)
1  2 
app/Entities/Tools/SearchRunner.php
tests/Entity/EntitySearchTest.php

index 86a57cf73dcf6cdbb4813f7735e03c424925140e,8c87fa23fd8d294399a7cbfd089e85e1a9fb2a3b..99634184a0f3421aa80512e3aa4aa66ed116a398
@@@ -280,13 -281,26 +280,24 @@@ class SearchRunne
  
      protected function filterUpdatedBy(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('updated_by', '=', $user->id);
          }
 -        $query->where('updated_by', '=', $input);
      }
  
+     protected function filterOwnedBy(EloquentBuilder $query, Entity $model, $input)
+     {
+         if (!is_numeric($input) && $input !== 'me') {
+             return;
+         }
+         if ($input === 'me') {
+             $input = user()->id;
+         }
+         $query->where('owned_by', '=', $input);
+     }
      protected function filterInName(EloquentBuilder $query, Entity $model, $input)
      {
          $query->where('name', 'like', '%' .$input. '%');
index 74e4c22a72e691ad440be5ed463adcc76f21f04e,fbfb9069707718367faa0a2499b2027cdb4c6263..9c963e105370253baf1f4a5a08bd3f0c2c911342
@@@ -138,12 -138,18 +139,18 @@@ class EntitySearchTest extends TestCas
          $page->created_by = $editorId;
          $page->save();
          $this->get('/search?term=' . urlencode('danzorbhsing {created_by:me}'))->assertSee($page->name);
 -        $this->get('/search?term=' . urlencode('danzorbhsing {created_by:'.$editorId.'}'))->assertSee($page->name);
 +        $this->get('/search?term=' . urlencode('danzorbhsing {created_by: '.$editorSlug.'}'))->assertSee($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);
          $page->updated_by = $editorId;
          $page->save();
          $this->get('/search?term=' . urlencode('danzorbhsing {updated_by:me}'))->assertSee($page->name);
-         $this->get('/search?term=' . urlencode('danzorbhsing {updated_by: '.$editorSlug.'}'))->assertSee($page->name);
 -        $this->get('/search?term=' . urlencode('danzorbhsing {updated_by:'.$editorId.'}'))->assertSee($page->name);
++        $this->get('/search?term=' . urlencode('danzorbhsing {updated_by:'.$editorSlug.'}'))->assertSee($page->name);
+         $this->get('/search?term=' . urlencode('danzorbhsing {owned_by:me}'))->assertDontSee($page->name);
+         $page->owned_by = $editorId;
+         $page->save();
+         $this->get('/search?term=' . urlencode('danzorbhsing {owned_by:me}'))->assertSee($page->name);
 -        $this->get('/search?term=' . urlencode('danzorbhsing {owned_by:'.$editorId.'}'))->assertSee($page->name);
++        $this->get('/search?term=' . urlencode('danzorbhsing {owned_by:'.$editorSlug.'}'))->assertSee($page->name);
  
          // Content filters
          $this->get('/search?term=' . urlencode('{in_name:danzorbhsing}'))->assertDontSee($page->name);