Merge branch 'fixes/full_name_search_user_selectlist' into develop

# Conflicts:
#	app/Http/Controllers/Api/UsersController.php
#	routes/api.php
This commit is contained in:
snipe 2019-03-05 20:57:10 -08:00
commit 6696685d0b
3 changed files with 25 additions and 2 deletions

5
.github/FUNDING.yml vendored Normal file
View file

@ -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

View file

@ -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').'%');
}

View file

@ -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.
*