コード例 #1
0
ファイル: addons.php プロジェクト: carriercomm/WHMCS
 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';
     }
 }
コード例 #2
0
ファイル: synchronize.php プロジェクト: carriercomm/WHMCS
    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;
    }
コード例 #3
0
ファイル: monitisconf.php プロジェクト: carriercomm/WHMCS
 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;
 }
コード例 #4
0
ファイル: clientui.php プロジェクト: carriercomm/WHMCS
 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;
 }
コード例 #5
0
ファイル: clientservices.php プロジェクト: carriercomm/WHMCS
 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;
 }
コード例 #6
0
ファイル: products.php プロジェクト: carriercomm/WHMCS
 public function deactivateProducts($ids)
 {
     return monitisSqlHelper::altQuery('DELETE FROM mod_monitis_product WHERE product_id in (' . $ids . ')');
 }
コード例 #7
0
ファイル: whmcs.class.php プロジェクト: carriercomm/WHMCS
 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);
 }
コード例 #8
0
ファイル: alerts.php プロジェクト: carriercomm/WHMCS
                    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);
コード例 #9
0
ファイル: monitors.php プロジェクト: carriercomm/WHMCS
         } 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;
コード例 #10
0
ファイル: log.php プロジェクト: carriercomm/WHMCS
<?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">
コード例 #11
0
ファイル: common.php プロジェクト: carriercomm/WHMCS
 static function dump()
 {
     return monitisSqlHelper::query('SELECT * FROM ' . MONITIS_LOG_TABLE . ' ORDER BY `date` DESC');
 }
コード例 #12
0
ファイル: clientapi.class.php プロジェクト: carriercomm/WHMCS
 static function unlinkUser($userid)
 {
     monitisSqlHelper::altQuery('DELETE FROM ' . MONITIS_USER_TABLE . ' WHERE user_id=' . $userid);
     return array('status' => 'ok');
 }
コード例 #13
0
ファイル: servermonitors.php プロジェクト: carriercomm/WHMCS
 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;
 }
コード例 #14
0
ファイル: refresh.php プロジェクト: carriercomm/WHMCS
 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;
 }
コード例 #15
0
 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']);
         }
     }
 }
コード例 #16
0
ファイル: internal.class.php プロジェクト: carriercomm/WHMCS
 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;
 }
コード例 #17
0
 public function whmcsAdminList()
 {
     //return $this->adminList();
     return monitisSqlHelper::query('SELECT * FROM tbladmins');
 }
コード例 #18
0
ファイル: hook.php プロジェクト: carriercomm/WHMCS
                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>