206 lines
6.3 KiB
PHP
206 lines
6.3 KiB
PHP
<?php
|
|
/*
|
|
* Copyright (C) 2018 Laksamadi Guko.
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation; either version 2 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
*/
|
|
|
|
// hide all error
|
|
error_reporting(0);
|
|
ini_set('max_execution_time', 300);
|
|
if (!isset($_SESSION["mikhmon"])) {
|
|
header("Location:../admin.php?id=login");
|
|
} else {
|
|
|
|
if ($prof == "all") {
|
|
$getuser = $API->comm("/ip/hotspot/user/print");
|
|
$TotalReg = count($getuser);
|
|
|
|
$counttuser = $API->comm("/ip/hotspot/user/print", array(
|
|
"count-only" => ""
|
|
));
|
|
} elseif ($prof != "all") {
|
|
$getuser = $API->comm("/ip/hotspot/user/print", array(
|
|
"?profile" => "$prof",
|
|
));
|
|
$TotalReg = count($getuser);
|
|
|
|
$counttuser = $API->comm("/ip/hotspot/user/print", array(
|
|
"count-only" => "",
|
|
"?profile" => "$prof",
|
|
));
|
|
|
|
}
|
|
if ($comm != "") {
|
|
$getuser = $API->comm("/ip/hotspot/user/print", array(
|
|
"?comment" => "$comm",
|
|
//"?uptime" => "00:00:00"
|
|
));
|
|
$TotalReg = count($getuser);
|
|
|
|
$counttuser = $API->comm("/ip/hotspot/user/print", array(
|
|
"count-only" => "",
|
|
"?comment" => "$comm",
|
|
));
|
|
}
|
|
}
|
|
?>
|
|
<div class="row">
|
|
<div class="col-12">
|
|
<div class="card">
|
|
<div class="card-header">
|
|
<h3><i class="fa fa-users"></i> Export Hotspot Users | <strong class="pointer" onclick="exportTableToCSV('export-user-hotspot-mikhmon-<?= date("Y-m-d"); ?>.<?php if ($_GET['export'] == "csv") {
|
|
echo "csv";
|
|
} else {
|
|
echo "txt";
|
|
} ?>')" title="Download User List"><i class="fa fa-download"></i> Download</strong>
|
|
</h3>
|
|
|
|
</div>
|
|
|
|
<div class="card-body overflow">
|
|
<table id="export" class="text-nowrap <?php if ($_GET['export'] == "csv") {
|
|
echo "table table-bordered";
|
|
} ?>">
|
|
<?php if ($_GET['export'] == "script") { ?>
|
|
<tr>
|
|
<td>/ip hotspot user</td>
|
|
</tr>
|
|
<?php
|
|
for ($i = 0; $i < $TotalReg; $i++) {
|
|
$userdetails = $getuser[$i];
|
|
$uid = $userdetails['.id'];
|
|
$userver = $userdetails['server'];
|
|
$uname = $userdetails['name'];
|
|
$upass = $userdetails['password'];
|
|
$uprofile = $userdetails['profile'];
|
|
$uuptime = formatDTM($userdetails['uptime']);
|
|
$ubyteso = formatBytes($userdetails['bytes-out'], 2);
|
|
if ($ubyteso == 0) {
|
|
$ubyteso = "";
|
|
} else {
|
|
$ubyteso = $ubyteso;
|
|
}
|
|
$ucomment = $userdetails['comment'];
|
|
$udisabled = $userdetails['disabled'];
|
|
$utimelimit = $userdetails['limit-uptime'];
|
|
$udatalimit = $userdetails['limit-bytes-total'];
|
|
|
|
if ($utimelimit == "") {
|
|
$timelimit = "";
|
|
} else {
|
|
$timelimit = 'limit-uptime="' . $utimelimit . '"';
|
|
}
|
|
if ($udatalimit == "") {
|
|
$datalimit = "";
|
|
} else {
|
|
$datalimit = 'limit-bytes-total="' . $udatalimit . '"';
|
|
}
|
|
if ($ucomment == "") {
|
|
$comment = "";
|
|
} else {
|
|
$comment = 'comment="' . $ucomment . '"';
|
|
}
|
|
|
|
echo '
|
|
<tr>
|
|
<td>add name="' . $uname . '" password="' . $upass . '" profile="' . $uprofile . '" ' . $comment . ' ' . $timelimit . ' ' . $datalimit . '</td>
|
|
</tr>
|
|
';
|
|
}
|
|
} else if ($_GET['export'] == "csv") { ?>
|
|
<tr>
|
|
<th>Username</th>
|
|
<th>Password</th>
|
|
<th>Profile</th>
|
|
<th>Time Limit</th>
|
|
<th>Data Limit</th>
|
|
<th>Comment</th>
|
|
</tr>
|
|
<?php
|
|
for ($i = 0; $i < $TotalReg; $i++) {
|
|
$userdetails = $getuser[$i];
|
|
$uid = $userdetails['.id'];
|
|
$userver = $userdetails['server'];
|
|
$uname = $userdetails['name'];
|
|
$upass = $userdetails['password'];
|
|
$uprofile = $userdetails['profile'];
|
|
$uuptime = formatDTM($userdetails['uptime']);
|
|
$ubyteso = formatBytes($userdetails['bytes-out'], 2);
|
|
if ($ubyteso == 0) {
|
|
$ubyteso = "";
|
|
} else {
|
|
$ubyteso = $ubyteso;
|
|
}
|
|
$ucomment = $userdetails['comment'];
|
|
$udisabled = $userdetails['disabled'];
|
|
$utimelimit = $userdetails['limit-uptime'];
|
|
$udatalimit = $userdetails['limit-bytes-total'];
|
|
|
|
echo '
|
|
<tr>
|
|
<td>' . $uname . '</td>
|
|
<td>' . $upass . '</td>
|
|
<td>' . $uprofile . '</td>
|
|
<td>' . $utimelimit . '</td>
|
|
<td>' . $udatalimit . '</td>
|
|
<td>' . $ucomment . '</td>
|
|
</tr>
|
|
';
|
|
}
|
|
}
|
|
?>
|
|
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<script>
|
|
function downloadCSV(csv, filename) {
|
|
var csvFile;
|
|
var downloadLink;
|
|
// CSV file
|
|
csvFile = new Blob([csv], {type: "text/csv"});
|
|
// Download link
|
|
downloadLink = document.createElement("a");
|
|
// File name
|
|
downloadLink.download = filename;
|
|
// Create a link to the file
|
|
downloadLink.href = window.URL.createObjectURL(csvFile);
|
|
// Hide download link
|
|
downloadLink.style.display = "none";
|
|
// Add the link to DOM
|
|
document.body.appendChild(downloadLink);
|
|
// Click download link
|
|
downloadLink.click();
|
|
}
|
|
|
|
function exportTableToCSV(filename) {
|
|
var csv = [];
|
|
var rows = document.querySelectorAll("#export tr");
|
|
|
|
for (var i = 0; i < rows.length; i++) {
|
|
var row = [], cols = rows[i].querySelectorAll("td, th");
|
|
for (var j = 0; j < cols.length; j++)
|
|
row.push(cols[j].innerText);
|
|
csv.push(row.join(","));
|
|
}
|
|
// Download CSV file
|
|
downloadCSV(csv.join("\n"), filename);
|
|
}
|
|
</script>
|
|
|
|
|