Foundation, missing the actual check

pull/626/head
TimZ99 2018-08-29 14:09:11 +02:00
parent b49659f49a
commit e33729d825
No known key found for this signature in database
GPG Key ID: 4D8268DC68E8339D
6 changed files with 41 additions and 4 deletions

View File

@ -47,6 +47,7 @@ $sm_lang = array(
'back_to_top' => 'Back to top',
'go_back' => 'Go back',
'ok' => 'OK',
'bad' => 'bad',
'cancel' => 'Cancel',
'activate' => 'Activate',
// date/time format according the strftime php function format parameter http://php.net/manual/function.strftime.php
@ -169,6 +170,8 @@ $sm_lang = array(
'pattern_description' => 'If this pattern is not found on the website, the server will be marked online/offline. Regular expressions are allowed.',
'pattern_online' => 'Pattern indicates website is',
'pattern_online_description' => 'Online: If this pattern is not found on the website, the server will be marked online. Offline: If this pattern is not found on the website, the server will be marked offline.',
'redirect_check' => 'Redirecting to another domain is',
'redirect_check_description' => 'Redirect to another domain is usually a bad sign.',
'header' => 'Header',
'header_name_description' => 'Header name (case-sensitive)',
'header_value_description' => 'Header value. Regular expressions are allowed.',

View File

@ -65,6 +65,7 @@ abstract class AbstractServerController extends AbstractController {
`s`.`label`,
`s`.`pattern`,
`s`.`pattern_online`,
`s`.`redirect_check`,
`s`.`header_name`,
`s`.`header_value`,
`s`.`status`,

View File

@ -200,6 +200,7 @@ class ServerController extends AbstractServerController {
'default_value_timeout' => PSM_CURL_TIMEOUT,
'edit_value_pattern' => $edit_server['pattern'],
'edit_pattern_selected_'.$edit_server['pattern_online'] => 'selected="selected"',
'edit_redirect_check_selected_'.$edit_server['redirect_check'] => 'selected="selected"',
'edit_value_header_name' => $edit_server['header_name'],
'edit_value_header_value' => $edit_server['header_value'],
'edit_value_warning_threshold' => $edit_server['warning_threshold'],
@ -267,6 +268,7 @@ class ServerController extends AbstractServerController {
'type' => psm_POST('type', ''),
'pattern' => psm_POST('pattern', ''),
'pattern_online' => in_array($_POST['pattern_online'], array('yes', 'no')) ? $_POST['pattern_online'] : 'yes',
'redirect_check' => in_array($_POST['redirect_check'], array('ok', 'bad')) ? $_POST['redirect_check'] : 'bad',
'header_name' => psm_POST('header_name', ''),
'header_value' => psm_POST('header_value', ''),
'rtime' => psm_POST('rtime', '0.0000000'),
@ -473,6 +475,8 @@ class ServerController extends AbstractServerController {
'label_pattern_description' => psm_get_lang('servers', 'pattern_description'),
'label_pattern_online' => psm_get_lang('servers', 'pattern_online'),
'label_pattern_online_description' => psm_get_lang('servers', 'pattern_online_description'),
'label_redirect_check' => psm_get_lang('servers', 'redirect_check'),
'label_redirect_check_description' => psm_get_lang('servers', 'redirect_check_description'),
'label_header' => psm_get_lang('servers', 'header'),
'label_header_name_description' => psm_get_lang('servers', 'header_name_description'),
'label_header_value_description' => psm_get_lang('servers', 'header_value_description'),
@ -500,6 +504,8 @@ class ServerController extends AbstractServerController {
'label_add_new' => psm_get_lang('system', 'add_new'),
'label_online' => psm_get_lang('system', 'online'),
'label_offline' => psm_get_lang('system', 'offline'),
'label_ok' => psm_get_lang('system', 'ok'),
'label_bad' => psm_get_lang('system', 'bad'),
);
}

View File

@ -126,7 +126,7 @@ class Installer {
$this->log('Populating database...');
$queries = array();
$queries[] = "INSERT INTO `".PSM_DB_PREFIX."servers` (`ip`, `port`, `label`, `type`, `pattern`, `pattern_online`, `status`, `rtime`, `active`, `email`, `sms`, `pushover`, `telegram`) VALUES ('http://sourceforge.net/index.php', 80, 'SourceForge', 'website', '', 'yes','on', '0.0000000', 'yes', 'yes', 'yes', 'yes', 'yes'), ('smtp.gmail.com', 465, 'Gmail SMTP', 'service', '', 'yes', 'on', '0.0000000', 'yes', 'yes', 'yes', 'yes', 'yes')";
$queries[] = "INSERT INTO `".PSM_DB_PREFIX."servers` (`ip`, `port`, `label`, `type`, `pattern`, `pattern_online`, `redirect_check`, `status`, `rtime`, `active`, `email`, `sms`, `pushover`, `telegram`) VALUES ('http://sourceforge.net/index.php', 80, 'SourceForge', 'website', '', 'yes', 'bad', 'on', '0.0000000', 'yes', 'yes', 'yes', 'yes', 'yes'), ('smtp.gmail.com', 465, 'Gmail SMTP', 'service', '', 'yes', 'bad','on', '0.0000000', 'yes', 'yes', 'yes', 'yes', 'yes')";
$queries[] = "INSERT INTO `".PSM_DB_PREFIX."users_servers` (`user_id`,`server_id`) VALUES (1, 1), (1, 2);";
$queries[] = "INSERT INTO `".PSM_DB_PREFIX."config` (`key`, `value`) VALUE
('language', 'en_US'),
@ -229,6 +229,7 @@ class Installer {
`type` enum('ping','service','website') NOT NULL default 'service',
`pattern` varchar(255) NOT NULL,
`pattern_online` enum('yes','no') NOT NULL default 'yes',
`redirect_check` enum('ok','bad') NOT NULL default 'bad',
`header_name` varchar(255) NOT NULL default '',
`header_value` varchar(255) NOT NULL default '',
`status` enum('on','off') NOT NULL default 'on',
@ -313,6 +314,9 @@ class Installer {
if (version_compare($version_from, '3.3.0', '<')) {
$this->upgrade330();
}
if (version_compare($version_from, '3.4.0', '<')) {
$this->upgrade340();
}
psm_update_conf('version', $version_to);
}
@ -539,6 +543,14 @@ class Installer {
if (psm_get_conf('sms_gateway') == 'mollie') {
psm_update_conf('sms_gateway', 'messagebird');
}
}
/**
* Upgrade for v3.4.0 release
*/
protected function upgrade340() {
$queries = array();
$queries[] = "ALTER TABLE `".PSM_DB_PREFIX."servers` ADD `redirect_check` ENUM( 'ok','bad' ) NOT NULL DEFAULT 'bad' AFTER `pattern_online`;";
$this->execSQL($queries);
}
}

View File

@ -82,7 +82,7 @@ class StatusUpdater {
$this->server = $this->db->selectRow(PSM_DB_PREFIX.'servers', array(
'server_id' => $server_id,
), array(
'server_id', 'ip', 'port', 'label', 'type', 'pattern', 'pattern_online', 'header_name', 'header_value', 'status', 'active', 'warning_threshold',
'server_id', 'ip', 'port', 'label', 'type', 'pattern', 'pattern_online', 'redirect_check', 'header_name', 'header_value', 'status', 'active', 'warning_threshold',
'warning_threshold_counter', 'timeout', 'website_username', 'website_password', 'last_offline'
));
if (empty($this->server)) {
@ -257,7 +257,7 @@ class StatusUpdater {
} else {
$result = true;
//Okay, the HTTP status is good : 2xx or 3xx. Now we have to test the pattern if it's set up
// Okay, the HTTP status is good : 2xx or 3xx. Now we have to test the pattern if it's set up
if ($this->server['pattern'] != '') {
// Check to see if the body should not contain specified pattern
// Check to see if the pattern was [not] found.
@ -269,6 +269,12 @@ class StatusUpdater {
}
}
// Check if the website redirects to another domain
if ($this->server['redirect_check'] == 'bad'){
//$this->error = "The IP/URL redirects to another domain.";
//$result = false;
}
// Should we check a header ?
if ($this->server['header_name'] != '' && $this->server['header_value'] != '') {
$header_flag = false;

View File

@ -74,6 +74,15 @@
</select>
</div>
</div>
<div class="control-group types typeWebsite">
<label class="control-label" for="redirect_check">{{ label_redirect_check }}</label>
<div class="controls">
<select id="redirect_check" name="redirect_check" data-toggle="tooltip" title="{{ label_redirect_check_description}}">
<option value="ok" {{ edit_redirect_check_selected_ok|raw }}>{{ label_ok }}</option>
<option value="bad" {{ edit_redirect_check_selected_bad|raw }}>{{ label_bad }}</option>
</select>
</div>
</div>
<div class="control-group types typeWebsite">
<label class="control-label" for="header_name">{{ label_header }}</label>
<div class="controls">