diff --git a/README.md b/README.md index 88c4b2ae..a27f2d56 100644 --- a/README.md +++ b/README.md @@ -3,11 +3,11 @@ @ibnux notes: ---- -> The project maybe has been abandoned -> maybe the dev busy -> and nobody donate to him -> i will try to update as far as i can -> any Modification will be update in here +> The project maybe has been abandoned, +> maybe the dev busy, +> and nobody donate to him, +> i will try to update as far as i can, +> any Modification will be update in here. ### iBNuX Todos diff --git a/system/controllers/customers.php b/system/controllers/customers.php index 8c8fb6e4..d0df0663 100644 --- a/system/controllers/customers.php +++ b/system/controllers/customers.php @@ -113,11 +113,19 @@ switch ($action) { $removeRequest->setArgument('numbers', $id); $client->sendSync($removeRequest); } - $d->delete(); - $c->delete(); + try{ + $d->delete(); + }catch(Exception $e){} + try{ + $c->delete(); + }catch(Exception $e){} }else{ - $d->delete(); - $c->delete(); + try{ + $d->delete(); + }catch(Exception $e){} + try{ + $c->delete(); + }catch(Exception $e){} } r2(U . 'customers/list', 's', $_L['User_Delete_Ok']); diff --git a/system/controllers/prepaid.php b/system/controllers/prepaid.php index 93026215..fda5e2cf 100644 --- a/system/controllers/prepaid.php +++ b/system/controllers/prepaid.php @@ -95,6 +95,7 @@ switch ($action) { } catch (Exception $e) { die('Unable to connect to the router.'); } + $printRequest = new RouterOS\Request( '/ip hotspot user print .proplist=name', RouterOS\Query::where('name', $c['username']) diff --git a/system/controllers/register.php b/system/controllers/register.php new file mode 100644 index 00000000..27cac6a9 --- /dev/null +++ b/system/controllers/register.php @@ -0,0 +1,235 @@ +where('code',$code)->where('status',0)->find_one(); + if ($v1){ + $msg = ''; + if(Validator::Length($username,35,2) == false){ + $msg .= 'Username should be between 3 to 55 characters'. '
'; + } + if(Validator::Length($fullname,36,2) == false){ + $msg .= 'Full Name should be between 3 to 25 characters'. '
'; + } + if(!Validator::Length($password,35,2)){ + $msg .= 'Password should be between 3 to 35 characters'. '
'; + + } + if($password != $cpassword){ + $msg .= $_L['PasswordsNotMatch']. '
'; + } + + $d = ORM::for_table('tbl_customers')->where('username',$username)->find_one(); + if($d){ + $msg .= $_L['account_already_exist']. '
'; + } + if($msg == ''){ + $d = ORM::for_table('tbl_customers')->create(); + $d->username = $username; + $d->password = $password; + $d->fullname = $fullname; + $d->address = $address; + $d->phonenumber = $phonenumber; + if($d->save()){ + $user = $d->id(); + //check voucher plan + $p = ORM::for_table('tbl_plans')->find_one($v1['id_plan']); + $c = ORM::for_table('tbl_customers')->find_one($user); + $p = ORM::for_table('tbl_plans')->find_one($v1['id_plan']); + + $date_now = date("Y-m-d H:i:s"); + $date_only = date("Y-m-d"); + $time = date("H:i:s"); + + $mikrotik = Router::_info($v1['routers']); + $date_exp = date("Y-m-d", mktime(0,0,0,date("m"),date("d") + $p['validity'],date("Y"))); + + if($v1['type'] == 'Hotspot'){ + try { + $client = new RouterOS\Client($mikrotik['ip_address'], $mikrotik['username'], $mikrotik['password']); + } catch (Exception $e) { + die('Unable to connect to the router.'); + } + $addRequest = new RouterOS\Request('/ip/hotspot/user/add'); + $client->sendSync($addRequest + ->setArgument('name', $c['username']) + ->setArgument('profile', $p['name_plan']) + ->setArgument('password', $c['password']) + ); + + $d = ORM::for_table('tbl_user_recharges')->create(); + $d->customer_id = $user; + $d->username = $c['username']; + $d->plan_id = $v1['id_plan']; + $d->namebp = $p['name_plan']; + $d->recharged_on = $date_only; + $d->expiration = $date_exp; + $d->time = $time; + $d->status = "on"; + $d->method = "voucher"; + $d->routers = $v1['routers']; + $d->type = "Hotspot"; + $d->save(); + + // insert table transactions + $t = ORM::for_table('tbl_transactions')->create(); + $t->invoice = "INV-"._raid(5); + $t->username = $c['username']; + $t->plan_name = $p['name_plan']; + $t->price = $p['price']; + $t->recharged_on = $date_only; + $t->expiration = $date_exp; + $t->time = $time; + $t->method = "voucher"; + $t->routers = $v1['routers']; + $t->type = "Hotspot"; + $t->save(); + + $v1->status = "1"; + $v1->user = $c['username']; + $v1->save(); + + }else{ + try { + $client = new RouterOS\Client($mikrotik['ip_address'], $mikrotik['username'], $mikrotik['password']); + } catch (Exception $e) { + die('Unable to connect to the router.'); + } + $addRequest = new RouterOS\Request('/ppp/secret/add'); + $client->sendSync($addRequest + ->setArgument('name', $c['username']) + ->setArgument('service', 'pppoe') + ->setArgument('profile', $p['name_plan']) + ->setArgument('password', $c['password']) + ); + + $d = ORM::for_table('tbl_user_recharges')->create(); + $d->customer_id = $user; + $d->username = $c['username']; + $d->plan_id = $v1['id_plan']; + $d->namebp = $p['name_plan']; + $d->recharged_on = $date_only; + $d->expiration = $date_exp; + $d->time = $time; + $d->status = "on"; + $d->method = "voucher"; + $d->routers = $v1['routers']; + $d->type = "PPPOE"; + $d->save(); + + // insert table transactions + $t = ORM::for_table('tbl_transactions')->create(); + $t->invoice = "INV-"._raid(5); + $t->username = $c['username']; + $t->plan_name = $p['name_plan']; + $t->price = $p['price']; + $t->recharged_on = $date_only; + $t->expiration = $date_exp; + $t->time = $time; + $t->method = "voucher"; + $t->routers = $v1['routers']; + $t->type = "PPPOE"; + $t->save(); + + $v1->status = "1"; + $v1->user = $c['username']; + $v1->save(); + } + r2(U . 'login', 's', $_L['Register_Success']); + }else{ + $ui->assign('username', $username); + $ui->assign('fullname', $fullname); + $ui->assign('address', $address); + $ui->assign('phonenumber', $phonenumber); + $ui->assign('notify','
+ +
Failed to register
'); + $ui->display('register.tpl'); + } + //r2(U . 'register', 's', $_L['account_created_successfully']); + }else{ + $ui->assign('username', $username); + $ui->assign('fullname', $fullname); + $ui->assign('address', $address); + $ui->assign('phonenumber', $phonenumber); + $ui->assign('notify','
+ +
'.$msg.'
'); + $ui->display('register.tpl'); + } + }else{ + $ui->assign('username', $username); + $ui->assign('fullname', $fullname); + $ui->assign('address', $address); + $ui->assign('phonenumber', $phonenumber); + $ui->assign('notify','
+ +
'.$_L['Voucher_Not_Valid'].'
'); + $ui->display('register.tpl'); + //r2(U . 'register', 'e', $_L['Voucher_Not_Valid']); + } + /*$password = _post('password'); + if($username != '' AND $password != ''){ + $d = ORM::for_table('tbl_customers')->where('username',$username)->find_one(); + if($d){ + $d_pass = $d['password']; + if(Password::_uverify($password,$d_pass) == true){ + $_SESSION['uid'] = $d['id']; + $d->last_login = date('Y-m-d H:i:s'); + $d->save(); + _log($username .' '. $_L['Login_Successful'],'User',$d['id']); + r2(U.'home'); + }else{ + _msglog('e',$_L['Invalid_Username_or_Password']); + _log($username .' '. $_L['Failed_Login'],'User'); + r2(U.'login'); + } + }else{ + _msglog('e',$_L['Invalid_Username_or_Password']); + r2(U.'login'); + } + }else{ + _msglog('e',$_L['Invalid_Username_or_Password']); + r2(U.'login'); + }*/ + + break; + + case 'register-display': + $ui->display('register.tpl'); + break; + + default: + $ui->display('register.tpl'); + break; +} + diff --git a/system/cron.php b/system/cron.php index 942bb791..6ba4e684 100644 --- a/system/cron.php +++ b/system/cron.php @@ -44,6 +44,7 @@ foreach ($d as $ds){ } catch (Exception $e) { die('Unable to connect to the router.'); } + $printRequest = new RouterOS\Request('/ip/hotspot/user/print'); $printRequest->setArgument('.proplist', '.id'); $printRequest->setQuery(RouterOS\Query::where('name', $c['username'])); diff --git a/system/install/step4.php b/system/install/step4.php index 9bf05e84..b188324d 100644 --- a/system/install/step4.php +++ b/system/install/step4.php @@ -32,12 +32,11 @@ if ($cn == '1') { $db_password = \'' . $db_password . '\'; $db_name = \'' . $db_name . '\'; define(\'APP_URL\', \'' . $appurl . '\'); - $_app_stage = \'Live\'; - '; + $_app_stage = \'Live\';'; $wConfig = "../config.php"; $fh = fopen($wConfig, 'w') or die("Can't create config file, your server does not support 'fopen' function, please create a file named - config.php with following contents-
$input"); - + fwrite($fh, $input); fclose($fh); diff --git a/system/lan/english/common.lan.php b/system/lan/english/common.lan.php index 2beb4291..70ad9dc1 100644 --- a/system/lan/english/common.lan.php +++ b/system/lan/english/common.lan.php @@ -5,15 +5,25 @@ Language Name: English Contributor: Ismail Marzuqi Web: www.phpmixbill.com Email: iesien22@yahoo.com + +2017 +Contributor: Ibnu Maksum (@ibnux) + ------------------------------------ */ -$_L['Login'] = 'Login'; -$_L['Sign_In_Member'] = 'Sign In to Member Panel'; -$_L['Sign_In_Admin'] = 'Sign In to Admin Panel'; +$_L['Login'] = 'Log-in'; +$_L['Register'] = 'Register'; +$_L['Register_Voucher_Failed'] = 'Voucher not found, please buy voucher befor register'; +$_L['Register_Success'] = 'Register Success! You can login now'; +$_L['Sign_In_Member'] = 'Log in to Member Panel'; +$_L['Register_Member'] = 'Register as Member'; +$_L['Sign_In_Admin'] = 'Masuk ke Admin Panel'; $_L['Logo'] = 'PHPMixBill'; $_L['Username'] = 'Username'; $_L['Password'] = 'Password'; +$_L['PasswordsNotMatch'] = 'Passwords does not match'; +$_L['account_already_exist'] = 'Account already axist'; $_L['Manage'] = 'Manage'; $_L['Submit'] = 'Submit'; $_L['Save'] = 'Save Changes'; diff --git a/system/lan/indonesia/common.lan.php b/system/lan/indonesia/common.lan.php index 329dcf2c..273c15c5 100644 --- a/system/lan/indonesia/common.lan.php +++ b/system/lan/indonesia/common.lan.php @@ -5,15 +5,25 @@ Language Name: Indonesia Contributor: Ismail Marzuqi Web: www.phpmixbill.com Email: iesien22@yahoo.com + +2017 +Contributor: Ibnu Maksum (@ibnux) + ------------------------------------ */ $_L['Login'] = 'Masuk'; +$_L['Register'] = 'Daftar'; +$_L['Register_Voucher_Failed'] = 'Voucher tidak ditemukan, mohon beli dulu Voucher sebelum mendaftar'; +$_L['Register_Success'] = 'Pendaftaran sukses!
silahkan masuk'; $_L['Sign_In_Member'] = 'Masuk ke Member Panel'; +$_L['Register_Member'] = 'Mendaftar sebagai pelanggan
pastikan anda sudah membeli voucher'; $_L['Sign_In_Admin'] = 'Masuk ke Admin Panel'; $_L['Logo'] = 'PHPMixBill'; $_L['Username'] = 'Username'; $_L['Password'] = 'Password'; +$_L['PasswordsNotMatch'] = 'Sandi tidak sama'; +$_L['account_already_exist'] = 'Username sudah ada yang menggunakan'; $_L['Manage'] = 'Proses'; $_L['Submit'] = 'Kirim'; $_L['Save'] = 'Simpan Perubahan'; diff --git a/ui/theme/default/login.tpl b/ui/theme/default/login.tpl index 486a7c01..c69d0493 100644 --- a/ui/theme/default/login.tpl +++ b/ui/theme/default/login.tpl @@ -29,7 +29,7 @@
-

{$_L['Logo']}

+

{$_c['CompanyName']}

{$_L['Sign_In_Member']}
{if isset($notify)} @@ -38,7 +38,7 @@
- +
@@ -57,12 +57,14 @@
- + +
+
-
diff --git a/ui/theme/default/register.tpl b/ui/theme/default/register.tpl new file mode 100644 index 00000000..69338d8f --- /dev/null +++ b/ui/theme/default/register.tpl @@ -0,0 +1,85 @@ + + + + + + {$_title} - {$_L['Register']} + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+

{$_c['CompanyName']}

+
{$_L['Register_Member']}
+
+ {if isset($notify)} + {$notify} + {/if} +
+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+
+ +
+ +
+ +
+
+
+
+
+
+ + + \ No newline at end of file