Add ActiveDirectory navigation and group management pages

- Added new ActiveDirectory section in the navigation bar (`navbar.html`) with expandable options.
- Implemented `GroupReview.php` for reviewing AD group details and tiering.
- Implemented `GroupSearch.php` for searching and displaying AD group memberships with autocomplete functionality.
- Fixed incorrect link in `index.php` pointing to `AD-Detail.php`.
This commit is contained in:
e025532
2025-07-17 10:21:59 +02:00
parent 4b90b1ee5c
commit 1f794e2273
4 changed files with 189 additions and 1 deletions

105
AD/GroupSearch.php Normal file
View File

@@ -0,0 +1,105 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<!-- Page Title -->
<title>Web Infra Reports IT</title>
<link rel="shortcut icon" type="image/png" href="/include/favicon-32x32.png">
<!-- JQuery -->
<script src="/js/jquery-3.6.1.min.js"></script>
<!-- Bootstrap -->
<link rel="stylesheet" href="/css/bootstrap.min.css">
<link rel="stylesheet" href="/css/bootstrap-icons/bootstrap-icons.css">
<link rel="stylesheet" href="/css/preloader.css">
<script src="/js/bootstrap.bundle.min.js"></script>
<!-- Bootstrap-tables -->
<link rel="stylesheet" href="/css/bootstrap-table.min.css">
<script src="/js/bootstrap-table.min.js"></script>
<script src="/js/bootstrap-table-fr-FR.min.js"></script>
<script src="/js/tableExport.min.js"></script>
<script src="/js/bootstrap-table-export.min.js"></script>
<script src="/js/libs/js-xlsx/xlsx.core.min.js"></script>
</head>
<body class="bg-light text-dark">
<?php include $_SERVER['DOCUMENT_ROOT'] . "/include/all.php"; ?> <!-- Include All -->
<!-- HTML -->
<div class="container-fluid" id="content">
<div class="row flex-nowrap">
<!-- Left NAVBAR -->
<div class="col-auto col-md-2 col-xl-2 px-sm-2 px-0 bg-dark" style="-ms-flex: 0 0 230px;flex: 0 0 230px;">
<?php include $_SERVER['DOCUMENT_ROOT'] . "/navbar.html"; ?>
</div>
<!-- Display -->
<div class="col py-3">
<!-- Page Title -->
<h1><span class="badge text-bg-secondary font-weight-bold" style="width:100%;">Group Membership</span></h1>
<!-- Main content -->
<div class="container-fluid">
<?php // DATA
// Fetch all unique group names for the autocomplete
$group_query = Invoke_Infra("SELECT DISTINCT grp FROM AD_GroupMembership ORDER BY grp");
$groups = [];
foreach ($group_query as $row) {
$groups[] = $row['grp'];
}
?>
<div>
<br>
</div>
<form id="search-form" class="mb-4" method="POST" action="">
<div class="row">
<div class="col-md-6">
<label for="group-search" class="form-label">Search AD Group</label>
<input type="text" class="form-control" id="group-search" name="group-search" placeholder="Start typing group name ...">
</div>
<div class="col-md-2 d-flex align-items-end">
<button type="submit" class="btn btn-primary w-100">Show Members</button>
</div>
</div>
</form>
<?php
if(isset($_POST['group-search'])) {
echo "<h2 class='text-center'>".$_POST['group-search']."</h2>";
$members = Invoke_Infra("SELECT * FROM AD_GroupMembership WHERE grp = '".$_POST['group-search']."'");
echo "<h3 class='text-center'>".$members[0]['descr']."</h3>";
echo " - ".str_replace(" | ","<br> - ",$members[0]['members']);
}
?>
</div>
<!-- End of main content -->
</div>
</div>
</div>
</body>
<script>
$(function() {
const availableGroups = <?php echo json_encode($groups); ?>;
const groupSearchInput = $('#group-search');
groupSearchInput.autocomplete({
source: availableGroups
});
});
$('#group-search').on('keypress', function(e) {
if (e.which == 13) {
e.preventDefault();
$('#search-form').submit();
}
});
</script>
<script src="/js/switch.js"></script>
</HTML>