mirror of
https://github.com/librenms/librenms.git
synced 2024-10-07 16:52:45 +00:00
* Fix device_update hostname handling #14435 * Use Eloquent * Update Device.php Co-authored-by: Tony Murray <murraytony@gmail.com>
This commit is contained in:
@@ -1908,7 +1908,12 @@ function update_device(Illuminate\Http\Request $request)
|
||||
{
|
||||
$hostname = $request->route('hostname');
|
||||
// use hostname as device_id if it's all digits
|
||||
$device_id = ctype_digit($hostname) ? $hostname : getidbyname($hostname);
|
||||
$device = ctype_digit($hostname) ? Device::find($hostname) : Device::findByHostname($hostname);
|
||||
|
||||
if (is_null($device)) {
|
||||
return api_error(404, "Device $hostname not found");
|
||||
}
|
||||
|
||||
$data = json_decode($request->getContent(), true);
|
||||
$bad_fields = ['device_id', 'hostname'];
|
||||
if (empty($data['field'])) {
|
||||
@@ -1936,7 +1941,7 @@ function update_device(Illuminate\Http\Request $request)
|
||||
|
||||
$update[$field] = $field_data;
|
||||
}
|
||||
if (dbUpdate($update, 'devices', '`device_id`=?', [$device_id]) >= 0) {
|
||||
if ($device->fill($update)->save()) {
|
||||
return api_success_noresult(200, 'Device fields have been updated');
|
||||
} else {
|
||||
return api_error(500, 'Device fields failed to be updated');
|
||||
@@ -1944,7 +1949,7 @@ function update_device(Illuminate\Http\Request $request)
|
||||
} else {
|
||||
return api_error(500, 'Device fields failed to be updated as the number of fields (' . count($data['field']) . ') does not match the supplied data (' . count($data['data']) . ')');
|
||||
}
|
||||
} elseif (dbUpdate([$data['field'] => $data['data']], 'devices', '`device_id`=?', [$device_id]) >= 0) {
|
||||
} elseif ($device->fill([$data['field'] => $data['data']])->save()) {
|
||||
return api_success_noresult(200, 'Device ' . $data['field'] . ' field has been updated');
|
||||
} else {
|
||||
return api_error(500, 'Device ' . $data['field'] . ' field failed to be updated');
|
||||
|
Reference in New Issue
Block a user