예제 #1
0
 /**
  * Returns existing users full info
  * 
  * @return array
  */
 protected function getUsersList()
 {
     $result = array();
     $allRealNames = zb_UserGetAllRealnames();
     $allContracts = zb_UserGetAllContracts();
     $allUserTags = $this->getAllUsersTags();
     $allUserNotes = zb_UserGetAllNotes();
     $allPaymentIds = $this->getAllUserPaymentIds();
     $allAddresBindings = $this->getAllAddressList();
     $allAptData = $this->getAllAptList();
     $allPhones = zb_UserGetAllPhoneData();
     $allEmails = zb_UserGetAllEmails();
     $allNethosts = $this->getNethostsData();
     $allNetworks = $this->getNetworksData();
     $allRegData = $this->getUserRegData();
     if (!empty($allContracts)) {
         $allContracts = array_flip($allContracts);
     }
     $allContractDates = zb_UserContractDatesGetAll();
     if (!empty($this->allUserData)) {
         foreach ($this->allUserData as $userLogin => $userData) {
             $result[$userLogin]['id'] = $userLogin;
             $result[$userLogin]['login'] = $userLogin;
             $result[$userLogin]['full_name'] = @$allRealNames[$userLogin];
             $result[$userLogin]['flag_corporate'] = 0;
             if ($userData['TariffChange']) {
                 $curMonth = date('n');
                 $curYear = date('Y');
                 $firstDayNextMonth = $curMonth == 12 ? mktime(0, 0, 0, 0, 0, $curYear + 1) : mktime(0, 0, 0, $curMonth + 1, 1);
                 $firstDayNextMonth = date("Y-m-d", $firstDayNextMonth);
             } else {
                 $firstDayNextMonth = '';
             }
             $result[$userLogin]['tariff']['current'][0]['id'] = $userData['Tariff'];
             if ($firstDayNextMonth) {
                 $result[$userLogin]['tariff']['current'][0]['date_finish'] = $firstDayNextMonth;
             }
             if ($userData['TariffChange']) {
                 $result[$userLogin]['tariff']['new'][0]['id'] = $userData['TariffChange'];
                 $result[$userLogin]['tariff']['new'][0]['date_start'] = $firstDayNextMonth;
             }
             $userContract = @$allContracts[$userLogin];
             if ($userContract) {
                 $result[$userLogin]['agreement'][0]['number'] = $userContract;
                 $contractDate = @$allContractDates[$userContract];
                 if ($contractDate) {
                     $result[$userLogin]['agreement'][0]['date'] = $contractDate;
                 }
             }
             $result[$userLogin]['account_number'] = @$allPaymentIds[$userLogin];
             // yep, this is something like Payment ID
             if (isset($allUserTags[$userLogin])) {
                 foreach ($allUserTags[$userLogin] as $tagIo => $eachTagid) {
                     $result[$userLogin]['group'][$tagIo] = $eachTagid;
                 }
             }
             $userNotes = @$allUserNotes[$userLogin];
             if ($userNotes) {
                 $result[$userLogin]['comment'] = $userNotes;
             }
             $result[$userLogin]['balance'] = $userData['Cash'];
             $result[$userLogin]['credit'] = $userData['Credit'];
             $userState = 5;
             // work
             if ($userData['Cash'] < '-' . $userData['Credit']) {
                 $userState = 1;
                 //nomoney
             }
             if ($userData['Passive'] == 1) {
                 $userState = 2;
                 // pause
             }
             if ($userData['Down'] == 1) {
                 $userState = 3;
                 // disable
             }
             if ($userData['Tariff'] == '*_NO_TARIFF_*') {
                 $userState = 4;
                 // new
             }
             $result[$userLogin]['state_id'] = $userState;
             if (isset($allRegData[$userLogin])) {
                 $result[$userLogin]['date_create'] = $allRegData[$userLogin];
                 $result[$userLogin]['date_connect'] = $allRegData[$userLogin];
             } else {
                 $result[$userLogin]['date_create'] = '';
                 $result[$userLogin]['date_connect'] = '';
             }
             $result[$userLogin]['date_activity'] = date("Y-m-d H:i:s", $userData['LastActivityTime']);
             $result[$userLogin]['traffic']['month']['up'] = $userData['U0'];
             $result[$userLogin]['traffic']['month']['down'] = $userData['D0'];
             $result[$userLogin]['discount'] = 0;
             // TODO: to many discount models at this time
             $userApartmentId = @$allAddresBindings[$userLogin];
             if ($userApartmentId) {
                 $aptData = $allAptData[$userApartmentId];
                 $result[$userLogin]['address'][0]['type'] = 'connect';
                 $result[$userLogin]['address'][0]['house_id'] = $aptData['buildid'];
                 $result[$userLogin]['address'][0]['apartment']['id'] = $userApartmentId;
                 $result[$userLogin]['address'][0]['apartment']['full_name'] = $aptData['apt'];
                 $result[$userLogin]['address'][0]['apartment']['number'] = vf($aptData['apt'], 3);
                 if ($aptData['entrance']) {
                     $result[$userLogin]['address'][0]['entrance'] = $aptData['entrance'];
                 }
                 if ($aptData['floor']) {
                     $result[$userLogin]['address'][0]['floor'] = $aptData['floor'];
                 }
             }
             $userPhoneData = @$allPhones[$userLogin];
             if (!empty($userPhoneData)) {
                 if (isset($userPhoneData['phone'])) {
                     $result[$userLogin]['phone'][0]['number'] = $userPhoneData['phone'];
                     $result[$userLogin]['phone'][0]['flag_main'] = 0;
                 }
                 if (isset($userPhoneData['mobile'])) {
                     $result[$userLogin]['phone'][1]['number'] = $userPhoneData['mobile'];
                     $result[$userLogin]['phone'][1]['flag_main'] = 1;
                 }
             }
             $userEmail = @$allEmails[$userLogin];
             if ($userEmail) {
                 $result[$userLogin]['email'][0]['address'] = $userEmail;
                 $result[$userLogin]['email'][0]['flag_main'] = 1;
             }
             $userIp = $userData['IP'];
             $userIp = ip2int($userIp);
             $result[$userLogin]['ip_mac'][0]['ip'] = $userIp;
             $nethostsData = @$allNethosts[$userData['IP']];
             if (!empty($nethostsData)) {
                 $subnetId = $nethostsData['netid'];
                 $userMac = $nethostsData['mac'];
                 $userMac = str_replace(':', '', $userMac);
                 $userMac = strtolower($userMac);
                 // mac lowercased withot delimiters
                 $result[$userLogin]['ip_mac'][0]['mac'] = $userMac;
                 $result[$userLogin]['ip_mac'][0]['ip_net'] = @$allNetworks[$subnetId]['desc'];
             }
             if (isset($this->allCfData[$userLogin])) {
                 $result[$userLogin]['additional_data'] = $this->allCfData[$userLogin];
             }
             //   die(print_r($result, true));
         }
     }
     return $result;
 }
예제 #2
0
 /**
  * load all available phones + mobile
  * 
  * @return void
  */
 protected function LoadPhones()
 {
     $this->AllPhones = zb_UserGetAllPhoneData();
 }
예제 #3
0
 /**
  * Preloads raw data for searchable user fields and controls caching
  * 
  * @return void
  */
 protected function loadRawdata($forceCache = false)
 {
     $cacheTime = $this->alterConf['GLOBALSEARCH_CACHE'];
     $cacheTime = time() - $cacheTime * 60;
     //in minutes
     //extracting user fields types to load
     if (!empty($this->alterConf['GLOBALSEARCH_FIELDS'])) {
         $this->fields = explode(',', $this->alterConf['GLOBALSEARCH_FIELDS']);
         $this->fields = array_flip($this->fields);
     }
     $updateCache = false;
     if (file_exists(self::CACHE_NAME)) {
         $updateCache = false;
         if (filemtime(self::CACHE_NAME) > $cacheTime) {
             $updateCache = false;
         } else {
             $updateCache = true;
         }
     } else {
         $updateCache = true;
     }
     //force cache parameter
     if ($forceCache) {
         $updateCache = true;
     }
     //updating rawdata cache
     if ($updateCache) {
         //loading needed fields
         if (isset($this->fields['realname'])) {
             $this->rawData = $this->rawData + $this->transformArray(zb_UserGetAllRealnames(), __('Real Name'), 'realname');
         }
         if (isset($this->fields['address'])) {
             $this->rawData = $this->rawData + $this->transformArray(zb_AddressGetFulladdresslist(), __('Full address'), 'address');
         }
         if (isset($this->fields['contract'])) {
             $allContracts = zb_UserGetAllContracts();
             $allContracts = array_flip($allContracts);
             $this->rawData = $this->rawData + $this->transformArray($allContracts, __('Contract'), 'contract');
         }
         if (isset($this->fields['phone']) or isset($this->fields['mobile'])) {
             $allPhonedata = zb_UserGetAllPhoneData();
             if (isset($this->fields['phone'])) {
                 if (!empty($allPhonedata)) {
                     $allPhones = array();
                     foreach ($allPhonedata as $io => $each) {
                         $allPhones[$io] = $each['phone'];
                     }
                     $this->rawData = $this->rawData + $this->transformArray($allPhones, __('Phone'), 'phone');
                 }
             }
             if (isset($this->fields['mobile'])) {
                 if (!empty($allPhonedata)) {
                     $allMobiles = array();
                     foreach ($allPhonedata as $io => $each) {
                         $allMobiles[$io] = $each['mobile'];
                     }
                     $this->rawData = $this->rawData + $this->transformArray($allMobiles, __('Mobile'), 'mobile');
                 }
             }
         }
         if (isset($this->fields['ip'])) {
             $this->rawData = $this->rawData + $this->transformArray(zb_UserGetAllIPs(), __('IP'), 'ip');
         }
         if (isset($this->fields['mac'])) {
             $this->rawData = $this->rawData + $this->transformArray(zb_UserGetAllIpMACs(), __('MAC address'), 'mac');
         }
         if (isset($this->fields['login'])) {
             $allLogins = zb_UserGetAllStargazerLogins();
             $this->rawData = $this->rawData + $this->transformArray($allLogins, __('Login'), 'login');
         }
         if (isset($this->fields['seal'])) {
             $conDet = new ConnectionDetails();
             $allSeals = $conDet->getAllSeals();
             $this->rawData = $this->rawData + $this->transformArray($allSeals, __('Cable seal'), 'seal');
         }
         if (isset($this->fields['paymentid'])) {
             if ($this->alterConf['OPENPAYZ_REALID']) {
                 $allPayIds_q = "SELECT * from `op_customers`";
                 $allPayIds = simple_queryall($allPayIds_q);
                 $tmpArrPayids = array();
                 if (!empty($allPayIds)) {
                     foreach ($allPayIds as $io => $each) {
                         $tmpArrPayids[$each['realid']] = $each['virtualid'];
                     }
                 }
                 $this->rawData = $this->rawData + $this->transformArray($tmpArrPayids, __('Payment ID'), 'payid');
             } else {
                 $allPayIds_q = "SELECT `login`,`IP` from `users`";
                 $allPayIds = simple_queryall($allPayIds_q);
                 $tmpArrPayids = array();
                 if (!empty($allPayIds)) {
                     foreach ($allPayIds as $io => $each) {
                         $tmpArrPayids[$each['login']] = ip2int($each['IP']);
                     }
                 }
                 $this->rawData = $this->rawData + $this->transformArray($tmpArrPayids, __('Payment ID'), 'payid');
             }
         }
         file_put_contents(self::CACHE_NAME, serialize($this->rawData));
     } else {
         $this->rawData = file_get_contents(self::CACHE_NAME);
         $this->rawData = unserialize($this->rawData);
     }
 }
예제 #4
0
 /**
  * loads user data for template processing 
  * 
  * @return void
  */
 public function loadAllUserData()
 {
     $userdata = array();
     $alluserdata = zb_UserGetAllStargazerData();
     $tariffspeeds = zb_TariffGetAllSpeeds();
     $tariffprices = zb_TariffGetPricesAll();
     $multinetdata = zb_MultinetGetAllData();
     $allcontracts = zb_UserGetAllContracts();
     $allcontracts = array_flip($allcontracts);
     $contractDates = $this->getContractDatesAll();
     $allphonedata = zb_UserGetAllPhoneData();
     $allrealnames = zb_UserGetAllRealnames();
     $alladdress = zb_AddressGetFulladdresslist();
     $allemails = zb_UserGetAllEmails();
     $allnasdata = zb_NasGetAllData();
     $allcfdata = cf_FieldsGetAll();
     $allpdata = zb_UserPassportDataGetAll();
     $curdate = curdate();
     $lastDocId = $this->getDocumentLastId();
     $newDocId = $lastDocId + 1;
     if ($this->altcfg['OPENPAYZ_REALID']) {
         $allopcustomers = zb_TemplateGetAllOPCustomers();
     }
     if (!empty($alluserdata)) {
         foreach ($alluserdata as $io => $eachuser) {
             $userdata[$eachuser['login']]['LOGIN'] = $eachuser['login'];
             $userdata[$eachuser['login']]['PASSWORD'] = $eachuser['Password'];
             $userdata[$eachuser['login']]['USERHASH'] = crc16($eachuser['login']);
             $userdata[$eachuser['login']]['TARIFF'] = $eachuser['Tariff'];
             @($userdata[$eachuser['login']]['TARIFFPRICE'] = $tariffprices[$eachuser['Tariff']]);
             $userdata[$eachuser['login']]['CASH'] = $eachuser['Cash'];
             $userdata[$eachuser['login']]['CREDIT'] = $eachuser['Credit'];
             $userdata[$eachuser['login']]['DOWN'] = $eachuser['Down'];
             $userdata[$eachuser['login']]['PASSIVE'] = $eachuser['Passive'];
             $userdata[$eachuser['login']]['AO'] = $eachuser['AlwaysOnline'];
             @($userdata[$eachuser['login']]['CONTRACT'] = $allcontracts[$eachuser['login']]);
             @($userdata[$eachuser['login']]['CONTRACTDATE'] = $contractDates[$eachuser['login']]['contractdate']);
             @($userdata[$eachuser['login']]['REALNAME'] = $allrealnames[$eachuser['login']]);
             @($userdata[$eachuser['login']]['ADDRESS'] = $alladdress[$eachuser['login']]);
             @($userdata[$eachuser['login']]['EMAIL'] = $allemails[$eachuser['login']]);
             @($userdata[$eachuser['login']]['PHONE'] = $allphonedata[$eachuser['login']]['phone']);
             @($userdata[$eachuser['login']]['MOBILE'] = $allphonedata[$eachuser['login']]['mobile']);
             //openpayz payment ID
             if ($this->altcfg['OPENPAYZ_REALID']) {
                 @($userdata[$eachuser['login']]['PAYID'] = $allopcustomers[$eachuser['login']]);
             } else {
                 @($userdata[$eachuser['login']]['PAYID'] = ip2int($eachuser['IP']));
             }
             //traffic params
             $userdata[$eachuser['login']]['TRAFFIC'] = $eachuser['D0'] + $eachuser['U0'];
             $userdata[$eachuser['login']]['TRAFFICDOWN'] = $eachuser['D0'];
             $userdata[$eachuser['login']]['TRAFFICUP'] = $eachuser['U0'];
             //net params
             @($userdata[$eachuser['login']]['IP'] = $eachuser['IP']);
             @($userdata[$eachuser['login']]['MAC'] = $multinetdata[$eachuser['IP']]['mac']);
             @($userdata[$eachuser['login']]['NETID'] = $multinetdata[$eachuser['IP']]['netid']);
             @($userdata[$eachuser['login']]['HOSTID'] = $multinetdata[$eachuser['IP']]['id']);
             //nas data
             @($usernas = zb_NasGetParams($multinetdata[$eachuser['IP']]['netid'], $allnasdata));
             @($userdata[$eachuser['login']]['NASID'] = $usernas['id']);
             @($userdata[$eachuser['login']]['NASIP'] = $usernas['nasip']);
             @($userdata[$eachuser['login']]['NASNAME'] = $usernas['nasname']);
             @($userdata[$eachuser['login']]['NASTYPE'] = $usernas['nastype']);
             if (isset($tariffspeeds[$eachuser['Tariff']])) {
                 $userdata[$eachuser['login']]['SPEEDDOWN'] = $tariffspeeds[$eachuser['Tariff']]['speeddown'];
                 $userdata[$eachuser['login']]['SPEEDUP'] = $tariffspeeds[$eachuser['Tariff']]['speedup'];
             } else {
                 //if no tariff speed defined zero speed by default
                 $userdata[$eachuser['login']]['SPEEDDOWN'] = 0;
                 $userdata[$eachuser['login']]['SPEEDUP'] = 0;
             }
             //passport data
             @($userdata[$eachuser['login']]['PBIRTH'] = $allpdata[$eachuser['login']]['birthdate']);
             @($userdata[$eachuser['login']]['PNUM'] = $allpdata[$eachuser['login']]['passportnum']);
             @($userdata[$eachuser['login']]['PDATE'] = $allpdata[$eachuser['login']]['passportdate']);
             @($userdata[$eachuser['login']]['PWHO'] = $allpdata[$eachuser['login']]['passportwho']);
             @($userdata[$eachuser['login']]['PCITY'] = $allpdata[$eachuser['login']]['pcity']);
             @($userdata[$eachuser['login']]['PSTREET'] = $allpdata[$eachuser['login']]['pstreet']);
             @($userdata[$eachuser['login']]['PBUILD'] = $allpdata[$eachuser['login']]['pbuild']);
             @($userdata[$eachuser['login']]['PAPT'] = $allpdata[$eachuser['login']]['papt']);
             //other document data
             @($userdata[$eachuser['login']]['CURDATE'] = $curdate);
             @($userdata[$eachuser['login']]['DOCID'] = $newDocId);
         }
     }
     $this->userData = $userdata;
 }
예제 #5
0
 /**
  * Get all users phones data info $this->allPhoneData
  * 
  * @return void
  */
 protected function LoadAllPhoneData()
 {
     $this->allPhoneData = zb_UserGetAllPhoneData();
 }