debarr($user); //typical register of each user $login = vf($user['login']); $password = vf($user['password']); $ip = $user['ip']; $iopts = unserialize(base64_decode($import_opts)); $netid = $iopts['netid']; //Ubilling normal registration mode if ($iopts['regtype'] == 'UB') { $billing->createuser($login); log_register("StgUser REGISTER " . $login); $billing->setpassword($login, $password); log_register("StgUser PASSWORD " . $password); $billing->setip($login, $ip); log_register("StgUser IP " . $ip); multinet_add_host($netid, $ip); zb_UserCreateRealName($login, $user['realname']); zb_UserCreatePhone($login, $user['phone'], $user['mobile']); zb_UserCreateContract($login, $user['contract']); zb_UserCreateEmail($login, $user['email']); zb_UserCreateSpeedOverride($login, 0); multinet_change_mac($ip, $user['mac']); multinet_rebuild_all_handlers(); $billing->setao($login, $user['ao']); $dstat = 1; $billing->setdstat($login, $dstat); $billing->setdown($login, $user['down']); $billing->setpassive($login, $user['passive']); $billing->settariff($login, $user['tariff']); $billing->setcredit($login, $user['credit']); $billing->setcash($login, $user['cash']);
function docsis_ModemAdd($maclan) { $maclan = mysql_real_escape_string($maclan); //random mac for usb $macusb = '14:' . '88' . ':' . rand(10, 99) . ':' . rand(10, 99) . ':' . rand(10, 99) . ':' . rand(10, 99); $altercfg = rcms_parse_ini_file(CONFIG_PATH . '/alter.ini'); $netid = $altercfg['DOCSIS_MODEM_NETID']; $nextfreeip = multinet_get_next_freeip('nethosts', 'ip', $netid); $note = ''; $userbind = ''; $basetemplate = 'short'; $date = curdate(); //check for free ip in subnet if (!empty($nextfreeip)) { $nic = str_replace('.', 'x', $nextfreeip); //check is mac unique? if (multinet_mac_free($maclan) and check_mac_format($maclan)) { $query = "INSERT INTO `modems` (\n `id` ,\n `maclan` ,\n `macusb` ,\n `date` ,\n `ip` ,\n `conftemplate` ,\n `userbind` ,\n `nic` ,\n `note`\n )\n VALUES (\n NULL , '" . $maclan . "', '" . $maclan . "', '" . $date . "', '" . $nextfreeip . "', '" . $basetemplate . "', '' , '" . $nic . "', ''\n );"; nr_query($query); $lastid = simple_get_lastid('modems'); log_register("DOCSIS MODEM ADD MAC" . $maclan . " IP " . $nextfreeip . "[" . $lastid . "]"); multinet_add_host($netid, $nextfreeip, $maclan, ''); multinet_rebuild_all_handlers(); rcms_redirect("?module=docsis&showmodem=" . $lastid); } else { show_window(__('Error'), __('This MAC is currently used') . ' ' . __('This MAC have wrong format')); } } else { show_window(__('Error'), __('No free IP available in selected pool')); } }
$randomPassword = zb_rand_string(8); $randomName = $names[array_rand($names)] . ' ' . $surnames[array_rand($surnames)]; $randomPhone = rand(111111, 999999); $randomMobile = '380' . rand(1111111, 9999999); $randomMac = '14:' . '88' . ':' . rand(10, 99) . ':' . rand(10, 99) . ':' . rand(10, 99) . ':' . rand(10, 99); $randomApt = $i; $randomCash = rand(0, 500); $randomIp = multinet_get_next_freeip('nethosts', 'ip', $netID); $randomFloor = rand(1, 9); $randomEntrance = rand(1, 4); //registering subroutine $querybuff = "\n INSERT INTO `users` (\n `login`,\n `Password`,\n `Passive`,\n `Down`,\n `DisabledDetailStat`,\n `AlwaysOnline`,\n `Tariff`,\n `Address`,\n `Phone`,\n `Email`,\n `Note`,\n `RealName`,\n `StgGroup`,\n `Credit`,\n `TariffChange`,\n `Userdata0`,\n `Userdata1`,\n `Userdata2`,\n `Userdata3`,\n `Userdata4`,\n `Userdata5`,\n `Userdata6`,\n `Userdata7`,\n `Userdata8`,\n `Userdata9`,\n `CreditExpire`,\n `IP`,\n `D0`,\n `U0`,\n `D1`,\n `U1`,\n `D2`,\n `U2`,\n `D3`,\n `U3`,\n `D4`,\n `U4`,\n `D5`,\n `U5`, \n `D6`, \n `U6`,\n `D7`, \n `U7`, \n `D8`,\n `U8`,\n `D9`,\n `U9`,\n `Cash`,\n `FreeMb`,\n `LastCashAdd`,\n `LastCashAddTime`,\n `PassiveTime`,\n `LastActivityTime`,\n `NAS`)\n VALUES (\n '" . $randomLogin . "',\n '" . $randomPassword . "',\n '0',\n '0',\n '1',\n '1',\n '" . $tariff . "',\n '',\n '',\n '',\n '',\n '',\n '',\n '0',\n '', \n '',\n '',\n '',\n '', \n '', \n '', \n '', \n '',\n '', \n '', \n '0',\n '" . $randomIp . "',\n '0',\n '0',\n '0',\n '0',\n '0', \n '0',\n '0',\n '0', \n '0',\n '0',\n '0',\n '0',\n '0', \n '0',\n '0',\n '0', \n '0', \n '0', \n '0', \n '0', \n '" . $randomCash . "',\n '0',\n '0', \n '0',\n '0', \n '0',\n '');\n "; //push da query! nr_query($querybuff); zb_AddressCreateApartment($lastBuildId, $randomEntrance, $randomFloor, $randomApt); zb_AddressCreateAddress($randomLogin, zb_AddressGetLastid()); multinet_add_host($netID, $randomIp); zb_UserCreateRealName($randomLogin, $randomName); zb_UserCreatePhone($randomLogin, $randomPhone, $randomMobile); zb_UserCreateContract($randomLogin, ''); zb_UserCreateEmail($randomLogin, ''); zb_UserCreateSpeedOverride($randomLogin, 0); multinet_change_mac($randomIp, $randomMac); zb_UserRegisterLog($randomLogin); log_register("SAMPLE GENERATION OF (" . $randomLogin . ") DONE"); } } } } else { show_error(__('Permission denied')); }
/** * Performs an user registration * * @global object $billing * @param array $user_data * @param bool $goprofile */ function zb_UserRegister($user_data, $goprofile = true) { global $billing; // Init all of needed user data $login = vf($user_data['login']); $login = zb_RegLoginFilter($login); $password = vf($user_data['password']); $ip = $user_data['IP']; $cityid = $user_data['city']; $streetid = $user_data['street']; $buildid = $user_data['build']; @($entrance = $user_data['entrance']); @($floor = $user_data['floor']); $apt = $user_data['apt']; $serviceid = $user_data['service']; $netid = multinet_get_service_networkid($serviceid); $busylogins = zb_AllBusyLogins(); //check login lenght $maxStLen = 42; $loginLen = strlen($login); if ($loginLen > $maxStLen) { log_register("HUGELOGIN REGISTER TRY (" . $login . ")"); $alert = __('Attention generated login longer than') . ' ' . $maxStLen . ' ' . __('bytes') . '. (' . $login . ' > ' . $loginLen . ') ' . __('And is not compatible with Stargazer') . '.'; die($alert); } // empty login validation if (empty($login)) { $alert = wf_tag('script', false, '', 'type="text/javascript"'); $alert .= 'alert("' . __('Error') . ': ' . __('Empty login') . '");'; $alert .= wf_tag('script', true); print $alert; rcms_redirect("?module=userreg"); die; } //duplicate login validation if (isset($busylogins[$login])) { $alert = wf_tag('script', false, '', 'type="text/javascript"'); $alert .= 'alert("' . __('Error') . ': ' . __('Duplicate login') . '");'; $alert .= wf_tag('script', true); print $alert; rcms_redirect("?module=userreg"); die; } //last check if (!zb_ip_unique($ip)) { $alert = wf_tag('script', false, '', 'type="text/javascript"'); $alert .= 'alert("' . __('Error') . ': ' . __('This IP is already used by another user') . '");'; $alert .= wf_tag('script', true); print $alert; rcms_redirect("?module=userreg"); die; } // registration subroutine $billing->createuser($login); log_register("StgUser REGISTER (" . $login . ")"); $billing->setpassword($login, $password); log_register("StgUser (" . $login . ") PASSWORD `" . $password . "`"); $billing->setip($login, $ip); log_register("StgUser (" . $login . ") IP `" . $ip . "`"); zb_AddressCreateApartment($buildid, $entrance, $floor, $apt); zb_AddressCreateAddress($login, zb_AddressGetLastid()); multinet_add_host($netid, $ip); zb_UserCreateRealName($login, ''); zb_UserCreatePhone($login, '', ''); zb_UserCreateContract($login, ''); zb_UserCreateEmail($login, ''); zb_UserCreateSpeedOverride($login, 0); zb_UserRegisterLog($login); // if random mac needed $billingconf = rcms_parse_ini_file(CONFIG_PATH . '/billing.ini'); $alterconf = rcms_parse_ini_file(CONFIG_PATH . "alter.ini"); if ($billingconf['REGRANDOM_MAC']) { // funny random mac, yeah? :) $mac = '14:' . '88' . ':' . rand(10, 99) . ':' . rand(10, 99) . ':' . rand(10, 99) . ':' . rand(10, 99); multinet_change_mac($ip, $mac); multinet_rebuild_all_handlers(); } // if AlwaysOnline to new user needed if ($billingconf['REGALWONLINE']) { $alwaysonline = 1; $billing->setao($login, $alwaysonline); log_register('CHANGE AlwaysOnline (' . $login . ') ON ' . $alwaysonline); } // if we want to disable detailed stats to new user by default if ($billingconf['REGDISABLEDSTAT']) { $dstat = 1; $billing->setdstat($login, $dstat); log_register('CHANGE dstat (' . $login . ') ON ' . $dstat); } //set contract same as login for this user if (isset($alterconf['CONTRACT_SAME_AS_LOGIN'])) { if ($alterconf['CONTRACT_SAME_AS_LOGIN']) { $newUserContract = $login; zb_UserChangeContract($login, $newUserContract); } } //cemetery processing if (isset($alterconf['CEMETERY_ENABLED'])) { if ($alterconf['CEMETERY_ENABLED']) { if ($alterconf['CEMETERY_ENABLED'] == 2) { $cemetery = new Cemetery(false); $cemetery->setDead($login); } } } //contract autogeneration if (isset($alterconf['CONTRACT_AUTOGEN'])) { if ($alterconf['CONTRACT_AUTOGEN']) { $contract_proposal = ''; $allcontracts = zb_UserGetAllContracts(); $top_offset = 100000; //contract generation mode default if ($alterconf['CONTRACT_GENERATION_DEFAULT']) { for ($i = 1; $i < $top_offset; $i++) { if (!isset($allcontracts[$i])) { $contract_proposal = $i; break; } } } else { //alternate generation method $max_contract = max(array_keys($allcontracts)); $contract_proposal = $max_contract + 1; } //setting generated contract to new user if (!isset($allcontracts[$contract_proposal])) { $contractDate = date("Y-m-d"); zb_UserChangeContract($login, $contract_proposal); zb_UserContractDateCreate($contract_proposal, $contractDate); } } } /////////////////////////////////// if ($goprofile) { rcms_redirect("?module=userprofile&username=" . $login); } }
//if ip is not a same if ($service != 'SAME') { $currentip = zb_UserGetIP($login); $currentmac = zb_MultinetGetMAC($currentip); $newnetid = multinet_get_service_networkid($service); $newip = trim($_POST['editip']); $newip = mysql_real_escape_string($newip); @($checkfreeip = multinet_get_next_freeip('nethosts', 'ip', $newnetid)); if (!empty($checkfreeip)) { //check is ip acceptable for this pool? $allfreeips = multinet_get_all_free_ip('nethosts', 'ip', $newnetid); $allfreeips = array_flip($allfreeips); if (isset($allfreeips[$newip])) { $billing->setip($login, $newip); multinet_delete_host($currentip); multinet_add_host($newnetid, $newip, $currentmac); multinet_rebuild_all_handlers(); multinet_RestartDhcp(); log_register("CHANGE MultiNetIP (" . $login . ") FROM " . $currentip . " ON " . $newip); } else { $alert = ' <script type="text/javascript"> alert("' . __('Error') . ': ' . __('Wrong IP') . '"); document.location.href="?module=expresscard&username='******'"; </script> '; die($alert); } } else { //no free IPs left in network $alert = '
/** * Performs user changing IP subroutine * * @global object $billing * @param int $serviceId * @param string $newIp * * @return void/string */ public function changeUserIp($serviceId, $newIp) { global $billing; $result = ''; $serviceId = vf($serviceId, 3); $networkId = multinet_get_service_networkid($serviceId); if (isset($this->allServices[$serviceId])) { if (zb_ip_unique($newIp)) { if (!empty($this->currentIp)) { if ($this->isNethostExists()) { //force user disconnect if ($this->billingCfg['RESET_AO']) { $billing->setao($this->login, 0); } else { $billing->setdown($this->login, 1); } $billing->setip($this->login, $newIp); multinet_delete_host($this->currentIp); multinet_add_host($networkId, $newIp, $this->currentMac); log_register("CHANGE MultiNetIP (" . $this->login . ") FROM " . $this->currentIp . " ON " . $newIp . ""); multinet_rebuild_all_handlers(); multinet_RestartDhcp(); //back teh user online if ($this->billingCfg['RESET_AO']) { $billing->setao($this->login, 1); } else { $billing->setdown($this->login, 0); } } else { log_register("CHANGE FAIL MultiNetIP (" . $this->login . ") FROM " . $this->currentIp . " ON " . $newIp . " NO_NETHOST"); $result = __('No existing nethost for current IP'); } } else { log_register("CHANGE FAIL MultiNetIP (" . $this->login . ") FROM " . $this->currentIp . " ON " . $newIp . " EMPTY_IP"); $result = __('Something went wrong') . ': ' . __('empty current IP'); } } else { log_register("CHANGE FAIL MultiNetIP (" . $this->login . ") FROM " . $this->currentIp . " ON " . $newIp . " IP_DUPLICATE"); $result = __('This IP is already used by another user'); } } else { log_register("CHANGE FAIL MultiNetIP (" . $this->login . ") FROM " . $this->currentIp . " ON " . $newIp . " NO_SERVICE"); $result = __('Unexistent service'); } return $result; }
/** * Flushes all old user`s networking data and applies new one * * @param string $current_ip current users`s IP * @param string $current_mac current users`s MAC address * @param int $new_multinet_id new network ID extracted from service * @param string $new_free_ip new IP address which be applied for user * @param string $login existing stargazer user login * * @return void */ function zb_IPChange($current_ip, $current_mac, $new_multinet_id, $new_free_ip, $login) { global $billing; global $billingConf; //force user disconnect if ($billingConf['RESET_AO']) { $billing->setao($login, 0); } else { $billing->setdown($login, 1); } $billing->setip($login, $new_free_ip); multinet_delete_host($current_ip); multinet_add_host($new_multinet_id, $new_free_ip, $current_mac); multinet_rebuild_all_handlers(); multinet_RestartDhcp(); //back teh user online if ($billingConf['RESET_AO']) { $billing->setao($login, 1); } else { $billing->setdown($login, 0); } }