From 57019e170fa43635d02a8a32cd28020d8ddfadd4 Mon Sep 17 00:00:00 2001 From: Godfrey M Date: Tue, 14 Nov 2023 11:49:00 -0800 Subject: [PATCH 1/3] adds user location scope, still needs fine tuning --- app/Http/Controllers/Api/UsersController.php | 7 +++++-- app/Models/User.php | 17 +++++++++++++++++ 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/app/Http/Controllers/Api/UsersController.php b/app/Http/Controllers/Api/UsersController.php index 5a2cd7dcf1..33a58c2a5c 100644 --- a/app/Http/Controllers/Api/UsersController.php +++ b/app/Http/Controllers/Api/UsersController.php @@ -21,6 +21,7 @@ use Illuminate\Http\Request; use App\Http\Requests\ImageUploadRequest; use Illuminate\Support\Facades\Storage; use Illuminate\Support\Facades\Validator; +use Illuminate\Support\Facades\Log; class UsersController extends Controller { @@ -185,7 +186,9 @@ class UsersController extends Controller $users->where('autoassign_licenses', '=', $request->input('autoassign_licenses')); } - if ($request->filled('search')) { + if ($request->filled('location_id') != '') { + $users = $users->UserLocation($request->input('location_id'), $request->input('search')); + } else { $users = $users->TextSearch($request->input('search')); } @@ -530,7 +533,7 @@ class UsersController extends Controller try { Storage::disk('public')->delete('avatars/'.$user->avatar); } catch (\Exception $e) { - \Log::debug($e); + Log::debug($e); } } diff --git a/app/Models/User.php b/app/Models/User.php index 8011f94ff4..4d2bfcc868 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -787,5 +787,22 @@ class User extends SnipeModel implements AuthenticatableContract, AuthorizableCo return $this; + } + public function scopeUserLocation($query, $location, $search){ + + + return $query->where('location_id','=', $location) + ->where('first_name', 'LIKE', '%' . $search . '%') + ->orWhere('email', 'LIKE', '%' . $search . '%') + ->orWhere('first_name', 'LIKE', '%' . $search . '%') + ->orWhere('permissions', 'LIKE', '%' . $search . '%') + ->orWhere('country', 'LIKE', '%' . $search . '%') + ->orWhere('phone', 'LIKE', '%' . $search . '%') + ->orWhere('jobtitle', 'LIKE', '%' . $search . '%') + ->orWhere('employee_num', 'LIKE', '%' . $search . '%') + ->orWhere('username', 'LIKE', '%' . $search . '%'); + + + } } From f9baeefbaf9a9cd650aed81194a3c14e47492568 Mon Sep 17 00:00:00 2001 From: Godfrey M Date: Thu, 16 Nov 2023 11:14:42 -0800 Subject: [PATCH 2/3] allows to search full name --- app/Models/User.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/Models/User.php b/app/Models/User.php index 4d2bfcc868..e72053d06d 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -800,7 +800,9 @@ class User extends SnipeModel implements AuthenticatableContract, AuthorizableCo ->orWhere('phone', 'LIKE', '%' . $search . '%') ->orWhere('jobtitle', 'LIKE', '%' . $search . '%') ->orWhere('employee_num', 'LIKE', '%' . $search . '%') - ->orWhere('username', 'LIKE', '%' . $search . '%'); + ->orWhere('username', 'LIKE', '%' . $search . '%') + ->orwhereRaw('CONCAT(first_name," ",last_name) LIKE \''.$search.'%\''); + From 01f4aa018f963e8088aac47ef3d002ff8dcefa6a Mon Sep 17 00:00:00 2001 From: Godfrey M Date: Thu, 16 Nov 2023 11:20:14 -0800 Subject: [PATCH 3/3] fixed query --- app/Models/User.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Models/User.php b/app/Models/User.php index e72053d06d..c6d8d993a2 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -794,7 +794,7 @@ class User extends SnipeModel implements AuthenticatableContract, AuthorizableCo return $query->where('location_id','=', $location) ->where('first_name', 'LIKE', '%' . $search . '%') ->orWhere('email', 'LIKE', '%' . $search . '%') - ->orWhere('first_name', 'LIKE', '%' . $search . '%') + ->orWhere('last_name', 'LIKE', '%' . $search . '%') ->orWhere('permissions', 'LIKE', '%' . $search . '%') ->orWhere('country', 'LIKE', '%' . $search . '%') ->orWhere('phone', 'LIKE', '%' . $search . '%')