} $inputs = wf_TextInput('gencount', __('Count of users to generate'), '', true); $inputs .= wf_Selector('gentariff', $alltariffs, __('Existing tariff for this users'), '', true); $inputs .= multinet_service_selector() . ' ' . __('Service for new users') . wf_tag('br'); $inputs .= wf_CheckInput('fastsqlgen', __('Fast SQL Inserts - need to shutdown stargazer'), true, false); $inputs .= wf_Submit(__('Go!')); $result = wf_Form("", "POST", $inputs, 'glamour'); show_window(__('Sample user generator'), $result); } web_UserGenForm(); if (wf_CheckPost(array('gencount'))) { $neednum = $_POST['gencount']; $lastBuild = simple_query("SELECT * from `build` ORDER BY `id` DESC LIMIT 1"); $lastBuildId = $lastBuild['id']; $serviceID = $_POST['serviceselect']; $netID = multinet_get_service_networkid($serviceID); $tariff = $_POST['gentariff']; if (!isset($_POST['fastsqlgen'])) { //normal user generation via standard stargazer API for ($i = 1; $i <= $neednum; $i++) { $randomLogin = '******' . zb_rand_string(10); $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; $randomIp = multinet_get_next_freeip('nethosts', 'ip', $netID); $randomFloor = rand(1, 9); $randomEntrance = rand(1, 4); //registering subroutine
/** * Returns ajax ip proposal and control * * @return void */ function ajax_IpEditForm($serviceid) { $serviceid = vf($serviceid, 3); @($ip_proposal = multinet_get_next_freeip('nethosts', 'ip', multinet_get_service_networkid($serviceid))); $result = wf_TextInput('editip', '', $ip_proposal, false, '20'); die($result); }
/** * 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); } }
zb_UserPassportDataChange($login, $newbirthdate, $newpassportnum, $newpassportdate, $newpassportwho, $newpcity, $newpstreet, $newpbuild, $newpapt); } //tariff editing if (wf_CheckPost(array('edittariff'))) { $newtariff = $_POST['edittariff']; $billing->settariff($login, $newtariff); log_register('CHANGE Tariff (' . $login . ') ON ' . $newtariff); } //ip editing if (wf_CheckPost(array('editip'))) { $service = $_POST['serviceselect']; //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 {
/** * 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; }
} $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); } } // primary module part if (isset($_POST['serviceselect'])) { $new_multinet_id = multinet_get_service_networkid($_POST['serviceselect']); @($new_free_ip = multinet_get_next_freeip('nethosts', 'ip', $new_multinet_id)); if (empty($new_free_ip)) { $alert = wf_tag('script', false, '', 'type="text/javascript"') . 'alert("' . __('Error') . ': ' . __('No free IP available in selected pool') . '");' . wf_tag('script', true); print $alert; rcms_redirect("?module=multinet"); die; } zb_IPChange($current_ip, $current_mac, $new_multinet_id, $new_free_ip, $login); log_register("CHANGE MultiNetIP (" . $login . ") FROM " . $current_ip . " ON " . $new_free_ip . ""); rcms_redirect("?module=pl_ipchange&username="******"both" />'); show_window(__('Change user IP'), web_IPChangeFormService()); show_window(__('IP usage stats'), web_FreeIpStats()); }
$newip = $_POST['editip']; $newip = mysql_real_escape_string($newip); $newpassword = zb_RegPasswordProposal(); $newsurname = $_POST['newsurname']; $newname = $_POST['newname']; $newpatronymic = $_POST['newpatronymic']; $normalRealName = $newsurname . ' ' . $newname . ' ' . $newpatronymic; $newnotes = $_POST['newnotes']; //filter login, and check for unique $newlogin = $_POST['newlogin']; $newlogin = vf($newlogin); if (!empty($newlogin)) { $logincheck = simple_query("SELECT `login` from `users` WHERE `login`='" . $newlogin . "'"); if (!$logincheck) { $newserviceid = $_POST['serviceselect']; $newnetid = multinet_get_service_networkid($newserviceid); //check apt data $newcityid = $_POST['citybox']; $newstreetid = $_POST['streetbox']; $newbuildid = $_POST['buildbox']; $newaptnum = $_POST['createapt']; $newentrance = $_POST['createentrance']; $newfloor = $_POST['createfloor']; //check passport data if (!@$_POST['custompaddress']) { $newpcity = $_POST['newpcity']; $newpstreet = $_POST['newpstreet']; $newpbuild = $_POST['newpbuild']; $newpapt = $_POST['newpapt']; } else { //use the same passport address