mirror of
https://github.com/pi-hole/web.git
synced 2026-05-03 07:02:09 +01:00
Merge branch 'devel' of https://github.com/pi-hole/AdminLTE into devel
Signed-off-by: Tony Jeffree <tjeffree@gmail.com>
This commit is contained in:
@@ -184,7 +184,7 @@ if ($_POST['action'] == 'get_groups') {
|
||||
throw new Exception('Error while querying gravity\'s client_by_group table: ' . $db->lastErrorMsg());
|
||||
}
|
||||
|
||||
$stmt = $FTLdb->prepare('SELECT name FROM network WHERE id = (SELECT network_id FROM network_addresses WHERE ip = :ip);');
|
||||
$stmt = $FTLdb->prepare('SELECT name FROM network_addresses WHERE ip = :ip;');
|
||||
if (!$stmt) {
|
||||
throw new Exception('Error while preparing network table statement: ' . $db->lastErrorMsg());
|
||||
}
|
||||
@@ -206,6 +206,7 @@ if ($_POST['action'] == 'get_groups') {
|
||||
while ($gres = $group_query->fetchArray(SQLITE3_ASSOC)) {
|
||||
array_push($groups, $gres['group_id']);
|
||||
}
|
||||
$group_query->finalize();
|
||||
$res['groups'] = $groups;
|
||||
array_push($data, $res);
|
||||
}
|
||||
@@ -221,7 +222,7 @@ if ($_POST['action'] == 'get_groups') {
|
||||
$QUERYDB = getQueriesDBFilename();
|
||||
$FTLdb = SQLite3_connect($QUERYDB);
|
||||
|
||||
$query = $FTLdb->query('SELECT DISTINCT ip,network.name FROM network_addresses AS name LEFT JOIN network ON network.id = network_id ORDER BY ip ASC;');
|
||||
$query = $FTLdb->query('SELECT DISTINCT id,hwaddr,macVendor FROM network ORDER BY firstSeen DESC;');
|
||||
if (!$query) {
|
||||
throw new Exception('Error while querying FTL\'s database: ' . $db->lastErrorMsg());
|
||||
}
|
||||
@@ -229,7 +230,47 @@ if ($_POST['action'] == 'get_groups') {
|
||||
// Loop over results
|
||||
$ips = array();
|
||||
while ($res = $query->fetchArray(SQLITE3_ASSOC)) {
|
||||
$ips[$res['ip']] = $res['name'] !== null ? $res['name'] : '';
|
||||
$id = intval($res["id"]);
|
||||
|
||||
// Get possibly associated IP addresses and hostnames for this client
|
||||
$query_ips = $FTLdb->query("SELECT ip,name FROM network_addresses WHERE network_id = $id ORDER BY lastSeen DESC;");
|
||||
$addresses = [];
|
||||
$names = [];
|
||||
while ($res_ips = $query_ips->fetchArray(SQLITE3_ASSOC)) {
|
||||
array_push($addresses, utf8_encode($res_ips["ip"]));
|
||||
if($res_ips["name"] !== null)
|
||||
array_push($names,utf8_encode($res_ips["name"]));
|
||||
}
|
||||
$query_ips->finalize();
|
||||
|
||||
// Prepare extra information
|
||||
$extrainfo = "";
|
||||
// Add list of associated host names to info string (if available)
|
||||
if(count($names) === 1)
|
||||
$extrainfo .= "hostname: ".$names[0];
|
||||
else if(count($names) > 0)
|
||||
$extrainfo .= "hostnames: ".implode(", ", $names);
|
||||
|
||||
// Add device vendor to info string (if available)
|
||||
if (strlen($res["macVendor"]) > 0) {
|
||||
if (count($names) > 0)
|
||||
$extrainfo .= "; ";
|
||||
$extrainfo .= "vendor: ".htmlspecialchars($res["macVendor"]);
|
||||
}
|
||||
|
||||
// Add list of associated host names to info string (if available and if this is not a mock device)
|
||||
if (stripos($res["hwaddr"], "ip-") === FALSE) {
|
||||
|
||||
if ((count($names) > 0 || strlen($res["macVendor"]) > 0) && count($addresses) > 0)
|
||||
$extrainfo .= "; ";
|
||||
|
||||
if(count($addresses) === 1)
|
||||
$extrainfo .= "address: ".$addresses[0];
|
||||
else if(count($addresses) > 0)
|
||||
$extrainfo .= "addresses: ".implode(", ", $addresses);
|
||||
}
|
||||
|
||||
$ips[strtoupper($res['hwaddr'])] = $extrainfo;
|
||||
}
|
||||
$FTLdb->close();
|
||||
|
||||
@@ -243,6 +284,9 @@ if ($_POST['action'] == 'get_groups') {
|
||||
if (isset($ips[$res['ip']])) {
|
||||
unset($ips[$res['ip']]);
|
||||
}
|
||||
if (isset($ips["IP-".$res['ip']])) {
|
||||
unset($ips["IP-".$res['ip']]);
|
||||
}
|
||||
}
|
||||
|
||||
header('Content-type: application/json');
|
||||
|
||||
@@ -194,6 +194,7 @@
|
||||
<link rel="stylesheet" href="style/vendor/datatables.min.css?v=<?=$cacheVer?>">
|
||||
<link rel="stylesheet" href="style/vendor/daterangepicker.min.css?v=<?=$cacheVer?>">
|
||||
<link rel="stylesheet" href="style/vendor/AdminLTE.min.css?v=<?=$cacheVer?>">
|
||||
<link rel="stylesheet" href="style/vendor/select2.min.css?v=<?=$cacheVer?>">
|
||||
|
||||
<?php if (in_array($scriptname, array("groups.php", "groups-adlists.php", "groups-clients.php", "groups-domains.php"))){ ?>
|
||||
<link rel="stylesheet" href="style/vendor/animate.min.css?v=<?=$cacheVer?>">
|
||||
@@ -208,6 +209,7 @@
|
||||
<script src="style/vendor/bootstrap/js/bootstrap.min.js?v=<?=$cacheVer?>"></script>
|
||||
<script src="scripts/vendor/adminlte.min.js?v=<?=$cacheVer?>"></script>
|
||||
<script src="scripts/vendor/bootstrap-notify.min.js?v=<?=$cacheVer?>"></script>
|
||||
<script src="scripts/vendor/select2.min.js?v=<?=$cacheVer?>"></script>
|
||||
<script src="scripts/vendor/datatables.min.js?v=<?=$cacheVer?>"></script>
|
||||
<script src="scripts/vendor/moment.min.js?v=<?=$cacheVer?>"></script>
|
||||
<script src="scripts/vendor/Chart.min.js?v=<?=$cacheVer?>"></script>
|
||||
|
||||
@@ -30,34 +30,34 @@
|
||||
<input type="password" id="loginpw" name="pw" class="form-control" placeholder="Password" autofocus>
|
||||
<span class="fa fa-key form-control-feedback"></span>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-xs-12 col-md-12">
|
||||
<button type="submit" class="btn btn-primary form-control"><i class="fas fa-sign-in-alt"></i> Log in</button>
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
<div class="row">
|
||||
<div class="col-xs-8 hidden-xs hidden-sm">
|
||||
<ul>
|
||||
<li><kbd>Return</kbd> → Log in and go to requested page (<?php echo $scriptname; ?>)</li>
|
||||
<li><kbd>Ctrl</kbd>+<kbd>Return</kbd> → Log in and go to Settings page</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li><kbd>Return</kbd> → Log in and go to requested page (<?php echo $scriptname; ?>)</li>
|
||||
<li><kbd>Ctrl</kbd>+<kbd>Return</kbd> → Log in and go to Settings page</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="col-xs-12 col-md-4">
|
||||
<div class="pull-right">
|
||||
<div>
|
||||
<input type="checkbox" id="logincookie" name="persistentlogin">
|
||||
<label for="logincookie">Remember me for 7 days</label>
|
||||
</div>
|
||||
<div>
|
||||
<input type="checkbox" id="logincookie" name="persistentlogin">
|
||||
<label for="logincookie">Remember me for 7 days</label>
|
||||
</div>
|
||||
<button type="submit" class="btn btn-primary pull-right"><i class="fas fa-sign-in-alt"></i> Log in</button>
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
<div class="row">
|
||||
<div class="col-xs-12">
|
||||
<div class="box box-<?php if (!$wrongpassword) { ?>info<?php } else { ?>danger<?php }
|
||||
if (!$wrongpassword) { ?> collapsed-box<?php } ?> box-solid">
|
||||
<div class="box box-<?php if (!$wrongpassword) { ?>info collapsed-box<?php } else { ?>danger<?php }?>">
|
||||
<div class="box-header with-border">
|
||||
<h3 class="box-title">Forgot password</h3>
|
||||
|
||||
<h3 class="box-title">Forgot password?</h3>
|
||||
<div class="box-tools pull-right">
|
||||
<button type="button" class="btn btn-box-tool" data-widget="collapse"><i
|
||||
class="fa <?php if ($wrongpassword) { ?>fa-minus<?php } else { ?>fa-plus<?php } ?>"></i>
|
||||
<button type="button" class="btn btn-box-tool" data-widget="collapse"><i class="fa <?php if ($wrongpassword) { ?>fa-minus<?php } else { ?>fa-plus<?php } ?>"></i>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -738,7 +738,11 @@ function addStaticDHCPLease($mac, $ip, $hostname) {
|
||||
// Flush network table
|
||||
case "flusharp":
|
||||
$output = pihole_execute("arpflush quiet");
|
||||
$error = implode("<br>", $output);
|
||||
$error = "";
|
||||
if(is_array($output))
|
||||
{
|
||||
$error = implode("<br>", $output);
|
||||
}
|
||||
if(strlen($error) == 0)
|
||||
{
|
||||
$success .= "The network table has been flushed";
|
||||
|
||||
Reference in New Issue
Block a user