Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
96 changes: 96 additions & 0 deletions includes/functions.php
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,102 @@
include_once(__DIR__ . '/../classes/cURL.php');
include_once(__DIR__ . '/../classes/mxlookup.php');

/**
* Validate and store the shared list-page request variables (rows, page,
* refresh, sort and the optional state and regex filters) under $session.
*
* The urls, servers and proxies list pages differ only in their session key,
* default sort column, default refresh interval and whether they expose the
* state and regex filters, so those are the only parameters.
*/
function webseer_validate_list_request($session, $sort_default, $refresh_default, $with_state = true, $with_rfilter = false) {
$filters = [
'rows' => [
'filter' => FILTER_VALIDATE_INT,
'pageset' => true,
'default' => '-1'
],
'page' => [
'filter' => FILTER_VALIDATE_INT,
'default' => '1'
],
'refresh' => [
'filter' => FILTER_VALIDATE_INT,
'pageset' => true,
'default' => $refresh_default
],
];

if ($with_rfilter) {
$filters['rfilter'] = [
'filter' => FILTER_VALIDATE_IS_REGEX,
'default' => '',
'pageset' => true,
'options' => ['options' => 'sanitize_search_string']
];
}

$filters['sort_column'] = [
'filter' => FILTER_CALLBACK,
'default' => $sort_default,
'options' => ['options' => 'sanitize_search_string']
];

$filters['sort_direction'] = [
'filter' => FILTER_CALLBACK,
'default' => 'ASC',
'options' => ['options' => 'sanitize_search_string']
];

if ($with_state) {
$filters['state'] = [
'filter' => FILTER_VALIDATE_INT,
'pageset' => true,
'default' => '-1'
];
}

validate_store_request_vars($filters, $session);
}

/**
* Validate and store the shared history/log request variables under $session.
*/
function webseer_validate_log_request($session) {
$filters = [
'id' => [
'filter' => FILTER_VALIDATE_INT,
'default' => '-1'
],
'rows' => [
'filter' => FILTER_VALIDATE_INT,
'pageset' => true,
'default' => '-1'
],
'page' => [
'filter' => FILTER_VALIDATE_INT,
'default' => '1'
],
'filter' => [
'filter' => FILTER_CALLBACK,
'default' => '',
'options' => ['options' => 'sanitize_search_string']
],
'sort_column' => [
'filter' => FILTER_CALLBACK,
'default' => 'lastcheck',
'options' => ['options' => 'sanitize_search_string']
],
'sort_direction' => [
'filter' => FILTER_CALLBACK,
'default' => 'DESC',
'options' => ['options' => 'sanitize_search_string']
],
];

validate_store_request_vars($filters, $session);
}

function webseer_show_tab($current_tab) {
global $config;

Expand Down
79 changes: 2 additions & 77 deletions webseer.php
Original file line number Diff line number Diff line change
Expand Up @@ -453,86 +453,11 @@ function webseer_edit_url() {
* like to create issues with Cacti.
*/
function webseer_request_validation() {
/* ================= input validation and session storage ================= */
$filters = array(
'rows' => array(
'filter' => FILTER_VALIDATE_INT,
'pageset' => true,
'default' => '-1'
),
'page' => array(
'filter' => FILTER_VALIDATE_INT,
'default' => '1'
),
'refresh' => array(
'filter' => FILTER_VALIDATE_INT,
'pageset' => true,
'default' => read_config_option('log_refresh_interval')
),
'rfilter' => array(
'filter' => FILTER_VALIDATE_IS_REGEX,
'default' => '',
'pageset' => true,
'options' => array('options' => 'sanitize_search_string')
),
'sort_column' => array(
'filter' => FILTER_CALLBACK,
'default' => 'display_name',
'options' => array('options' => 'sanitize_search_string')
),
'sort_direction' => array(
'filter' => FILTER_CALLBACK,
'default' => 'ASC',
'options' => array('options' => 'sanitize_search_string')
),
'state' => array(
'filter' => FILTER_VALIDATE_INT,
'pageset' => true,
'default' => '-1'
)
);

validate_store_request_vars($filters, 'sess_webseerurl');
/* ================= input validation ================= */
webseer_validate_list_request('sess_webseerurl', 'display_name', read_config_option('log_refresh_interval'), true, true);
}

function webseer_log_request_validation() {
global $title, $rows_selector, $config, $reset_multi;

/* ================= input validation and session storage ================= */
$filters = array(
'id' => array(
'filter' => FILTER_VALIDATE_INT,
'default' => '-1'
),
'rows' => array(
'filter' => FILTER_VALIDATE_INT,
'pageset' => true,
'default' => '-1'
),
'page' => array(
'filter' => FILTER_VALIDATE_INT,
'default' => '1'
),
'filter' => array(
'filter' => FILTER_CALLBACK,
'default' => '',
'options' => array('options' => 'sanitize_search_string')
),
'sort_column' => array(
'filter' => FILTER_CALLBACK,
'default' => 'lastcheck',
'options' => array('options' => 'sanitize_search_string')
),
'sort_direction' => array(
'filter' => FILTER_CALLBACK,
'default' => 'DESC',
'options' => array('options' => 'sanitize_search_string')
),
);

validate_store_request_vars($filters, 'sess_webseer_log');
/* ================= input validation ================= */
webseer_validate_log_request('sess_webseer_log');
}

function webseer_show_history() {
Expand Down
31 changes: 1 addition & 30 deletions webseer_proxies.php
Original file line number Diff line number Diff line change
Expand Up @@ -200,36 +200,7 @@ function proxy_edit() {
* like to create issues with Cacti.
*/
function request_validation() {
/* ================= input validation and session storage ================= */
$filters = array(
'rows' => array(
'filter' => FILTER_VALIDATE_INT,
'pageset' => true,
'default' => '-1'
),
'page' => array(
'filter' => FILTER_VALIDATE_INT,
'default' => '1'
),
'refresh' => array(
'filter' => FILTER_VALIDATE_INT,
'pageset' => true,
'default' => '20',
),
'sort_column' => array(
'filter' => FILTER_CALLBACK,
'default' => 'name',
'options' => array('options' => 'sanitize_search_string')
),
'sort_direction' => array(
'filter' => FILTER_CALLBACK,
'default' => 'ASC',
'options' => array('options' => 'sanitize_search_string')
)
);

validate_store_request_vars($filters, 'sess_ws_proxy');
/* ================= input validation ================= */
webseer_validate_list_request('sess_ws_proxy', 'name', '20', false, false);
}

function proxies() {
Expand Down
75 changes: 2 additions & 73 deletions webseer_servers.php
Original file line number Diff line number Diff line change
Expand Up @@ -240,82 +240,11 @@ function do_webseer() {
* like to create issues with Cacti.
*/
function webseer_request_validation() {
global $title, $rows_selector, $config, $reset_multi;

/* ================= input validation and session storage ================= */
$filters = array(
'rows' => array(
'filter' => FILTER_VALIDATE_INT,
'pageset' => true,
'default' => '-1'
),
'page' => array(
'filter' => FILTER_VALIDATE_INT,
'default' => '1'
),
'refresh' => array(
'filter' => FILTER_VALIDATE_INT,
'pageset' => true,
'default' => '20',
),
'sort_column' => array(
'filter' => FILTER_CALLBACK,
'default' => 'name',
'options' => array('options' => 'sanitize_search_string')
),
'sort_direction' => array(
'filter' => FILTER_CALLBACK,
'default' => 'ASC',
'options' => array('options' => 'sanitize_search_string')
),
'state' => array(
'filter' => FILTER_VALIDATE_INT,
'pageset' => true,
'default' => '-1'
)
);

validate_store_request_vars($filters, 'sess_webseer');
/* ================= input validation ================= */
webseer_validate_list_request('sess_webseer', 'name', '20', true, false);
}

function webseer_log_request_validation() {
global $title, $rows_selector, $config, $reset_multi;

/* ================= input validation and session storage ================= */
$filters = array(
'id' => array(
'filter' => FILTER_VALIDATE_INT,
'default' => '-1'
),
'rows' => array(
'filter' => FILTER_VALIDATE_INT,
'pageset' => true,
'default' => '-1'
),
'page' => array(
'filter' => FILTER_VALIDATE_INT,
'default' => '1'
),
'filter' => array(
'filter' => FILTER_CALLBACK,
'default' => '',
'options' => array('options' => 'sanitize_search_string')
),
'sort_column' => array(
'filter' => FILTER_CALLBACK,
'default' => 'lastcheck',
'options' => array('options' => 'sanitize_search_string')
),
'sort_direction' => array(
'filter' => FILTER_CALLBACK,
'default' => 'DESC',
'options' => array('options' => 'sanitize_search_string')
),
);

validate_store_request_vars($filters, 'sess_weseer_server_log');
/* ================= input validation ================= */
webseer_validate_log_request('sess_weseer_server_log');
}

function webseer_show_history() {
Expand Down