improving web layout
This commit is contained in:
+44
-18
@@ -26,42 +26,68 @@
|
|||||||
|
|
||||||
<?php
|
<?php
|
||||||
if (isset($_GET['group'])) {
|
if (isset($_GET['group'])) {
|
||||||
$group = urlencode($_GET['group']); // Encode the group name for URL
|
$group = urlencode($_GET['group']);
|
||||||
$url = "http://10.34.115.140:5000/gpo?group=$group"; // API endpoint
|
$url = "http://10.34.115.140:5000/gpo?group=$group";
|
||||||
// Initialize cURL session
|
// query API
|
||||||
$ch = curl_init();
|
$ch = curl_init();
|
||||||
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
||||||
curl_setopt($ch, CURLOPT_URL, $url);
|
curl_setopt($ch, CURLOPT_URL, $url);
|
||||||
|
|
||||||
// Execute the request and fetch the response
|
|
||||||
$response = curl_exec($ch);
|
$response = curl_exec($ch);
|
||||||
|
|
||||||
// Check for errors
|
|
||||||
if ($e = curl_error($ch)) {
|
if ($e = curl_error($ch)) {
|
||||||
die("Curl error: $e");
|
die("Curl error: $e");
|
||||||
} else {
|
}
|
||||||
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
|
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
|
||||||
if ($httpCode != 200) {
|
if ($httpCode != 200) {
|
||||||
die("Error: Received HTTP code $httpCode");
|
die("Error: Received HTTP code $httpCode");
|
||||||
}
|
}
|
||||||
}
|
curl_close($ch);
|
||||||
|
|
||||||
// Decode the JSON response
|
|
||||||
$data = json_decode($response, true);
|
$data = json_decode($response, true);
|
||||||
|
// build the group array
|
||||||
|
$gpoMap = []; // will look like: [ 'GPO‑Name' => ['Administrator' => [...], 'vnc_admin' => [...]] ]
|
||||||
|
|
||||||
// Display the data in a table
|
|
||||||
if (isset($data['error'])) {
|
if (isset($data['error'])) {
|
||||||
echo "<p>Error: {$data['error']}</p>";
|
echo "<p>Error: {$data['error']}</p>";
|
||||||
} else {
|
} else {
|
||||||
echo "<table><tr><th>GPO</th><th>AD Group</th><th>Local Group</th></tr>";
|
foreach ($data as $row) {
|
||||||
foreach ($data as $item) {
|
// safety: skip rows that do not contain the expected keys
|
||||||
echo "<tr><td>{$item['gpo']}</td><td>{$item['ad_group']}</td><td>{$item['local_group']}</td></tr>";
|
if (!isset($row['gpo'], $row['ad_group'], $row['local_group'])) {
|
||||||
|
continue;
|
||||||
}
|
}
|
||||||
echo "</table>";
|
$gpoName = $row['gpo'];
|
||||||
|
$adGroup = $row['ad_group'];
|
||||||
|
$localGroup = strtolower($row['local_group']);
|
||||||
|
// initialise if not already done
|
||||||
|
if (!isset($gpoMap[$gpoName])) {
|
||||||
|
$gpoMap[$gpoName] = [
|
||||||
|
'administrators' => [],
|
||||||
|
'vnc_admin' => []
|
||||||
|
];
|
||||||
|
}
|
||||||
|
// put the ad_group into the right bucket
|
||||||
|
if ($localGroup === 'administrators') {
|
||||||
|
$gpoMap[$gpoName]['administrators'][] = $adGroup;
|
||||||
|
} elseif ($localGroup === 'vnc_admin') {
|
||||||
|
$gpoMap[$gpoName]['vnc_admin'][] = $adGroup;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ksort($gpoMap, SORT_STRING | SORT_FLAG_CASE);
|
||||||
|
echo '<table border="1" cellpadding="4" cellspacing="0">';
|
||||||
|
echo '<tr><th>GPO</th><th>Administrators</th><th>vnc_admin</th></tr>';
|
||||||
|
|
||||||
|
foreach ($gpoMap as $gpoName => $cols) {
|
||||||
|
// Remove duplicates and build comma‑separated lists
|
||||||
|
$adminGroups = implode('<br>', array_unique($cols['administrators']));
|
||||||
|
$vncGroups = implode('<br>', array_unique($cols['vnc_admin']));
|
||||||
|
|
||||||
|
echo '<tr>';
|
||||||
|
echo "<td>{$gpoName}</td>";
|
||||||
|
echo "<td>{$adminGroups}</td>";
|
||||||
|
echo "<td>{$vncGroups}</td>";
|
||||||
|
echo '</tr>';
|
||||||
|
}
|
||||||
|
echo '</table>';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Close cURL session
|
|
||||||
curl_close($ch);
|
|
||||||
} else {
|
} else {
|
||||||
echo "<p>No group specified.</p>";
|
echo "<p>No group specified.</p>";
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user