diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml new file mode 100644 index 000000000..f60dda12f --- /dev/null +++ b/.github/FUNDING.yml @@ -0,0 +1,5 @@ +# You can add one username per supported platform and one custom link +# patreon: # Replace with your Patreon username +# open_collective: # Replace with your Open Collective username +# ko_fi: # Replace with your Ko-fi username +custom: https://snipeitapp.com/donate diff --git a/app/Http/Controllers/Api/UsersController.php b/app/Http/Controllers/Api/UsersController.php index 7dbe88804..c26d67694 100644 --- a/app/Http/Controllers/Api/UsersController.php +++ b/app/Http/Controllers/Api/UsersController.php @@ -150,8 +150,7 @@ class UsersController extends Controller $users = Company::scopeCompanyables($users); if ($request->filled('search')) { - $users = $users->where('first_name', 'LIKE', '%'.$request->get('search').'%') - ->orWhere('last_name', 'LIKE', '%'.$request->get('search').'%') + $users = $users->SimpleNameSearch($request->get('search')) ->orWhere('username', 'LIKE', '%'.$request->get('search').'%') ->orWhere('employee_num', 'LIKE', '%'.$request->get('search').'%'); } diff --git a/app/Models/User.php b/app/Models/User.php index 8da80c710..7684e1460 100755 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -551,6 +551,25 @@ class User extends SnipeModel implements AuthenticatableContract, AuthorizableCo return json_decode($this->permissions, true); } + /** + * Query builder scope to search user by name with spaces in it. + * We don't use the advancedTextSearch() scope because that searches + * all of the relations as well, which is more than what we need. + * + * @param \Illuminate\Database\Query\Builder $query Query builder instance + * @param array $terms The search terms + * @return \Illuminate\Database\Query\Builder + */ + public function scopeSimpleNameSearch($query, $search) { + + $query = $query->where('first_name', 'LIKE', '%'.$search.'%') + ->orWhere('last_name', 'LIKE', '%'.$search.'%') + ->orWhereRaw('CONCAT('.DB::getTablePrefix().'users.first_name," ",'.DB::getTablePrefix().'users.last_name) LIKE ?', ["%$search%", "%$search%"]); + return $query; + } + + + /** * Run additional, advanced searches. *