Convert the inventory page to Laravel (#15004)

* Convert the inventory page to Laravel
Fix several XSS issues (hopefully no new ones snuck in)
Small improvement to the SelectController to allow filtering by filterFields()

* style fixes

* Fix lint issues

* Fix part device filter
This commit is contained in:
Tony Murray
2023-04-28 07:51:41 -05:00
committed by GitHub
parent 75f8fe214f
commit 5c25cece48
14 changed files with 345 additions and 208 deletions

View File

@@ -42,6 +42,19 @@ class PortFieldController extends SelectController
];
}
/**
* Defines fields that can be used as filters
*
* @param $request
* @return string[]
*/
protected function filterFields($request)
{
return [
'device_id' => 'device',
];
}
/**
* Defines search fields will be searched in order
*
@@ -61,14 +74,7 @@ class PortFieldController extends SelectController
*/
protected function baseQuery($request)
{
/** @var \Illuminate\Database\Eloquent\Builder $query */
$query = Port::hasAccess($request->user())
return Port::hasAccess($request->user())
->select($request->get('field'))->distinct();
if ($device_id = $request->get('device')) {
$query->where('ports.device_id', $device_id);
}
return $query;
}
}