/** * Remove lousy mark * * @param $tariff tariff name * */ function zb_LousyTariffDelete($tariff) { $tariff = mysql_real_escape_string($tariff); $query = "DELETE from `lousytariffs` WHERE `tariff`='" . $tariff . "' "; nr_query($query); log_register("LOUSYTARIFF DELETE `" . $tariff . "`"); }
/** * Performs replication of administrators rights to existing user * * @global object $system * @param string $sourceUser * @param string $targetUser */ function zb_PermissionsCopyAdminRights($sourceUser, $targetUser) { global $system; $targetRights = array(); $rootUser = ''; $rights = array(); $system->getRightsForUser($sourceUser, $rights, $root, $level); if ($root) { $rootUser = 1; } else { if (!empty($rights)) { foreach ($rights as $eachright => $desc) { $targetRights[$eachright] = 'on'; } } } //writing changes if ($system->setRightsForUser($targetUser, $targetRights, $rootUser, '1')) { show_window('', __('Rights cloned')); log_register("CLONE AdminPermissions FROM {" . $sourceUser . "} TO {" . $targetUser . "}"); rcms_redirect("?module=permissions&edit=" . $targetUser); } else { show_error(__('Error occurred')); } }
/** * Deletes message by its id * * @param int $msgid message id from `ub_im` * * @return void */ function im_DeleteMessage($msgid) { $msgid = vf($msgid, 3); $query = "DELETE from `ub_im` WHERE `id`='" . $msgid . "'"; nr_query($query); log_register("UBIM DELETE [" . $msgid . "]"); }
function zb_AnnihilateUser($login) { global $billing; $alter_conf = rcms_parse_ini_file(CONFIG_PATH . "alter.ini"); $user_ip = zb_UserGetIP($login); $user_aptdata = zb_AddressGetAptData($login); @($user_aptid = $user_aptdata['aptid']); zb_AddressDeleteApartment($user_aptid); zb_AddressOrphanUser($login); zb_UserDeleteEmail($login); zb_UserDeleteNotes($login); zb_UserDeletePhone($login); zb_UserDeleteRealName($login); zb_UserDeleteSpeedOverride($login); if (!$alter_conf['STRICT_CONTRACTS_PROTECT']) { zb_UserDeleteContract($login); } zb_VserviceCashClear($login); log_register("DELETE VCASH (" . $login . ")"); cf_FlushAllUserCF($login); zb_FlushAllUserTags($login); vlan_delete_host($login); multinet_delete_host($user_ip); multinet_rebuild_all_handlers(); //destroy stargazer user $billing->deleteuser($login); log_register("StgUser DELETE (" . $login . ")"); }
public function flushCredit($login) { global $billing; $login = mysql_real_escape_string($login); $credit = 0; $curdate = curdate(); $billing->setcredit($login, $credit); log_register('CHANGE FIX Credit (' . $login . ') ON ' . $credit); $billing->setcreditexpire($login, $curdate); log_register('CHANGE FIX CreditExpire (' . $login . ') ON ' . $curdate); }
public function save($id) { $id = vf($id, 3); if (isset($this->data[$id])) { simple_update_field('zbsannouncements', 'public', $_POST['editpublic'], "WHERE `id`='" . $id . "'"); simple_update_field('zbsannouncements', 'type', $_POST['edittype'], "WHERE `id`='" . $id . "'"); simple_update_field('zbsannouncements', 'title', $_POST['edittitle'], "WHERE `id`='" . $id . "'"); simple_update_field('zbsannouncements', 'text', $_POST['edittext'], "WHERE `id`='" . $id . "'"); log_register("ANNOUNCEMENT EDIT [" . $id . "]"); } else { throw new Exception(self::EX_ID_NO_EXIST); } }
function zb_SetHelpdeskUnDenied($login) { $access = zb_GetHelpdeskDeniedAll(); if (!empty($login)) { if (isset($access[$login])) { unset($access[$login]); $newarray = serialize($access); $newarray = base64_encode($newarray); zb_StorageSet('ZBS_HELP_DENIED', $newarray); log_register("ZBSMAN SET ALLOWED (" . $login . ")"); } } }
function zb_PaySysPercentDelete($mark) { $mark = mysql_real_escape_string($mark); $olddata = zb_PaySysPercentGetAll(); $newdata = $olddata; if (isset($newdata[$mark])) { unset($newdata[$mark]); $newdata = serialize($newdata); $newdata = base64_encode($newdata); zb_StorageSet('PAYSYSPC', $newdata); log_register("PAYSYSPC DELETE `" . $mark . "`"); } }
function ms_MassSendMessage($users_arr, $message) { global $alter_conf; if (!empty($users_arr)) { foreach ($users_arr as $eachuser) { if (!$alter_conf['MASSSEND_SAFE']) { ms_SendMessage($eachuser, $message); } else { ms_TicketCreate('NULL', $eachuser, $message, 'NULL', whoami()); $newid = simple_get_lastid('ticketing'); ms_TicketSetDone($newid); } } log_register("MASSEND (" . sizeof($users_arr) . ")"); } }
/** * Stores message in email sending queue. Use this method in your modules. * * @param string $email * @param string $subj * @param string $message * @param string $module * * @return bool */ public function sendEmail($email, $subj, $message, $module = '') { $result = false; $email = trim($email); $subj = trim($subj); $module = !empty($module) ? ' MODULE ' . $module : ''; if (!empty($email)) { $message = trim($message); $filename = self::QUEUE_PATH . 'eml_' . zb_rand_string(8); $storedata['email'] = $email; $storedata['subj'] = $subj; $storedata['message'] = $message; $storedata = json_encode($storedata); file_put_contents($filename, $storedata); log_register('UEML SEND EMAIL `' . $email . '`' . $module); $result = true; } return $result; }
/** * Stores message in telegram sending queue. Use this method in your modules. * * @param int $chatid * @param string $message * @param bool $translit * @param string $module * * @return bool */ public function sendMessage($chatid, $message, $translit = false, $module = '') { $result = false; $chatid = trim($chatid); $module = !empty($module) ? ' MODULE ' . $module : ''; if (!empty($chatid)) { $message = str_replace(array("\n\r", "\n", "\r"), ' ', $message); if ($translit) { $message = zb_TranslitString($message); } $message = trim($message); $filename = self::QUEUE_PATH . 'tlg_' . zb_rand_string(8); $storedata = 'CHATID="' . $chatid . '"' . "\n"; $storedata .= 'MESSAGE="' . $message . '"' . "\n"; file_put_contents($filename, $storedata); log_register('UTLG SEND MESSAGE `' . $chatid . '`' . $module); $result = true; } return $result; }
function mrst_MassReset() { global $altcfg, $billing; $query = "SELECT `login` from `users`"; $allusers = zb_UserGetAllStargazerData(); if (!empty($allusers)) { foreach ($allusers as $io => $eachuser) { //very shitty hack sleep(2); $billing->resetuser($eachuser['login']); if (!isset($altcfg['MASSRESET_NOLOG'])) { log_register("MASSRESET User (" . $eachuser['login'] . ")"); } } //preventing F5 rcms_redirect("?module=massreset"); } else { show_error(__('Any users found')); } }
/** * Stores SMS in sending queue * * @param string $number Mobile number in international format. Eg: +380506666666 * @param string $message Text message for sending * @param bool $translit force message transliteration * @param string $module module that inits SMS sending * * @return bool */ public function sendSMS($number, $message, $translit = true, $module = '') { $result = false; $number = trim($number); $module = !empty($module) ? ' MODULE ' . $module : ''; if (!empty($number)) { if (ispos($number, '+')) { $message = str_replace(array("\n\r", "\n", "\r"), ' ', $message); if ($translit) { $message = zb_TranslitString($message); } $message = trim($message); $filename = self::QUEUE_PATH . 'us_' . zb_rand_string(8); $storedata = 'NUMBER="' . $number . '"' . "\n"; $storedata .= 'MESSAGE="' . $message . '"' . "\n"; file_put_contents($filename, $storedata); log_register('USMS SEND SMS `' . $number . '`' . $module); $result = true; } } return $result; }
/** * Stores SMS in sending queue * * @param string $number Mobile number in international format. Eg: +380506666666 * @param string $message Text message for sending * @param bool $translit force message transliteration * @return bool */ public function sendSMS($number, $message, $translit = true) { $result = false; $number = trim($number); if (!empty($number)) { if (ispos($number, '+')) { $message = str_replace('\\r\\n', ' ', $message); if ($translit) { $message = zb_TranslitString($message); } $message = trim($message); $filename = self::QUEUE_PATH . 'us_' . zb_rand_string(8); $storedata = 'NUMBER="' . $number . '"' . "\n"; $storedata .= 'MESSAGE="' . $message . '"' . "\n"; $result['number'] = $number; $result['message'] = $message; file_put_contents($filename, $storedata); log_register("USMS SEND SMS `" . $number . "`"); $result = true; } } return $result; }
function zb_SpeedControlGetOverrideUsers() { $query = "SELECT `login` from `userspeeds` WHERE `speed` NOT LIKE '0'"; $alloverrides = simple_queryall($query); $result = array(); if (!empty($alloverrides)) { foreach ($alloverrides as $io => $eachoverride) { $result[] = $eachoverride; } } return $result; } function zb_SpeedControlFix($login) { } //fixing speed override if (isset($_GET['fix'])) { $login = vf($_GET['fix']); $speed = 0; zb_UserDeleteSpeedOverride($login); zb_UserCreateSpeedOverride($login, $speed); log_register("SPEEDFIX (" . $login . ")"); $billing->resetuser($login); log_register("RESET User (" . $login . ")"); rcms_redirect("?module=speedcontrol"); } $alloverrides = zb_SpeedControlGetOverrideUsers(); show_window(__('Users with speed overrides'), web_UsersLister($alloverrides)); } else { show_error(__('You cant control this module')); }
/** * saves new passport data for some build * * @return void */ protected function savePassport() { if (wf_CheckPost(array('savebuildpassport'))) { $buildid = vf($_POST['savebuildpassport'], 3); // Yep, im know - thats shitty solution. Need to refactor this later. $clean_query = "DELETE FROM `buildpassport` WHERE `buildid`='" . $buildid . "';"; nr_query($clean_query); $owner = mysql_real_escape_string($_POST['powner']); $ownername = mysql_real_escape_string($_POST['pownername']); $ownerphone = mysql_real_escape_string($_POST['pownerphone']); $ownercontact = mysql_real_escape_string($_POST['pownercontact']); $keys = isset($_POST['pkeys']) ? 1 : 0; $accessnotices = mysql_real_escape_string($_POST['paccessnotices']); $floors = mysql_real_escape_string($_POST['pfloors']); $entrances = mysql_real_escape_string($_POST['pentrances']); $apts = mysql_real_escape_string($_POST['papts']); $notes = mysql_real_escape_string($_POST['pnotes']); $query = "INSERT INTO `buildpassport` (\n `id` ,\n `buildid` ,\n `owner` ,\n `ownername` ,\n `ownerphone` ,\n `ownercontact` ,\n `keys` ,\n `accessnotices` ,\n `floors` ,\n `apts` ,\n `entrances` ,\n `notes`\n )\n VALUES (\n NULL ,\n '" . $buildid . "',\n '" . $owner . "',\n '" . $ownername . "',\n '" . $ownerphone . "',\n '" . $ownercontact . "',\n '" . $keys . "',\n '" . $accessnotices . "',\n '" . $floors . "',\n '" . $apts . "',\n '" . $entrances . "',\n '" . $notes . "'\n );\n "; nr_query($query); log_register('BUILD PASSPORT SAVE [' . $buildid . ']'); } }
$nasid = vf($_GET['edit']); //if someone editing nas if (wf_CheckPost(array('editnastype'))) { $targetnas = "WHERE `id` = '" . $nasid . "'"; $nastype = vf($_POST['editnastype']); $nasip = mysql_real_escape_string($_POST['editnasip']); $nasname = mysql_real_escape_string($_POST['editnasname']); $nasbwdurl = mysql_real_escape_string($_POST['editnasbwdurl']); $netid = vf($_POST['networkselect']); simple_update_field('nas', 'nastype', $nastype, $targetnas); simple_update_field('nas', 'nasip', $nasip, $targetnas); simple_update_field('nas', 'nasname', $nasname, $targetnas); simple_update_field('nas', 'bandw', $nasbwdurl, $targetnas); simple_update_field('nas', 'netid', $netid, $targetnas); zb_NasConfigSave(); log_register("NAS EDIT " . $nasip); rcms_redirect("?module=nas&edit=" . $nasid); } $nasdata = zb_NasGetData($nasid); $currentnetid = $nasdata['netid']; $currentnasip = $nasdata['nasip']; $currentnasname = $nasdata['nasname']; $currentnastype = $nasdata['nastype']; $currentbwdurl = $nasdata['bandw']; $nastypes = array('local' => 'Local NAS', 'rscriptd' => 'rscriptd', 'mikrotik' => 'MikroTik', 'radius' => 'Radius'); $editinputs = multinet_network_selector($currentnetid) . "<br>"; $editinputs .= wf_Selector('editnastype', $nastypes, 'NAS type', $currentnastype, true); $editinputs .= wf_TextInput('editnasip', 'IP', $currentnasip, true, '15'); $editinputs .= wf_TextInput('editnasname', 'NAS name', $currentnasname, true, '15'); $editinputs .= wf_TextInput('editnasbwdurl', 'Bandwidthd URL', $currentbwdurl, true, '25'); $editinputs .= wf_Submit('Save');
/** * Make queue for sms send * * @return void */ public function RemindUser() { $LiveDays = $this->AltCfg['REMINDER_DAYS_THRESHOLD']; $LiveTime = $LiveDays * 24 * 60 * 60; $CacheTime = time() - $LiveTime; foreach ($this->AllLogin as $userLoginData) { $eachLogin = $userLoginData['login']; if (!$this->FilterPassive($eachLogin)) { if ($this->money->getOnlineLeftCountFast($eachLogin) <= $LiveDays and $this->money->getOnlineLeftCountFast($eachLogin) >= 0) { if (!file_exists(self::FLAGPREFIX . $eachLogin)) { $number = $this->AllPhones[$eachLogin]['mobile']; if (!empty($number)) { $number = trim($number); $number = str_replace($this->AltCfg['REMINDER_PREFIX'], '', $number); $number = vf($number, 3); $number = $this->AltCfg['REMINDER_PREFIX'] . $number; $template = $this->AltCfg['REMINDER_TEMPLATE']; if (!empty($template)) { $message = zb_TemplateReplace($eachLogin, $template, $this->AllTemplates); if (!empty($message)) { $this->sms->sendSMS($number, $message, false); file_put_contents(self::FLAGPREFIX . $eachLogin, ''); } } } } } elseif ($this->money->getOnlineLeftCountFast($eachLogin) == -2) { log_register(__('SMS will not sent. Tariff is free.' . ' ' . 'Login' . ': ' . $eachLogin)); } else { if (file_exists(self::FLAGPREFIX . $eachLogin)) { if (filemtime(self::FLAGPREFIX . $eachLogin) > $CacheTime) { unlink(self::FLAGPREFIX . $eachLogin); } } } } } }
/** * stg_putlogevent dummy wrapper for log_register() - only for backward compat * * @param string $event */ function stg_putlogevent($event) { log_register($event); }
/** * Sets openpayz transaction as processed in database * * @param int $transactionid * * @return void */ public function transactionSetProcessed($transactionid) { $transactionid = vf($transactionid, 3); $query = "UPDATE `op_transactions` SET `processed` = '1' WHERE `id`='" . $transactionid . "'"; nr_query($query); log_register('OPENPAYZ PROCESSED [' . $transactionid . ']'); }
/** * Returns task typical problems editing form * * @return string */ function ts_TaskProblemsEditForm() { $rawNotes = zb_StorageGet('PROBLEMS'); //extract old or create new typical problems array if (!empty($rawNotes)) { $rawNotes = base64_decode($rawNotes); $rawNotes = unserialize($rawNotes); } else { $emptyArray = array(); $newNotes = serialize($emptyArray); $newNotes = base64_encode($newNotes); zb_StorageSet('PROBLEMS', $newNotes); $rawNotes = $emptyArray; } //adding and deletion subroutines if (wf_CheckPost(array('createtypicalnote'))) { $toPush = strip_tags($_POST['createtypicalnote']); array_push($rawNotes, $toPush); $newNotes = serialize($rawNotes); $newNotes = base64_encode($newNotes); zb_StorageSet('PROBLEMS', $newNotes); log_register('TASKMAN ADD TYPICALPROBLEM'); rcms_redirect("?module=taskman&probsettings=true"); } if (wf_CheckPost(array('deletetypicalnote', 'typicalnote'))) { $toUnset = $_POST['typicalnote']; if (($delkey = array_search($toUnset, $rawNotes)) !== false) { unset($rawNotes[$delkey]); } $newNotes = serialize($rawNotes); $newNotes = base64_encode($newNotes); zb_StorageSet('PROBLEMS', $newNotes); log_register('TASKMAN DELETE TYPICALPROBLEM'); rcms_redirect("?module=taskman&probsettings=true"); } $rows = ''; $result = wf_Link("?module=taskman", __('Back'), true, 'ubButton'); if (!empty($rawNotes)) { foreach ($rawNotes as $eachNote) { $cells = wf_TableCell($eachNote); $rows .= wf_TableRow($cells, 'row3'); } } $result .= wf_TableBody($rows, '100%', '0', ''); $result .= wf_delimiter(); $addinputs = wf_TextInput('createtypicalnote', __('Create'), '', true, '20'); $addinputs .= wf_Submit(__('Save')); $addform = wf_Form("", "POST", $addinputs, 'glamour'); $result .= $addform; $delinputs = ts_TaskTypicalNotesSelector(false); $delinputs .= wf_HiddenInput('deletetypicalnote', 'true'); $delinputs .= wf_Submit(__('Delete')); $delform = wf_Form("", "POST", $delinputs, 'glamour'); $result .= $delform; return $result; }
/** * Sets user as undead * * @param string $login * * @return void */ public function setUndead($login) { global $billing; $billing->setpassive($login, 0); log_register('CHANGE Passive (' . $login . ') ON 0'); if ($this->tagId) { stg_del_user_tagid($login, $this->tagId); } $this->logFuneral($login, 0); }
/** * cnahges banksta contract number for some existing row * * @param int $bankstaid existing bank statement transaction ID * @param string $contract new contract number for this row */ public function bankstaSetContract($bankstaid, $contract) { $bankstaid = vf($bankstaid, 3); $contract = mysql_real_escape_string($contract); $contract = trim($contract); if (empty($this->bankstarecords)) { $this->loadBankstaAll(); } if (isset($this->bankstarecords[$bankstaid])) { $oldContract = $this->bankstarecords[$bankstaid]['contract']; simple_update_field('ukv_banksta', 'contract', $contract, "WHERE `id`='" . $bankstaid . "';"); log_register('UKV BANKSTA [' . $bankstaid . '] CONTRACT `' . $oldContract . '` CHANGED ON `' . $contract . '`'); } else { log_register('UKV BANKSTA NONEXIST [' . $bankstaid . '] CONTRACT CHANGE TRY'); } }
/** * Sends document on the server to the browser for downloading * * @param type $document_id ID of the downloading document */ public function document_download($id) { // Get info about downloading file: $query = "SELECT * FROM `" . self::TABLE_DOCS . "` WHERE `id` = '" . $id . "'"; $result = simple_query($query); // Send document to browser: $document = file_get_contents($result['path']); log_register("DOWNLOAD FILE `" . $result['path'] . "`"); header('Content-Type: application/octet-stream'); header("Content-Transfer-Encoding: Binary"); header("Content-disposition: attachment; filename=\"" . $result['title'] . '.' . pathinfo($result['path'], PATHINFO_EXTENSION) . "\""); die($document); }
/** * Adds some money to user account * * @param string $login * @param float $cash * @param string $note * * @return void */ function zbs_CashAdd($login, $cash, $note) { $login = vf($login); $cash = mysql_real_escape_string($cash); $cashtype = 0; $note = mysql_real_escape_string($note); $date = curdatetime(); $balance = zb_CashGetUserBalance($login); billing_addcash($login, $cash); $query = "INSERT INTO `payments` ( `id` , `login` , `date` , `balance` , `summ` , `cashtypeid` , `note` )\n VALUES (NULL , '" . $login . "', '" . $date . "', '" . $balance . "', '" . $cash . "', '" . $cashtype . "', '" . $note . ");"; nr_query($query); log_register("BALANCECHANGE (" . $login . ') ON ' . $cash); }
/** * Deletes all of CF intems in database associated with some login * * @param string $login Existing user login * * @return void */ function cf_FlushAllUserCF($login) { $login = mysql_real_escape_string($login); $query = "DELETE from `cfitems` WHERE `login`='" . $login . "'"; nr_query($query); log_register("CF FLUSH (" . $login . ")"); }
/** * Deletes user notes database record for some login * * @param string $login existing user login */ function zb_UserDeleteNotes($login) { $login = vf($login); $query = "DELETE FROM `notes` WHERE `login`='" . $login . "'"; nr_query($query); log_register('DELETE UserNote (' . $login . ')'); }
/** * Exports existing userbase as CSV format * * @return void */ function zb_RMExportUserbaseCsv() { $allusers = zb_UserGetAllStargazerData(); $allrealnames = zb_UserGetAllRealnames(); $alladdress = zb_AddressGetFulladdresslist(); $allcontracts = zb_UserGetAllContracts(); $allmac = array(); $mac_q = "SELECT * from `nethosts`"; $allnh = simple_queryall($mac_q); if (!empty($allnh)) { foreach ($allnh as $nh => $eachnh) { $allmac[$eachnh['ip']] = $eachnh['mac']; } } $result = ''; //options $delimiter = ";"; $in_charset = 'utf-8'; $out_charset = 'windows-1251'; ///////////////////// if (!empty($allusers)) { $result .= __('Login') . $delimiter . __('Password') . $delimiter . __('IP') . $delimiter . __('MAC') . $delimiter . __('Tariff') . $delimiter . __('Cash') . $delimiter . __('Credit') . $delimiter . __('Credit expire') . $delimiter . __('Address') . $delimiter . __('Real Name') . $delimiter . __('Contract') . $delimiter . __('AlwaysOnline') . $delimiter . __('Disabled') . $delimiter . __('User passive') . "\n"; foreach ($allusers as $io => $eachuser) { //credit expirity if ($eachuser['CreditExpire'] != 0) { $creditexpire = date("Y-m-d", $eachuser['CreditExpire']); } else { $creditexpire = ''; } //user mac if (isset($allmac[$eachuser['IP']])) { $usermac = $allmac[$eachuser['IP']]; } else { $usermac = ''; } $result .= $eachuser['login'] . $delimiter . $eachuser['Password'] . $delimiter . $eachuser['IP'] . $delimiter . $usermac . $delimiter . $eachuser['Tariff'] . $delimiter . $eachuser['Cash'] . $delimiter . $eachuser['Credit'] . $delimiter . $creditexpire . $delimiter . @$alladdress[$eachuser['login']] . $delimiter . @$allrealnames[$eachuser['login']] . $delimiter . @$allcontracts[$eachuser['login']] . $delimiter . $eachuser['AlwaysOnline'] . $delimiter . $eachuser['Down'] . $delimiter . $eachuser['Passive'] . "\n"; } if ($in_charset != $out_charset) { $result = iconv($in_charset, $out_charset, $result); } log_register('DOWNLOAD FILE `userbase.csv`'); // push data for csv handler header('Content-type: application/ms-excel'); header('Content-Disposition: attachment; filename=userbase.csv'); echo $result; die; } }
/** * Deleting task from DB by users will * * @param type $login * @param type $param */ function deleteTask($login, $param) { $query = "DELETE FROM `dealwithit` WHERE login='******' and param='" . $param . "' AND action='tagadd'"; nr_query($query); log_register('SCHEDULER deleted (' . $login . ') tagid: ' . $param); }
<?php if (cfr('DOWN')) { if (isset($_GET['username'])) { $login = vf($_GET['username']); // change down if need if (isset($_POST['newdown'])) { $down = $_POST['newdown']; $billing->setdown($login, $down); log_register('CHANGE Down (' . $login . ') ON ' . $down); rcms_redirect("?module=downedit&username=" . $login); } $current_down = zb_UserGetStargazerData($login); $current_down = $current_down['Down']; $useraddress = zb_UserGetFullAddress($login) . ' (' . $login . ')'; // Edit form construct $fieldname = __('Current Down state'); $fieldkey = 'newdown'; $form = web_EditorTrigerDataForm($fieldname, $fieldkey, $useraddress, $current_down); $form .= web_UserControls($login); // show form show_window(__('Edit Down'), $form); } } else { show_error(__('You cant control this module')); }