NetAdmin: Gateway-kenttä, IPAM-integraatio VLAN/IP-tietoihin
- Lisää Gateway-sarake ja -valitsin NetAdmin-näkymään (devices-linkitys) - VLAN ja IP näytetään IPAM:sta automaattisesti asiakkaan nimellä - Muokkausmodaalissa asiakkaan IPAM VLANit/IP:t näkyvät ensimmäisinä - DB: gateway_device_id LEFT JOIN devices, IPAM-enrichment API:ssa Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
39
api.php
39
api.php
@@ -4384,12 +4384,33 @@ switch ($action) {
|
||||
$vlans = array_values(array_filter($ipamAll, fn($e) => $e['tyyppi'] === 'vlan'));
|
||||
$ips = array_values(array_filter($ipamAll, fn($e) => $e['tyyppi'] === 'ip' || $e['tyyppi'] === 'subnet'));
|
||||
|
||||
// Rikasta liittymädata laitetiedoilla
|
||||
// Rikasta liittymädata laitetiedoilla ja IPAM-tiedoilla
|
||||
// Rakenna IPAM-lookup asiakkaan nimen perusteella
|
||||
$ipamByCustomer = [];
|
||||
foreach ($ipamAll as $entry) {
|
||||
$asiakas = $entry['asiakas'] ?? '';
|
||||
if ($asiakas) {
|
||||
$ipamByCustomer[$asiakas][] = $entry;
|
||||
}
|
||||
}
|
||||
|
||||
foreach ($connections as &$conn) {
|
||||
$deviceName = $conn['laite'] ?? '';
|
||||
if ($deviceName && isset($deviceMap[$deviceName])) {
|
||||
$conn['device_info'] = $deviceMap[$deviceName];
|
||||
}
|
||||
// Auto-populate VLAN ja IP IPAMista asiakkaan nimen perusteella
|
||||
$custName = $conn['customer_name'] ?? '';
|
||||
$ipamEntries = $ipamByCustomer[$custName] ?? [];
|
||||
$conn['ipam_vlans'] = [];
|
||||
$conn['ipam_ips'] = [];
|
||||
foreach ($ipamEntries as $ie) {
|
||||
if ($ie['tyyppi'] === 'vlan') {
|
||||
$conn['ipam_vlans'][] = ['vlan_id' => $ie['vlan_id'], 'nimi' => $ie['nimi'], 'site_name' => $ie['site_name'] ?? ''];
|
||||
} elseif ($ie['tyyppi'] === 'ip' || $ie['tyyppi'] === 'subnet') {
|
||||
$conn['ipam_ips'][] = ['verkko' => $ie['verkko'], 'nimi' => $ie['nimi'], 'tila' => $ie['tila'], 'site_name' => $ie['site_name'] ?? ''];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
echo json_encode([
|
||||
@@ -4421,6 +4442,22 @@ switch ($action) {
|
||||
echo json_encode(['error' => 'Liittymää ei löytynyt']);
|
||||
break;
|
||||
}
|
||||
// Lisää IPAM-data asiakkaan nimen perusteella
|
||||
$ipamAll = dbLoadIpam($companyId);
|
||||
$custName = $conn['customer_name'] ?? '';
|
||||
$conn['ipam_vlans'] = [];
|
||||
$conn['ipam_ips'] = [];
|
||||
if ($custName) {
|
||||
foreach ($ipamAll as $ie) {
|
||||
$asiakas = $ie['asiakas'] ?? '';
|
||||
if ($asiakas !== $custName) continue;
|
||||
if ($ie['tyyppi'] === 'vlan') {
|
||||
$conn['ipam_vlans'][] = ['vlan_id' => $ie['vlan_id'], 'nimi' => $ie['nimi'], 'site_name' => $ie['site_name'] ?? ''];
|
||||
} elseif ($ie['tyyppi'] === 'ip' || $ie['tyyppi'] === 'subnet') {
|
||||
$conn['ipam_ips'][] = ['verkko' => $ie['verkko'], 'nimi' => $ie['nimi'], 'tila' => $ie['tila'], 'site_name' => $ie['site_name'] ?? ''];
|
||||
}
|
||||
}
|
||||
}
|
||||
echo json_encode($conn);
|
||||
} catch (Exception $e) {
|
||||
http_response_code(500);
|
||||
|
||||
Reference in New Issue
Block a user