public function updateAddonSettings($addonId, $settings, $type) { $addon = monitisSqlHelper::objQuery('SELECT * FROM mod_monitis_addon WHERE addon_id=' . $addonId); if ($addon && count($addon) > 0) { $value = array('settings' => $settings, 'type' => $type); $where = array('addon_id' => $addonId); update_query('mod_monitis_addon', $value, $where); return 'update'; } else { $value = array('addon_id' => $addonId, 'type' => $type, 'settings' => $settings, 'status' => 'active'); insert_query('mod_monitis_addon', $value); return 'create'; } }
public function synchronizeClients() { $all = array(); $subUsers = MonitisApi::clients(true); $clntByUsr = monitisSqlHelper::query('SELECT user_id, firstname, lastname, email, LOWER(status) as status, api_key, secret_key FROM mod_monitis_user LEFT JOIN tblclients ON tblclients.id=mod_monitis_user.user_id'); for ($i = 0; $i < count($subUsers); $i++) { $apikey = $subUsers[$i]['apikey']; $whmcsUser = MonitisHelper::in_array($clntByUsr, 'api_key', $apikey); $userid = 0; // user linked if ($whmcsUser) { $userid = $whmcsUser['user_id']; } else { // link user $arr = explode('_', $subUsers[$i]['account']); if ($arr && $arr[0]) { $userid = intval(substr($arr[0], 5)); if ($userid > 0) { $resp = monitisClientApi::linkUserByApikey($apikey, $userid); if (@$resp['status'] == 'ok' && isset($resp['data'])) { //$secretkey = $resp['data']['secret_key']; $whmcsUser = $this->userById($userid); $whmcsUser['api_key'] = $apikey; $whmcsUser['secret_key'] = $resp['data']['secret_key']; } } } } $monitors = null; if ($userid > 0) { $monitors = $subUsers[$i]['monitors']; $monitors = $this->synchronizeMonitors($userid, $monitors); } $all[] = array('api_user' => $subUsers[$i], 'whmcs_user' => $whmcsUser, 'monitors' => $monitors); } return $all; }
static function setupDB() { $row = monitisSqlHelper::objQuery('SELECT * FROM ' . MONITIS_SETTING_TABLE . ' WHERE client_id=' . MONITIS_CLIENT_ID); if (!$row) { $default_settings = json_decode(self::$default_settings, true); $default_settings["order_behavior"] = self::setupBehavior(MONITIS_ORDER_BEHAVIOR); $default_settings["user_behavior"] = self::setupBehavior(MONITIS_USER_STATUS_BEHAVIOR); $values = array('client_id' => MONITIS_CLIENT_ID, 'apiKey' => self::$apiKey, 'secretKey' => self::$secretKey, 'settings' => json_encode($default_settings)); self::$settings = $default_settings; insert_query(MONITIS_SETTING_TABLE, $values); } else { } //return true; }
public function clientProductMonitors($userid) { $monitors = monitisSqlHelper::query('SELECT * FROM mod_monitis_product_monitor WHERE user_id =' . $userid); $apiMons = monitisClientApi::externalMonitors($userid); if ($apiMons && isset($apiMons['testList'])) { $apiMons = $apiMons['testList']; } else { $apiMons = null; } $userProducts = MonitisSeviceHelper::userProducts($userid); $avMonitors = array(); $ids = array(); if ($userProducts) { for ($i = 0; $i < count($monitors); $i++) { $orderid = $monitors[$i]['order_id']; $serviceid = $monitors[$i]['service_id']; $isAvailble = false; if ($monitors[$i]['type'] == 'addon') { $addon = $this->_addonsByServiceId($serviceid, $monitors[$i]['product_id'], $userid); if ($addon) { $monitors[$i]['settings'] = $addon['settings']; $product = $this->productByField($userProducts, 'id', $serviceid); if ($product && $product['status'] == "Active") { $monitors[$i]['productname'] = $product['groupname'] . ' - ' . $product['name'] . ' <div class="addon">addon: ' . $addon['addonname'] . '</div>'; $isAvailble = true; } } } else { $result = select_query('tblhosting', 'domainstatus', array('id' => $serviceid, 'userid' => $userid), null, null, 1); $data = mysql_fetch_assoc($result); if ($data && $data['domainstatus'] == "Active") { $product = $this->productByField($userProducts, 'id', $serviceid); if ($product && $product['status'] == "Active") { if ($monitors[$i]['type'] == 'product') { $monproduct = $this->isMonitisProduct($product['pid']); $monitors[$i]['settings'] = $monproduct['settings']; } else { // hayk $option_id = $monitors[$i]['option_id']; $result = select_query('mod_monitis_options', 'settings', array('option_id' => $option_id), null, null, 1); $data = mysql_fetch_assoc($result); $monitors[$i]['settings'] = html_entity_decode($data['settings']); } $monitors[$i]['productname'] = $product['groupname'] . ' - ' . $product['name']; $isAvailble = true; } } } if ($isAvailble) { $monitor_id = intval($monitors[$i]['monitor_id']); $monitorIndex = $this->in_array($apiMons, 'id', $monitor_id); if ($monitorIndex > -1) { $monitors[$i]['info'] = $apiMons[$monitorIndex]; $avMonitors[] = $monitors[$i]; } else { // delete $monitor_id from mod_monitis_product //monitisSqlHelper::altQuery('DELETE FROM mod_monitis_product WHERE monitor_id='.$monitor_id ); } } } } else { return null; } return $avMonitors; }
public function editHookHandler($vars, $hook) { $serviceid = $vars['serviceid']; $userid = $vars['userid']; $result = array('status' => 'nomonitis', 'serviceid' => $serviceid, 'userid' => $userid, 'title' => 'Service: ' . $serviceid, 'hook_type' => ''); if (isset($serviceid) && isset($userid)) { if (empty($hook)) { $rslt = monitisSqlHelper::query('SELECT tblhosting.domainstatus as status FROM tblhosting WHERE tblhosting.id=' . $serviceid); $hook = strtolower($rslt[0]['status']); if ($hook == 'cancelled') { $hook = 'cancel'; } } $result = $this->moduleHookHandler($vars, $hook); $result['hook_type'] = 'edit'; } return $result; }
public function deactivateProducts($ids) { return monitisSqlHelper::altQuery('DELETE FROM mod_monitis_product WHERE product_id in (' . $ids . ')'); }
static function unlinkMonitorsByServersId($server_id) { monitisSqlHelper::altQuery('DELETE FROM mod_monitis_int_monitors WHERE server_id=' . $server_id); monitisSqlHelper::altQuery('DELETE FROM mod_monitis_ext_monitors WHERE server_id=' . $server_id); monitisSqlHelper::altQuery('DELETE FROM mod_monitis_product_monitor WHERE server_id=' . $server_id); }
if ($notificationRuleIdsOnContact != '') { $notifications->editNotificationRule($contact['contactId'], $groupName, $groupAlerts, $notificationRuleIdsOnContact); } else { MonitisApiHelper::addNotificationRule($contact['contactId'], $groupType, $groupId, $groupAlerts); } } } break; } } MonitisApp::printNotifications(); $monitisContactGroups = MonitisApi::getContactsByGroupID('All'); if (!$monitisContactGroups) { $monitisContactGroups = $notifications->createDefaultGroup(); } $whmcsAdmins = monitisSqlHelper::query('SELECT CONCAT(firstname, " ", lastname) as name, email FROM tbladmins'); $contactGroups = array(); for ($i = 0; $i < count($monitisContactGroups); $i++) { $contactGroups[$i] = array(); $contactGroups[$i]['id'] = $monitisContactGroups[$i]['contactGroupId']; $contactGroups[$i]['name'] = $monitisContactGroups[$i]['contactGroupName']; $alertRules = ''; if (MonitisConf::$settings['groups']['external']['groupId'] == $monitisContactGroups[$i]['contactGroupId']) { $monitorType = 'external'; $externalAlerts = MonitisApiHelper::getNotificationRuleByType($monitorType, $monitisContactGroups[$i]['contactGroupId']); if ($externalAlerts) { $alertRules = json_encode($externalAlerts); $alertRules = str_replace('"', "~", $alertRules); } else { $alertRules = json_encode(MonitisConf::$settings['groups'][$monitorType]['alert']); $alertRules = str_replace('"', "~", $alertRules);
} else { MonitisApp::addError($resp['error']); } monitisSqlHelper::altQuery('DELETE FROM ' . MONITIS_EXTERNAL_TABLE . ' WHERE monitor_id=' . $monitorId); break; case 'cpu': case 'memory': case 'drive': $monitorTypeCodes = array('cpu' => 7, 'memory' => 3, 'drive' => 2); $resp = MonitisApi::deleteInternal($monitorId, $monitorTypeCodes[$monitorType]); if ($resp['status'] == 'ok') { MonitisApp::addMessage('Server/Device monitor successfully removed'); } else { MonitisApp::addError($resp['error']); } monitisSqlHelper::altQuery('DELETE FROM ' . MONITIS_INTERNAL_TABLE . ' WHERE monitor_id=' . $monitorId); if ($monitorType == 'drive') { for ($i = 0; $i < count($serverInfo['agent']['drive']); $i++) { if (isset($serverInfo['agent']['drive'][$i]['id']) && $serverInfo['agent']['drive'][$i]['id'] === $monitorId) { $driveLetter = $serverInfo['agent']['drive'][$i]['letter']; $serverInfo['agent']['drive'][$i] = array(); $serverInfo['agent']['drive'][$i]['driveLetter'] = $driveLetter; break; } } } else { $serverInfo['agent'][$monitorType] = NULL; } break; } break;
<?php $limit = MONITIS_LOG_PAGE_LIMIT; define('MONITIS_LOG_EXPAND', false); if ($_POST['clean']) { monitisSqlHelper::altQuery('DELETE FROM ' . MONITIS_LOG_TABLE); } $page = isset($_REQUEST['page']) ? intval($_REQUEST['page']) : 1; $start = isset($_REQUEST['start']) ? intval($_REQUEST['start']) : 0; $list = monitisSqlHelper::pageQuery('SELECT SQL_CALC_FOUND_ROWS * FROM ' . MONITIS_LOG_TABLE . ' ORDER BY `id` DESC LIMIT ' . $start . ', ' . $limit); $start = ($page - 1) * $limit; $total = $list[0]['total']; $pages = intval($total / $limit); if ($total % $limit) { $pages++; } ?> <style type="text/css"> .datatable th, .datatable td{ word-wrap:break-word; } </style> <script type="text/javascript"> $(document).ready(function(){ // $(".description").tabs( ); }); </script> <form method="post" action="" id="serversListId"> <table width="100%" border="0" cellpadding="3" cellspacing="0">
static function dump() { return monitisSqlHelper::query('SELECT * FROM ' . MONITIS_LOG_TABLE . ' ORDER BY `date` DESC'); }
static function unlinkUser($userid) { monitisSqlHelper::altQuery('DELETE FROM ' . MONITIS_USER_TABLE . ' WHERE user_id=' . $userid); return array('status' => 'ok'); }
private function whmcsInfo(&$info, $monitorId, $type) { $table = MONITIS_INTERNAL_TABLE; if ($type == 'external') { $table = MONITIS_EXTERNAL_TABLE; } $mon = monitisSqlHelper::objQuery('SELECT available, publickey FROM ' . $table . ' WHERE monitor_id=' . $monitorId); $info['available'] = $mon['available']; $info['publickey'] = $mon['publickey']; return $info; }
public function all() { //mysql_query('DELETE FROM mod_monitis_int_monitors WHERE server_id=0'); $this->whmcsAllServers = monitisSqlHelper::query('SELECT id, name, ipaddress, hostname FROM tblservers WHERE disabled=0'); if ($this->whmcsAllServers) { $this->initServers(); } return $this->result; }
private function unlinkedPings() { $extShots = $this->pingsStatus; for ($i = 0; $i < count($this->whmcsExt); $i++) { $info = MonitisHelper::in_array($extShots, 'id', $this->whmcsExt[$i]['monitor_id']); if (!$info && @$extShots['status'] != 'error' && @$extShots['code'] != 101) { monitisSqlHelper::altQuery('DELETE FROM ' . MONITIS_EXTERNAL_TABLE . ' WHERE monitor_id=' . $this->whmcsExt[$i]['monitor_id']); } } }
public function associateDrives($whmcsDrives, $agentInfo, $serverID) { $result = array("status" => "warning", "msg" => "No agent or agent is stopped"); if ($agentInfo && isset($agentInfo['drives'])) { $agentId = $agentInfo['agentId']; $monDrives = $agentInfo['drives']; $whmcs_drives = null; if ($whmcsDrives) { $whmcs_drives = array(); for ($i = 0; $i < count($whmcsDrives); $i++) { $mon = MonitisHelper::in_array($monDrives, 'id', $whmcsDrives[$i]['monitor_id']); if ($mon) { $whmcs_drives[] = $whmcsDrives[$i]; } else { monitisSqlHelper::altQuery('DELETE FROM ' . MONITIS_INTERNAL_TABLE . ' WHERE monitor_id=' . $whmcsDrives[$i]['monitor_id']); } } } $ids = array(); for ($i = 0; $i < count($monDrives); $i++) { $drive = $monDrives[$i]; if (isset($drive['id'])) { if (!$whmcs_drives || !MonitisHelper::in_array($whmcs_drives, 'monitor_id', $drive['id'])) { $ids[] = $drive['id']; } } } $cnt = count($ids); if ($ids && $cnt > 0) { for ($i = 0; $i < $cnt; $i++) { $monitorID = $ids[$i]; $pubKey = MonitisApi::monitorPublicKey(array('moduleType' => 'drive', 'monitorId' => $monitorID)); $values = array('server_id' => $serverID, 'available' => MonitisConf::$settings['drive']['available'], 'agent_id' => $agentId, 'monitor_id' => $monitorID, 'monitor_type' => 'drive', 'client_id' => MONITIS_CLIENT_ID, "publickey" => $pubKey); insert_query('mod_monitis_int_monitors', $values); } $result["status"] = 'ok'; $result["msg"] = 'Add ' . $cnt . ' drive(s)'; } else { $result["status"] = 'warning'; $result["msg"] = 'No drive monitor for add'; } } return $result; }
public function whmcsAdminList() { //return $this->adminList(); return monitisSqlHelper::query('SELECT * FROM tbladmins'); }
monitisAddonHookHandler($vars, $hook); break; case 'multiple': $type = $_POST["producttype"]; if ($type == 'addon') { $resp = MonitisHookClass::applyCreateAddonMonitor($_POST['addonserviceid'], $_POST['serviceid'], $_POST['userid']); } else { $resp = MonitisHookClass::applyCreateConfigOptionMonitor($_POST['option_id'], $_POST['productid'], $_POST['serviceid']); } break; } } elseif ($action == 'clean') { monitisSqlHelper::altQuery('DELETE FROM ' . MONITIS_HOOK_REPORT_TABLE); } } $list = monitisSqlHelper::query('SELECT * FROM ' . MONITIS_HOOK_REPORT_TABLE . ' ORDER BY `date` DESC'); ?> <div style="text-align: left;padding: 0px 0px 5px;"> <form method="post" action=""> <input type="submit" value="Clean" name="act" class="btn" /> </form> </div> <table class="datatable" width="100%" border="0" cellspacing="1" cellpadding="3" style="text-align: left;"> <tr> <th>Date</th> <th>Title</th> <th>Client</th> <th>Product type</th> <th>URL / IP</th> <th>Monitor type</th> <th>Response</th>