From fb52038e7ceadac9477244a27e4d458dfbbbb6a4 Mon Sep 17 00:00:00 2001 From: Godfrey M Date: Tue, 1 Aug 2023 09:39:58 -0700 Subject: [PATCH 1/7] applies a check if a sync field is designated --- app/Console/Commands/LdapSync.php | 31 ++++++++++++++++++++++++++----- 1 file changed, 26 insertions(+), 5 deletions(-) diff --git a/app/Console/Commands/LdapSync.php b/app/Console/Commands/LdapSync.php index f77f5f8c48..3b497a45b0 100755 --- a/app/Console/Commands/LdapSync.php +++ b/app/Console/Commands/LdapSync.php @@ -234,17 +234,37 @@ class LdapSync extends Command $item['createorupdate'] = 'created'; } - $user->first_name = $item['firstname']; - $user->last_name = $item['lastname']; + //If a sync option is not filled in on the LDAP settings don't populate the user field + if($ldap_result_username != null){ $user->username = $item['username']; - $user->email = $item['email']; + } + if($ldap_result_last_name != null){ + $user->last_name = $item['lastname']; + } + if($ldap_result_first_name != null){ + $user->first_name = $item['firstname']; + } + if($ldap_result_active_flag != null){ + } + if($ldap_result_emp_num != null){ $user->employee_num = e($item['employee_number']); + } + if($ldap_result_email != null){ + $user->email = $item['email']; + } + if($ldap_result_phone != null){ $user->phone = $item['telephone']; + } + if($ldap_result_jobtitle != null){ $user->jobtitle = $item['jobtitle']; + } + if($ldap_result_country != null){ $user->country = $item['country']; + } + if($ldap_result_dept != null){ $user->department_id = $department->id; - $user->location_id = $location->id; - + } + if($ldap_result_manager != null){ if($item['manager'] != null) { // Check Cache first if (isset($manager_cache[$item['manager']])) { @@ -284,6 +304,7 @@ class LdapSync extends Command } } + } // Sync activated state for Active Directory. if ( !empty($ldap_result_active_flag)) { // IF we have an 'active' flag set.... From 8a24a474758276589333b7f8a17ed2057c0d6baa Mon Sep 17 00:00:00 2001 From: Godfrey M Date: Tue, 1 Aug 2023 09:45:48 -0700 Subject: [PATCH 2/7] removed unnecessary code --- app/Console/Commands/LdapSync.php | 2 -- 1 file changed, 2 deletions(-) diff --git a/app/Console/Commands/LdapSync.php b/app/Console/Commands/LdapSync.php index 3b497a45b0..136a81f62e 100755 --- a/app/Console/Commands/LdapSync.php +++ b/app/Console/Commands/LdapSync.php @@ -244,8 +244,6 @@ class LdapSync extends Command if($ldap_result_first_name != null){ $user->first_name = $item['firstname']; } - if($ldap_result_active_flag != null){ - } if($ldap_result_emp_num != null){ $user->employee_num = e($item['employee_number']); } From 993918f47c7a04fbe2ad39326d0848ebcd1369c2 Mon Sep 17 00:00:00 2001 From: Ivan Nieto Vivanco Date: Tue, 15 Aug 2023 15:31:36 -0600 Subject: [PATCH 3/7] Add query to search into the per-component view --- .../Controllers/Api/ComponentsController.php | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/app/Http/Controllers/Api/ComponentsController.php b/app/Http/Controllers/Api/ComponentsController.php index 4806caf8a3..d41459d2a7 100644 --- a/app/Http/Controllers/Api/ComponentsController.php +++ b/app/Http/Controllers/Api/ComponentsController.php @@ -13,6 +13,7 @@ use App\Events\CheckoutableCheckedIn; use App\Events\ComponentCheckedIn; use App\Models\Asset; use Illuminate\Support\Facades\Validator; +use Illuminate\Database\Query\Builder; class ComponentsController extends Controller { @@ -210,6 +211,21 @@ class ComponentsController extends Controller $total = $assets->count(); $assets = $assets->skip($offset)->take($limit)->get(); + if ($request->filled('search')) { + $assets = $component->assets() + ->where(function ($query) use ($request) { + $search_str = '%' . $request->input('search') . '%'; + $query->where('name', 'like', $search_str) + ->orWhereIn('model_id', function (Builder $query) use ($request) { + $search_str = '%' . $request->input('search') . '%'; + $query->selectRaw('id')->from('models')->where('name', 'like', $search_str); + }) + ->orWhere('asset_tag', 'like', $search_str); + }) + ->get(); + $total = $assets->count(); + } + return (new ComponentsTransformer)->transformCheckedoutComponents($assets, $total); } From 92df32dfaaffdd2fafd96f04f65b95e66be1eccc Mon Sep 17 00:00:00 2001 From: Ivan Nieto Vivanco Date: Tue, 15 Aug 2023 21:10:48 -0600 Subject: [PATCH 4/7] Move a couple assignation of variables inside an else to only execute once --- .../Controllers/Api/ComponentsController.php | 28 ++++++++++--------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/app/Http/Controllers/Api/ComponentsController.php b/app/Http/Controllers/Api/ComponentsController.php index d41459d2a7..a6e3e379e3 100644 --- a/app/Http/Controllers/Api/ComponentsController.php +++ b/app/Http/Controllers/Api/ComponentsController.php @@ -204,26 +204,28 @@ class ComponentsController extends Controller $this->authorize('view', \App\Models\Asset::class); $component = Component::findOrFail($id); - $assets = $component->assets(); - + $offset = request('offset', 0); $limit = $request->input('limit', 50); - $total = $assets->count(); - $assets = $assets->skip($offset)->take($limit)->get(); - + if ($request->filled('search')) { $assets = $component->assets() - ->where(function ($query) use ($request) { - $search_str = '%' . $request->input('search') . '%'; - $query->where('name', 'like', $search_str) - ->orWhereIn('model_id', function (Builder $query) use ($request) { - $search_str = '%' . $request->input('search') . '%'; - $query->selectRaw('id')->from('models')->where('name', 'like', $search_str); - }) - ->orWhere('asset_tag', 'like', $search_str); + ->where(function ($query) use ($request) { + $search_str = '%' . $request->input('search') . '%'; + $query->where('name', 'like', $search_str) + ->orWhereIn('model_id', function (Builder $query) use ($request) { + $search_str = '%' . $request->input('search') . '%'; + $query->selectRaw('id')->from('models')->where('name', 'like', $search_str); + }) + ->orWhere('asset_tag', 'like', $search_str); }) ->get(); $total = $assets->count(); + } else { + $assets = $component->assets(); + + $total = $assets->count(); + $assets = $assets->skip($offset)->take($limit)->get(); } return (new ComponentsTransformer)->transformCheckedoutComponents($assets, $total); From 852e9ff311b18a1c3d26c914624e1aebc01f3b1e Mon Sep 17 00:00:00 2001 From: Brady Wetherington Date: Tue, 15 Aug 2023 14:19:36 +0100 Subject: [PATCH 5/7] Accessory checkin via API reported wrong target user --- app/Http/Controllers/Api/AccessoriesController.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Http/Controllers/Api/AccessoriesController.php b/app/Http/Controllers/Api/AccessoriesController.php index 263bd2086f..654f3c2e24 100644 --- a/app/Http/Controllers/Api/AccessoriesController.php +++ b/app/Http/Controllers/Api/AccessoriesController.php @@ -331,7 +331,7 @@ class AccessoriesController extends Controller $accessory = Accessory::find($accessory_user->accessory_id); $this->authorize('checkin', $accessory); - $logaction = $accessory->logCheckin(User::find($accessory_user->user_id), $request->input('note')); + $logaction = $accessory->logCheckin(User::find($accessory_user->assigned_to), $request->input('note')); // Was the accessory updated? if (DB::table('accessories_users')->where('id', '=', $accessory_user->id)->delete()) { From b607a59875711aaecbced6732912b66232dac1f1 Mon Sep 17 00:00:00 2001 From: Ivan Nieto Vivanco Date: Wed, 16 Aug 2023 15:04:17 -0600 Subject: [PATCH 6/7] Add query to search default locations in advanced search --- app/Models/Asset.php | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/app/Models/Asset.php b/app/Models/Asset.php index 95e1c3a166..6792cf2859 100644 --- a/app/Models/Asset.php +++ b/app/Models/Asset.php @@ -1433,6 +1433,12 @@ class Asset extends Depreciable }); } + if ($fieldname == 'rtd_location') { + $query->whereHas('defaultLoc', function ($query) use ($search_val) { + $query->where('locations.name', 'LIKE', '%'.$search_val.'%'); + }); + } + if ($fieldname =='assigned_to') { $query->whereHasMorph('assignedTo', [User::class], function ($query) use ($search_val) { $query->where(function ($query) use ($search_val) { From da2f22d5049a79191fb63c0c7fc7fb2c7e8584a8 Mon Sep 17 00:00:00 2001 From: snipe Date: Fri, 18 Aug 2023 15:31:15 +0100 Subject: [PATCH 7/7] Fixed #13487 - include supplier url in listing Signed-off-by: snipe --- app/Http/Controllers/Api/SuppliersController.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Http/Controllers/Api/SuppliersController.php b/app/Http/Controllers/Api/SuppliersController.php index a26c33b1f8..ad1227cc83 100644 --- a/app/Http/Controllers/Api/SuppliersController.php +++ b/app/Http/Controllers/Api/SuppliersController.php @@ -41,7 +41,7 @@ class SuppliersController extends Controller ]; $suppliers = Supplier::select( - ['id', 'name', 'address', 'address2', 'city', 'state', 'country', 'fax', 'phone', 'email', 'contact', 'created_at', 'updated_at', 'deleted_at', 'image', 'notes']) + ['id', 'name', 'address', 'address2', 'city', 'state', 'country', 'fax', 'phone', 'email', 'contact', 'created_at', 'updated_at', 'deleted_at', 'image', 'notes', 'url']) ->withCount('assets as assets_count') ->withCount('licenses as licenses_count') ->withCount('accessories as accessories_count')