609 lines
17 KiB
PHP
609 lines
17 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/>.
|
|
*/
|
|
session_start();
|
|
// hide all error
|
|
error_reporting(0);
|
|
// check url
|
|
|
|
ob_start("ob_gzhandler");
|
|
|
|
|
|
$url = $_SERVER['REQUEST_URI'];
|
|
|
|
// load session MikroTik
|
|
|
|
$session = $_GET['session'];
|
|
|
|
if (!isset($_SESSION["mikhmon"])) {
|
|
header("Location:./admin.php?id=login");
|
|
} elseif (empty($session)) {
|
|
echo "<script>window.location='./admin.php?id=sessions'</script>";
|
|
} else {
|
|
$_SESSION["$session"] = $session;
|
|
$setsession = $_SESSION["$session"];
|
|
|
|
$_SESSION["connect"] = "";
|
|
|
|
// time zone
|
|
date_default_timezone_set($_SESSION['timezone']);
|
|
|
|
// lang
|
|
include('./include/lang.php');
|
|
include('./lang/'.$langid.'.php');
|
|
|
|
// quick bt
|
|
include('./include/quickbt.php');
|
|
|
|
// load config
|
|
include('./include/config.php');
|
|
include('./include/readcfg.php');
|
|
|
|
// theme
|
|
include('./include/theme.php');
|
|
include('./settings/settheme.php');
|
|
if ($_SESSION['theme'] == "") {
|
|
$theme = $theme;
|
|
$themecolor = $themecolor;
|
|
} else {
|
|
$theme = $_SESSION['theme'];
|
|
$themecolor = $_SESSION['themecolor'];
|
|
}
|
|
|
|
// routeros api
|
|
include_once('./lib/routeros_api.class.php');
|
|
include_once('./lib/formatbytesbites.php');
|
|
$API = new RouterosAPI();
|
|
$API->debug = false;
|
|
$API->connect($iphost, $userhost, decrypt($passwdhost));
|
|
|
|
$getidentity = $API->comm("/system/identity/print");
|
|
$identity = $getidentity[0]['name'];
|
|
|
|
|
|
// get variable
|
|
$hotspot = $_GET['hotspot'];
|
|
$hotspotuser = $_GET['hotspot-user'];
|
|
$userbyname = $_GET['hotspot-user'];
|
|
$removeuseractive = $_GET['remove-user-active'];
|
|
$removehost = $_GET['remove-host'];
|
|
$removecookie = $_GET['remove-cookie'];
|
|
$removeipbinding = $_GET['remove-ip-binding'];
|
|
$removehotspotuser = $_GET['remove-hotspot-user'];
|
|
$removehotspotusers = $_GET['remove-hotspot-users'];
|
|
$removeuserprofile = $_GET['remove-user-profile'];
|
|
$resethotspotuser = $_GET['reset-hotspot-user'];
|
|
$removehotspotuserbycomment = $_GET['remove-hotspot-user-by-comment'];
|
|
$removeexpiredhotspotuser = $_GET['remove-hotspot-user-expired'];
|
|
$enablehotspotuser = $_GET['enable-hotspot-user'];
|
|
$disablehotspotuser = $_GET['disable-hotspot-user'];
|
|
$enableipbinding = $_GET['enable-ip-binding'];
|
|
$disableipbinding = $_GET['disable-ip-binding'];
|
|
$userprofile = $_GET['user-profile'];
|
|
$userprofilebyname = $_GET['user-profile'];
|
|
$sys = $_GET['system'];
|
|
$enablesch = $_GET['enable-scheduler'];
|
|
$disablesch = $_GET['disable-scheduler'];
|
|
$removesch = $_GET['remove-scheduler'];
|
|
$macbinding = $_GET['mac'];
|
|
$ipbinding = $_GET['addr'];
|
|
$ppp = $_GET['ppp'];
|
|
$secretbyname = $_GET['secret'];
|
|
$enablesecr = $_GET['enable-pppsecret'];
|
|
$disablesecr = $_GET['disable-pppsecret'];
|
|
$removesecr = $_GET['remove-pppsecret'];
|
|
$removepprofile = $_GET['remove-pprofile'];
|
|
$removepactive = $_GET['remove-pactive'];
|
|
$srv = $_GET['srv'];
|
|
$prof = $_GET['profile'];
|
|
$comm = $_GET['comment'];
|
|
$serveractive = $_GET['server'];
|
|
$report = $_GET['report'];
|
|
$removereport = $_GET['remove-report'];
|
|
$minterface = $_GET['interface'];
|
|
|
|
|
|
$pagehotspot = array('users','hosts','ipbinding','cookies','log','dhcp-leases');
|
|
$pageppp = array('secrets','profiles','active',);
|
|
$pagereport = array('userlog','selling');
|
|
|
|
include_once('./include/headhtml.php');
|
|
|
|
include_once('./include/menu.php');
|
|
|
|
$disable_sci = '<script>
|
|
document.getElementById("comment").onkeypress = function(e) {
|
|
var chr = String.fromCharCode(e.which);
|
|
if (" _!@#$%^&*()+=;|?,.~".indexOf(chr) >= 0)
|
|
return false;
|
|
};
|
|
</script>';
|
|
|
|
|
|
// logout
|
|
if ($hotspot == "logout") {
|
|
echo "<b class='cl-w'><i class='fa fa-circle-o-notch fa-spin' style='font-size:24px'></i> Logout...</b>";
|
|
|
|
session_destroy();
|
|
echo "<script>sessionStorage.clear();</script>";
|
|
echo "<script>window.location='./admin.php?id=login'</script>";
|
|
}
|
|
// redirect to home
|
|
elseif (substr(explode("=", $url)[0],-9) == "/?session") {
|
|
|
|
include_once('./dashboard/home.php');
|
|
$_SESSION['ubn'] = "";
|
|
}
|
|
|
|
// redirect to home
|
|
elseif ($hotspot == "dashboard") {
|
|
include_once('./dashboard/home.php');
|
|
$_SESSION['ubn'] = "";
|
|
|
|
}
|
|
|
|
// hotspot log
|
|
elseif ($hotspot == "log") {
|
|
include_once('./hotspot/log.php');
|
|
}
|
|
|
|
// hotspot log
|
|
elseif ($report == "userlog") {
|
|
include_once('./report/userlog.php');
|
|
}
|
|
|
|
// about
|
|
elseif ($hotspot == "about") {
|
|
include_once('./include/about.php');
|
|
}
|
|
|
|
// bad request
|
|
elseif (substr($url, -1) == "=") {
|
|
echo "<b class='cl-w'><i class='fa fa-circle-o-notch fa-spin' style='font-size:24px'></i> Bad request! redirect to Home......</b>";
|
|
|
|
echo "<script>window.location='./'</script>";
|
|
}
|
|
|
|
// hotspot add users
|
|
elseif ($hotspot == "add-user") {
|
|
$_SESSION['hua'] = "";
|
|
include_once('./hotspot/adduser.php');
|
|
}
|
|
|
|
// hotspot users
|
|
elseif ($hotspot == "users" && $prof == "all") {
|
|
$_SESSION['ubp'] = "";
|
|
$_SESSION['hua'] = "";
|
|
$_SESSION['ubc'] = "";
|
|
$_SESSION['vcr'] = "";
|
|
include_once('./hotspot/users.php');
|
|
}
|
|
|
|
// hotspot users filter by profile
|
|
elseif ($hotspot == "users" && $prof != "") {
|
|
$_SESSION['ubp'] = $prof;
|
|
$_SESSION['hua'] = "";
|
|
$_SESSION['ubc'] = "";
|
|
$_SESSION['vcr'] = "";
|
|
include_once('./hotspot/users.php');
|
|
}
|
|
|
|
// hotspot users filter by comment
|
|
elseif ($hotspot == "users" && $comm != "") {
|
|
$_SESSION['ubc'] = $comm;
|
|
$_SESSION['hua'] = "";
|
|
$_SESSION['ubp'] = "";
|
|
$_SESSION['vcr'] = "";
|
|
include_once('./hotspot/users.php');
|
|
}
|
|
|
|
// hotspot by profile
|
|
elseif ($hotspot == "users-by-profile") {
|
|
$_SESSION['ubp'] = "";
|
|
$_SESSION['hua'] = "";
|
|
$_SESSION['ubc'] = "";
|
|
$_SESSION['vcr'] = "active";
|
|
include_once('./hotspot/userbyprofile.php');
|
|
}
|
|
// export hotspot users
|
|
elseif ($hotspot == "export-users") {
|
|
include_once('./hotspot/exportusers.php');
|
|
}
|
|
|
|
// quick print
|
|
elseif ($hotspot == "quick-print") {
|
|
include_once('./hotspot/quickprint.php');
|
|
}
|
|
|
|
// quick print
|
|
elseif ($hotspot == "list-quick-print") {
|
|
include_once('./hotspot/listquickprint.php');
|
|
}
|
|
|
|
// add hotspot user
|
|
elseif ($hotspotuser == "add") {
|
|
include_once('./hotspot/adduser.php');
|
|
echo $disable_sci;
|
|
}
|
|
|
|
// add hotspot user
|
|
elseif ($hotspotuser == "generate") {
|
|
include_once('./hotspot/generateuser.php');
|
|
echo $disable_sci;
|
|
}
|
|
|
|
// hotspot users filter by name
|
|
elseif (substr($hotspotuser, 0, 1) == "*") {
|
|
$_SESSION['ubn'] = $hotspotuser;
|
|
$_SESSION['hua'] = "";
|
|
include_once('./hotspot/userbyname.php');
|
|
} elseif ($hotspotuser != "") {
|
|
$_SESSION['ubn'] = $hotspotuser;
|
|
include_once('./hotspot/userbyname.php');
|
|
}
|
|
|
|
// remove hotspot user
|
|
elseif ($removehotspotuser != "" || $removehotspotusers != "") {
|
|
echo "<b class='cl-w'><i class='fa fa-circle-o-notch fa-spin' style='font-size:24px'></i> Processing...</b>";
|
|
|
|
include_once('./process/removehotspotuser.php');
|
|
}
|
|
|
|
// remove hotspot user by comment
|
|
elseif ($removehotspotuserbycomment != "") {
|
|
echo "<b class='cl-w'><i class='fa fa-circle-o-notch fa-spin' style='font-size:24px'></i> Processing...</b>";
|
|
|
|
include_once('./process/removehotspotuserbycomment.php');
|
|
}
|
|
|
|
// remove expired hotspot user
|
|
elseif ($removeexpiredhotspotuser != "") {
|
|
echo "<b class='cl-w'><i class='fa fa-circle-o-notch fa-spin' style='font-size:24px'></i> Processing...</b>";
|
|
|
|
include_once('./process/removeexpiredhotspotuser.php');
|
|
}
|
|
|
|
// reset hotspot user
|
|
elseif ($resethotspotuser != "") {
|
|
echo "<b class='cl-w'><i class='fa fa-circle-o-notch fa-spin' style='font-size:24px'></i> Processing...</b>";
|
|
|
|
include_once('./process/resethotspotuser.php');
|
|
}
|
|
|
|
// enable hotspot user
|
|
elseif ($enablehotspotuser != "") {
|
|
echo "<b class='cl-w'><i class='fa fa-circle-o-notch fa-spin' style='font-size:24px'></i> Processing...</b>";
|
|
|
|
include_once('./process/enablehotspotuser.php');
|
|
}
|
|
|
|
// disable hotspot user
|
|
elseif ($disablehotspotuser != "") {
|
|
echo "<b class='cl-w'><i class='fa fa-circle-o-notch fa-spin' style='font-size:24px'></i> Processing...</b>";
|
|
|
|
include_once('./process/disablehotspotuser.php');
|
|
}
|
|
|
|
// user profile
|
|
elseif ($hotspot == "user-profiles") {
|
|
include_once('./hotspot/userprofile.php');
|
|
}
|
|
|
|
// add user profile
|
|
elseif ($userprofile == "add") {
|
|
include_once('./hotspot/adduserprofile.php');
|
|
}
|
|
|
|
// User profile by name
|
|
elseif (substr($userprofile, 0, 1) == "*") {
|
|
include_once('./hotspot/userprofilebyname.php');
|
|
} elseif ($userprofile != "") {
|
|
include_once('./hotspot/userprofilebyname.php');
|
|
}
|
|
|
|
|
|
// remove user profile
|
|
elseif ($removeuserprofile != "") {
|
|
echo "<b class='cl-w'><i class='fa fa-circle-o-notch fa-spin' style='font-size:24px'></i> Processing...</b>";
|
|
|
|
include_once('./process/removeuserprofile.php');
|
|
}
|
|
|
|
// hotspot active
|
|
elseif ($hotspot == "active") {
|
|
$_SESSION['ubp'] = "";
|
|
$_SESSION['hua'] = "hotspotactive";
|
|
$_SESSION['ubc'] = "";
|
|
include_once('./hotspot/hotspotactive.php');
|
|
}
|
|
|
|
// dhcp leases
|
|
elseif ($hotspot == "dhcp-leases") {
|
|
include_once('./dhcp/dhcpleases.php');
|
|
}
|
|
|
|
// traffic monitor
|
|
elseif ($minterface == "traffic-monitor") {
|
|
include_once('./traffic/trafficmonitor.php');
|
|
}
|
|
|
|
// hotspot hosts
|
|
elseif ($hotspot == "hosts" || $hotspot == "hostp" || $hotspot == "hosta") {
|
|
include_once('./hotspot/hosts.php');
|
|
}
|
|
|
|
// hotspot bindings
|
|
elseif ($hotspot == "binding") {
|
|
include_once('./hotspot/binding.php');
|
|
}
|
|
|
|
// template editor
|
|
elseif ($hotspot == "template-editor") {
|
|
include_once('./settings/vouchereditor.php');
|
|
}
|
|
|
|
// upload logo
|
|
elseif ($hotspot == "uplogo") {
|
|
include_once('./settings/uplogo.php');
|
|
}
|
|
|
|
// hotspot Cookies
|
|
elseif ($hotspot == "cookies") {
|
|
include_once('./hotspot/cookies.php');
|
|
}
|
|
|
|
// remove hotspot Cookies
|
|
elseif ($removecookie != "") {
|
|
echo "<b class='cl-w'><i class='fa fa-circle-o-notch fa-spin' style='font-size:24px'></i> Processing...</b>";
|
|
|
|
include_once('./process/removecookie.php');
|
|
}
|
|
|
|
// hotspot Ip Bindings
|
|
elseif ($hotspot == "ipbinding") {
|
|
include_once('./hotspot/ipbinding.php');
|
|
}
|
|
|
|
// remove enable disable ipbinding
|
|
elseif ($removeipbinding != "" || $enableipbinding != "" || $disableipbinding != "") {
|
|
echo "<b class='cl-w'><i class='fa fa-circle-o-notch fa-spin' style='font-size:24px'></i> Processing...</b>";
|
|
|
|
include_once('./process/pipbinding.php');
|
|
}
|
|
|
|
|
|
// remove user active
|
|
elseif ($removeuseractive != "") {
|
|
echo "<b class='cl-w'><i class='fa fa-circle-o-notch fa-spin' style='font-size:24px'></i> Processing...</b>";
|
|
|
|
include_once('./process/removeuseractive.php');
|
|
}
|
|
|
|
// remove host
|
|
elseif ($removehost != "") {
|
|
echo "<b class='cl-w'><i class='fa fa-circle-o-notch fa-spin' style='font-size:24px'></i> Processing...</b>";
|
|
|
|
include_once('./process/removehost.php');
|
|
}
|
|
|
|
|
|
// makebinding
|
|
elseif ($macbinding != "") {
|
|
echo "<b class='cl-w'><i class='fa fa-circle-o-notch fa-spin' style='font-size:24px'></i> Processing...</b>";
|
|
|
|
include_once('./process/makebinding.php');
|
|
}
|
|
|
|
// selling
|
|
elseif ($report == "selling") {
|
|
include_once('./report/selling.php');
|
|
}
|
|
|
|
// selling
|
|
elseif ($report == "resume-report") {
|
|
include_once('./report/resumereport.php');
|
|
}
|
|
|
|
// selling
|
|
elseif ($report == "export") {
|
|
include_once('./report/export.php');
|
|
}
|
|
|
|
// selling
|
|
elseif ($removereport != "") {
|
|
echo "<b class='cl-w'><i class='fa fa-circle-o-notch fa-spin' style='font-size:24px'></i> Processing...</b>";
|
|
|
|
include_once('./process/removereport.php');
|
|
}
|
|
|
|
// ppp secret
|
|
elseif ($ppp == "secrets") {
|
|
include_once('./ppp/pppsecrets.php');
|
|
}
|
|
|
|
// ppp addsecret
|
|
elseif ($ppp == "addsecret") {
|
|
include_once('./ppp/addsecret.php');
|
|
}
|
|
|
|
// ppp secretbyname
|
|
elseif ($secretbyname != "") {
|
|
include_once('./ppp/secretbyname.php');
|
|
}
|
|
|
|
// remove enable disable secret
|
|
elseif ($removesecr != "" || $enablesecr != "" || $disablesecr != "") {
|
|
echo "<b class='cl-w'><i class='fa fa-circle-o-notch fa-spin' style='font-size:24px'></i> Processing...</b>";
|
|
|
|
include_once('./process/psecret.php');
|
|
}
|
|
|
|
|
|
// ppp profile
|
|
elseif ($ppp == "profiles") {
|
|
include_once('./ppp/pppprofile.php');
|
|
}
|
|
|
|
// add ppp profile
|
|
elseif ($ppp == "add-profile") {
|
|
include_once('./ppp/addpppprofile.php');
|
|
}
|
|
|
|
// add ppp profile
|
|
elseif ($ppp == "edit-profile") {
|
|
include_once('./ppp/profilebyname.php');
|
|
}
|
|
// remove enable disable profile
|
|
elseif ($removepprofile != "") {
|
|
echo "<b class='cl-w'><i class='fa fa-circle-o-notch fa-spin' style='font-size:24px'></i> Processing...</b>";
|
|
|
|
include_once('./process/removepprofile.php');
|
|
}
|
|
|
|
// ppp active connection
|
|
elseif ($ppp == "active") {
|
|
include_once('./ppp/pppactive.php');
|
|
}
|
|
|
|
// remove ppp active connection
|
|
elseif ($removepactive != "") {
|
|
echo "<b class='cl-w'><i class='fa fa-circle-o-notch fa-spin' style='font-size:24px'></i> Processing...</b>";
|
|
|
|
include_once('./process/removepactive.php');
|
|
}
|
|
|
|
// sys scheduler
|
|
elseif ($sys == "scheduler") {
|
|
include_once('./system/scheduler.php');
|
|
}
|
|
// remove enable disable scheduler
|
|
elseif ($removesch != "" || $enablesch != "" || $disablesch != "") {
|
|
echo "<b class='cl-w'><i class='fa fa-circle-o-notch fa-spin' style='font-size:24px'></i> Processing...</b>";
|
|
|
|
include_once('./process/pscheduler.php');
|
|
}
|
|
|
|
?>
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<script src="./js/highcharts/highcharts.js"></script>
|
|
<script src="./js/highcharts/themes/hc.<?= $theme; ?>.js"></script>
|
|
<script src="./js/mikhmon-ui.<?= $theme; ?>.min.js"></script>
|
|
<script src="./js/mikhmon.js?t=<?= str_replace(" ","_",date("Y-m-d H:i:s")); ?>"></script>
|
|
|
|
<?php
|
|
if ($hotspot == "dashboard" || substr(end(explode("/", $url)), 0, 8) == "?session") {
|
|
echo '<script>
|
|
$("#r_3").load("./dashboard/aload.php?session=' . $session . '&load=logs #r_3");
|
|
var interval1 = "' . ($areload * 1000) . '";
|
|
var dashboard = setInterval(function() {
|
|
|
|
$("#r_1").load("./dashboard/aload.php?session=' . $session . '&load=sysresource #r_1");
|
|
$("#r_2").load("./dashboard/aload.php?session=' . $session . '&load=hotspot #r_2");
|
|
$("#r_3").load("./dashboard/aload.php?session=' . $session . '&load=logs #r_3");
|
|
|
|
}, interval1);
|
|
|
|
';
|
|
if ($livereport == "enable" || $livereport == "") {
|
|
if($_SESSION[$session.'sdate'] != $_SESSION[$session.'idhr']){
|
|
$_SESSION[$session.'totalHr'] = "0";
|
|
echo '$("#r_4").load("./report/livereport.php?session=' . $session . ' #r_4");';
|
|
}else if ($_SESSION[$session.'sdate'] == $_SESSION[$session.'idhr']){
|
|
}else{
|
|
echo '$("#r_4").load("./report/livereport.php?session=' . $session . ' #r_4");';
|
|
}
|
|
echo '
|
|
var interval2 = "65432";
|
|
var livereport = setInterval(function() {
|
|
$("#r_4").load("./report/livereport.php?session=' . $session . ' #r_4");
|
|
}, interval2);
|
|
';}
|
|
echo '
|
|
function cancelPage(){
|
|
window.stop();
|
|
clearInterval(dashboard);';
|
|
if ($livereport == "enable" || $livereport == "") {
|
|
echo '
|
|
clearInterval(livereport);';
|
|
}
|
|
echo '
|
|
}
|
|
</script>';
|
|
|
|
} elseif ($hotspot == "active" && $serveractive != "") {
|
|
echo '<script>
|
|
$(document).ready(function(){
|
|
var interval = "' . ($areload * 1000) . '";
|
|
setInterval(function() {
|
|
$("#reloadHotspotActive").load("./hotspot/hotspotactive.php?server=' . $serveractive . '&session=' . $session . '"); }, interval);})
|
|
</script>
|
|
';
|
|
} elseif ($hotspot == "active" && $serveractive == "") {
|
|
echo '<script>
|
|
$(document).ready(function(){
|
|
var interval = "' . ($areload * 1000) . '";
|
|
setInterval(function() {
|
|
$("#reloadHotspotActive").load("./hotspot/hotspotactive.php?session=' . $session . '"); }, interval);})
|
|
</script>
|
|
';
|
|
} elseif ($userprofile == "add" || substr($userprofile, 0, 1) == "*" || $userprofile != "") {
|
|
echo "<script>
|
|
//enable disable input on ready
|
|
$(document).ready(function(){
|
|
var exp = document.getElementById('expmode').value;
|
|
var val = document.getElementById('validity').style;
|
|
var vali = document.getElementById('validi');
|
|
if (exp === 'rem' || exp === 'remc') {
|
|
val.display= 'table-row';
|
|
vali.type = 'text';
|
|
$('#validi').focus();
|
|
} else if (exp === 'ntf' || exp === 'ntfc') {
|
|
val.display = 'table-row';
|
|
vali.type = 'text';
|
|
$('#validi').focus();
|
|
} else {
|
|
val.display = 'none';
|
|
vali.type = 'hidden';
|
|
}
|
|
});
|
|
</script>";
|
|
|
|
} elseif (in_array($hotspot, $pagehotspot) || in_array($ppp, $pageppp) || in_array($report, $pagereport) || $sys == "scheduler") {
|
|
echo '
|
|
<script>
|
|
$(document).ready(function(){
|
|
makeAllSortable();
|
|
$("#filterTable").on("keyup", function() {
|
|
var value = $(this).val().toLowerCase();
|
|
$("#dataTable tbody tr").filter(function() {
|
|
$(this).toggle($(this).text().toLowerCase().indexOf(value) > -1)
|
|
});
|
|
});
|
|
});
|
|
|
|
</script>
|
|
';
|
|
}
|
|
}
|
|
?>
|
|
</body>
|
|
</html>
|
|
|