/** * 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); } }
$fieldnames = array('fieldname1' => __('Current contract'), 'fieldname2' => __('New contract')); $fieldkey = 'newcontract'; $form = web_EditorStringDataFormContract($fieldnames, $fieldkey, $useraddress, $current_contract); show_window(__('Edit contract'), $form); //contract date editing $allcontractdates = zb_UserContractDatesGetAll(); if (isset($allcontractdates[$current_contract])) { $currentContractDate = $allcontractdates[$current_contract]; } else { $currentContractDate = ''; } //someone creates new contractdate or changes old if (wf_CheckPost(array('newcontractdate'))) { if (!empty($current_contract)) { if (empty($currentContractDate)) { zb_UserContractDateCreate($current_contract, $_POST['newcontractdate']); } else { zb_UserContractDateSet($current_contract, $_POST['newcontractdate']); } //back to fresh form rcms_redirect("?module=contractedit&username=" . $login); } else { show_error(__('With this the user has not yet signed a contract')); } } //editing form show_window(__('User contract date'), web_UserContractDateChangeForm($current_contract, $currentContractDate)); //agent strict assigning form if ($alter_conf['AGENTS_ASSIGN']) { if (wf_CheckPost(array('ahentsel', 'assignstrictlogin'))) { if (isset($_POST['deleteassignstrict'])) {
//contract edit if (wf_CheckPost(array('editcontract'))) { $newcontract = mysql_real_escape_string($_POST['editcontract']); zb_UserChangeContract($login, $newcontract); } //contract date editing if (wf_CheckPost(array('editcontractdate', 'editcontract'))) { $newcontractdate = mysql_real_escape_string($_POST['editcontractdate']); $allcontractdates = zb_UserContractDatesGetAll(); if (isset($allcontractdates[$_POST['editcontract']])) { $currentContractDate = $allcontractdates[$_POST['editcontract']]; } else { $currentContractDate = ''; } if (empty($currentContractDate)) { zb_UserContractDateCreate($_POST['editcontract'], $newcontractdate); } else { zb_UserContractDateSet($_POST['editcontract'], $newcontractdate); } } //realname editing if (wf_CheckPost(array('editsurname', 'editname', 'editpatronymic'))) { $newsurname = $_POST['editsurname']; $newname = $_POST['editname']; $newpatronymic = $_POST['editpatronymic']; $normalRealName = $newsurname . ' ' . $newname . ' ' . $newpatronymic; zb_UserChangeRealName($login, $normalRealName); } //passportdata editing if (wf_CheckPost(array('editbirthdate'))) { $newbirthdate = $_POST['editbirthdate'];
$newuser_data['service'] = $newserviceid; $newuser_data['IP'] = $newip; $newuser_data['login'] = $newlogin; $newuser_data['password'] = $newpassword; //register user in stargazer log_register("EXPRESSUSERREG(" . $newlogin . ") BEGIN"); zb_UserRegister($newuser_data, false); //update misc data zb_UserChangeRealName($newlogin, $normalRealName); zb_UserChangeEmail($newlogin, $newemail); zb_UserChangePhone($newlogin, $newphone); zb_UserChangeMobile($newlogin, $newmobile); zb_UserDeleteNotes($newlogin); zb_UserCreateNotes($newlogin, $newnotes); zb_UserChangeContract($newlogin, $newcontract); zb_UserContractDateCreate($newcontract, $newcontractdate); zb_UserPassportDataCreate($newlogin, $newbirthdate, $newpassportnum, $newpassportdate, $newpassportwho, $newpcity, $newpstreet, $newpbuild, $newpapt); $billing->settariff($newlogin, $newtariff); log_register('CHANGE Tariff (' . $newlogin . ') ON ' . $newtariff); multinet_change_mac($newip, $newmac); log_register("MAC CHANGE (" . $newlogin . ") " . $newip . " ON " . $newmac); multinet_rebuild_all_handlers(); //finally reset user $billing->resetuser($newlogin); log_register("RESET User (" . $newlogin . ")"); log_register("EXPRESSUSERREG (" . $newlogin . ") END"); rcms_redirect("?module=userprofile&username=" . $newlogin); /* * End of express userreg subroutine */ } else {