From 7c539fd8736b0ff9acafe32d857b2a2021d778e6 Mon Sep 17 00:00:00 2001 From: Simon Rettberg Date: Wed, 31 Jul 2019 16:58:14 +0200 Subject: [locations] Add warnings/cleanup for bad machine to roomplan mappings --- modules-available/locations/pages/subnets.inc.php | 79 +++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 modules-available/locations/pages/subnets.inc.php (limited to 'modules-available/locations/pages/subnets.inc.php') diff --git a/modules-available/locations/pages/subnets.inc.php b/modules-available/locations/pages/subnets.inc.php new file mode 100644 index 00000000..6c37129a --- /dev/null +++ b/modules-available/locations/pages/subnets.inc.php @@ -0,0 +1,79 @@ + $start) { + if (!isset($ends[$subnetid]) || !isset($locs[$subnetid])) + continue; + $loc = (int)$locs[$subnetid]; + $end = $ends[$subnetid]; + if (!isset($existingLocs[$loc])) { + Message::addError('main.value-invalid', 'locationid', $loc); + continue; + } + $range = LocationUtil::rangeToLongVerbose($start, $end); + if ($range === false) + continue; + list($startLong, $endLong) = $range; + if ($stmt->execute(compact('startLong', 'endLong', 'loc', 'subnetid'))) { + $count += $stmt->rowCount(); + } + } + AutoLocation::rebuildAll(); + Message::addSuccess('subnets-updated', $count); + Util::redirect('?do=Locations'); + } + + public static function doRender($getAction) + { + if ($getAction === false) { + User::assertPermission('subnets.edit', NULL, '?do=locations'); + $res = Database::simpleQuery("SELECT subnetid, startaddr, endaddr, locationid FROM subnet"); + $rows = array(); + while ($row = $res->fetch(PDO::FETCH_ASSOC)) { + $row['startaddr'] = long2ip($row['startaddr']); + $row['endaddr'] = long2ip($row['endaddr']); + $row['locations'] = Location::getLocations($row['locationid']); + $rows[] = $row; + } + $data = array('list' => $rows); + Permission::addGlobalTags($data['perms'], NULL, ['location.view']); + Render::addTemplate('subnets', $data); + return true; + } + return false; + } + + public static function doAjax($action) + { + return false; + } + + /* + * Helpers + */ + +} \ No newline at end of file -- cgit v1.2.3-55-g7522