2017-03-11 02:51:06 +07:00
< ? php
2024-08-21 17:05:46 +07:00
2023-10-12 15:55:42 +07:00
/**
* PHP Mikrotik Billing ( https :// github . com / hotspotbilling / phpnuxbill / )
* by https :// t . me / ibnux
**/
2023-08-23 12:11:07 +07:00
2017-03-11 02:51:06 +07:00
/**
2023-08-23 12:11:07 +07:00
* used for ajax
**/
2022-09-18 00:00:40 +07:00
2017-03-11 02:51:06 +07:00
_admin ();
2024-02-13 13:54:01 +07:00
$ui -> assign ( '_title' , Lang :: T ( 'Network' ));
2017-03-11 02:51:06 +07:00
$ui -> assign ( '_system_menu' , 'network' );
$action = $routes [ '1' ];
$ui -> assign ( '_admin' , $admin );
switch ( $action ) {
case 'pool' :
2023-08-23 12:11:07 +07:00
$routers = _get ( 'routers' );
2024-08-21 17:05:46 +07:00
if ( empty ( $routers )) {
2023-10-04 11:25:58 +07:00
$d = ORM :: for_table ( 'tbl_pool' ) -> find_many ();
2024-08-21 17:05:46 +07:00
} else {
2023-10-04 11:25:58 +07:00
$d = ORM :: for_table ( 'tbl_pool' ) -> where ( 'routers' , $routers ) -> find_many ();
}
$ui -> assign ( 'routers' , $routers );
2023-08-23 12:11:07 +07:00
$ui -> assign ( 'd' , $d );
2017-03-11 02:51:06 +07:00
$ui -> display ( 'autoload-pool.tpl' );
break ;
2022-09-01 14:52:32 +07:00
2017-03-11 02:51:06 +07:00
case 'server' :
2023-08-23 12:11:07 +07:00
$d = ORM :: for_table ( 'tbl_routers' ) -> where ( 'enabled' , '1' ) -> find_many ();
$ui -> assign ( 'd' , $d );
2022-09-01 14:52:32 +07:00
2017-03-11 02:51:06 +07:00
$ui -> display ( 'autoload-server.tpl' );
break ;
2024-08-21 17:05:46 +07:00
case 'pppoe_ip_used' :
if ( ! empty ( _get ( 'ip' ))) {
$cs = ORM :: for_table ( 'tbl_customers' )
-> select ( " username " )
-> where_not_equal ( 'id' , _get ( 'id' ))
-> where ( " pppoe_ip " , _get ( 'ip' ))
-> findArray ();
if ( count ( $cs ) > 0 ) {
$c = array_column ( $cs , 'username' );
die ( Lang :: T ( " IP has been used by " ) . ' : ' . implode ( " , " , $c ));
}
}
die ();
case 'pppoe_username_used' :
if ( ! empty ( _get ( 'u' ))) {
$cs = ORM :: for_table ( 'tbl_customers' )
-> select ( " username " )
-> where_not_equal ( 'id' , _get ( 'id' ))
-> where ( " pppoe_username " , _get ( 'u' ))
-> findArray ();
if ( count ( $cs ) > 0 ) {
$c = array_column ( $cs , 'username' );
die ( Lang :: T ( " Username has been used by " ) . ' : ' . implode ( " , " , $c ));
}
}
die ();
2017-03-11 02:51:06 +07:00
case 'plan' :
2023-08-23 12:11:07 +07:00
$server = _post ( 'server' );
$jenis = _post ( 'jenis' );
2024-08-21 17:05:46 +07:00
if ( in_array ( $admin [ 'user_type' ], array ( 'SuperAdmin' , 'Admin' ))) {
if ( $server == 'radius' ) {
2024-03-12 13:58:42 +07:00
$d = ORM :: for_table ( 'tbl_plans' ) -> where ( 'is_radius' , 1 ) -> where ( 'type' , $jenis ) -> find_many ();
2024-08-21 17:05:46 +07:00
} else {
2024-03-12 13:58:42 +07:00
$d = ORM :: for_table ( 'tbl_plans' ) -> where ( 'routers' , $server ) -> where ( 'type' , $jenis ) -> find_many ();
}
2024-08-21 17:05:46 +07:00
} else {
if ( $server == 'radius' ) {
2024-03-12 13:58:42 +07:00
$d = ORM :: for_table ( 'tbl_plans' ) -> where ( 'is_radius' , 1 ) -> where ( 'type' , $jenis ) -> where ( 'enabled' , '1' ) -> find_many ();
2024-08-21 17:05:46 +07:00
} else {
2024-03-12 13:58:42 +07:00
$d = ORM :: for_table ( 'tbl_plans' ) -> where ( 'routers' , $server ) -> where ( 'type' , $jenis ) -> where ( 'enabled' , '1' ) -> find_many ();
}
2023-10-04 15:51:51 +07:00
}
2023-08-23 12:11:07 +07:00
$ui -> assign ( 'd' , $d );
2022-09-01 14:52:32 +07:00
2017-03-11 02:51:06 +07:00
$ui -> display ( 'autoload.tpl' );
break ;
2023-09-07 10:54:20 +07:00
case 'customer_is_active' :
$d = ORM :: for_table ( 'tbl_user_recharges' ) -> where ( 'customer_id' , $routes [ '2' ]) -> findOne ();
if ( $d ) {
if ( $d [ 'status' ] == 'on' ) {
2024-08-21 17:05:46 +07:00
die ( '<span class="label label-success" title="Expired ' . Lang :: dateAndTimeFormat ( $d [ 'expiration' ], $d [ 'time' ]) . '">' . $d [ 'namebp' ] . '</span>' );
2023-09-07 10:54:20 +07:00
} else {
2024-08-21 17:05:46 +07:00
die ( '<span class="label label-danger" title="Expired ' . Lang :: dateAndTimeFormat ( $d [ 'expiration' ], $d [ 'time' ]) . '">' . $d [ 'namebp' ] . '</span>' );
2023-09-07 10:54:20 +07:00
}
} else {
2023-09-13 15:50:12 +07:00
die ( '<span class="label label-danger">•</span>' );
2023-09-07 10:54:20 +07:00
}
2023-09-13 15:50:12 +07:00
break ;
2023-08-23 12:11:07 +07:00
case 'customer_select2' :
$s = addslashes ( _get ( 's' ));
if ( empty ( $s )) {
$c = ORM :: for_table ( 'tbl_customers' ) -> limit ( 30 ) -> find_many ();
} else {
2023-12-19 09:55:55 +07:00
$c = ORM :: for_table ( 'tbl_customers' ) -> where_raw ( " (`username` LIKE '% $s %' OR `fullname` LIKE '% $s %' OR `phonenumber` LIKE '% $s %' OR `email` LIKE '% $s %') " ) -> limit ( 30 ) -> find_many ();
2023-08-23 12:11:07 +07:00
}
header ( 'Content-Type: application/json' );
2023-08-23 15:00:34 +07:00
foreach ( $c as $cust ) {
2023-08-23 12:11:07 +07:00
$json [] = [
'id' => $cust [ 'id' ],
2023-08-23 15:00:34 +07:00
'text' => $cust [ 'username' ] . ' - ' . $cust [ 'fullname' ] . ' - ' . $cust [ 'email' ]
2023-08-23 12:11:07 +07:00
];
}
2023-08-23 15:00:34 +07:00
echo json_encode ([ 'results' => $json ]);
2023-08-23 12:11:07 +07:00
die ();
2017-03-11 02:51:06 +07:00
default :
2023-09-27 15:01:48 +07:00
$ui -> display ( 'a404.tpl' );
2023-08-23 12:11:07 +07:00
}