From 963e365da4242de4f12bbe34dd67a5eeb060e82d Mon Sep 17 00:00:00 2001 From: Matias Griese Date: Fri, 15 Nov 2019 12:08:30 +0200 Subject: [PATCH] Imroved UserIndex:find() to only search user if query isn't empty --- .../src/Grav/Common/Flex/Users/UserIndex.php | 34 ++++++++++--------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/system/src/Grav/Common/Flex/Users/UserIndex.php b/system/src/Grav/Common/Flex/Users/UserIndex.php index 4e23bacc9..49728c670 100644 --- a/system/src/Grav/Common/Flex/Users/UserIndex.php +++ b/system/src/Grav/Common/Flex/Users/UserIndex.php @@ -80,22 +80,24 @@ class UserIndex extends FlexIndex */ public function find($query, $fields = ['username', 'email']): UserInterface { - foreach ((array)$fields as $field) { - if ($field === 'key') { - $user = $this->get($query); - } elseif ($field === 'storage_key') { - $user = $this->withKeyField('storage_key')->get($query); - } elseif ($field === 'flex_key') { - $user = $this->withKeyField('flex_key')->get($query); - } elseif ($field === 'email') { - $user = $this->withKeyField('email')->get($query); - } elseif ($field === 'username') { - $user = $this->get(mb_strtolower($query)); - } else { - $user = $this->__call('find', [$query, $field]); - } - if ($user) { - return $user; + if (is_string($query) && $query !== '') { + foreach ((array)$fields as $field) { + if ($field === 'key') { + $user = $this->get($query); + } elseif ($field === 'storage_key') { + $user = $this->withKeyField('storage_key')->get($query); + } elseif ($field === 'flex_key') { + $user = $this->withKeyField('flex_key')->get($query); + } elseif ($field === 'email') { + $user = $this->withKeyField('email')->get($query); + } elseif ($field === 'username') { + $user = $this->get(mb_strtolower($query)); + } else { + $user = $this->__call('find', [$query, $field]); + } + if ($user) { + return $user; + } } }