diff options
author | Simon Rettberg | 2019-04-03 18:10:28 +0200 |
---|---|---|
committer | Simon Rettberg | 2019-04-03 18:10:28 +0200 |
commit | 4d51d90809da34022991e4a8c17caeb28c31bde0 (patch) | |
tree | e790d751fbb5883023aaf130f157f4fc23c09c1b /modules-available/locations/page.inc.php | |
parent | [serversetup-bwlp-ipxe] Fix resetting of default bootentries on install (diff) | |
download | slx-admin-4d51d90809da34022991e4a8c17caeb28c31bde0.tar.gz slx-admin-4d51d90809da34022991e4a8c17caeb28c31bde0.tar.xz slx-admin-4d51d90809da34022991e4a8c17caeb28c31bde0.zip |
[statistics/locations] Add locationid constraints; update on delete
We didn't update subnetlocationid when deleting a location,
leading to machines pointing to invalid locations.
Diffstat (limited to 'modules-available/locations/page.inc.php')
-rw-r--r-- | modules-available/locations/page.inc.php | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/modules-available/locations/page.inc.php b/modules-available/locations/page.inc.php index d20c6068..5b3d7ff0 100644 --- a/modules-available/locations/page.inc.php +++ b/modules-available/locations/page.inc.php @@ -144,22 +144,20 @@ class Page_Locations extends Page private function deleteLocation($location) { $locationId = (int)$location['locationid']; - $ids = $locationId; if (Request::post('recursive', false) === 'on') { $rows = Location::queryLocations(); $rows = Location::buildTree($rows, $locationId); - $rows = Location::extractIds($rows); - if (!empty($rows)) { - $ids .= ',' . implode(',', $rows); - } + $ids = Location::extractIds($rows); + } else { + $ids = [$locationId]; } - $subs = Database::exec("DELETE FROM subnet WHERE locationid IN ($ids)"); - $locs = Database::exec("DELETE FROM location WHERE locationid IN ($ids)"); + $locs = Database::exec("DELETE FROM location WHERE locationid IN (:ids)", ['ids' => $ids]); Database::exec('UPDATE location SET parentlocationid = :newparent WHERE parentlocationid = :oldparent', array( 'newparent' => $location['parentlocationid'], 'oldparent' => $location['locationid'] )); - Message::addSuccess('location-deleted', $locs, $subs); + AutoLocation::rebuildAll($ids); + Message::addSuccess('location-deleted', $locs, implode(', ', $ids)); Util::redirect('?do=Locations'); } |