From 7369d6b98a05c38582ed927325c2a5d2ce98b5fd Mon Sep 17 00:00:00 2001 From: Serghey Rodin Date: Wed, 17 Sep 2014 00:35:24 +0300 Subject: [PATCH] firewall web interface --- web/add/firewall/index.php | 76 +++++++++++++++ web/bulk/firewall/index.php | 36 +++++++ web/delete/firewall/index.php | 30 ++++++ web/edit/firewall/index.php | 87 +++++++++++++++++ web/list/firewall/index.php | 33 +++++++ web/templates/admin/add_firewall.html | 121 ++++++++++++++++++++++++ web/templates/admin/edit_firewall.html | 125 +++++++++++++++++++++++++ web/templates/admin/list_firewall.html | 91 ++++++++++++++++++ 8 files changed, 599 insertions(+) create mode 100644 web/add/firewall/index.php create mode 100644 web/bulk/firewall/index.php create mode 100644 web/delete/firewall/index.php create mode 100644 web/edit/firewall/index.php create mode 100644 web/list/firewall/index.php create mode 100644 web/templates/admin/add_firewall.html create mode 100644 web/templates/admin/edit_firewall.html create mode 100644 web/templates/admin/list_firewall.html diff --git a/web/add/firewall/index.php b/web/add/firewall/index.php new file mode 100644 index 00000000..992d42b3 --- /dev/null +++ b/web/add/firewall/index.php @@ -0,0 +1,76 @@ + $error) { + if ( $i == 0 ) { + $error_msg = $error; + } else { + $error_msg = $error_msg.", ".$error; + } + } + $_SESSION['error_msg'] = __('Field "%s" can not be blank.',$error_msg); + } + + // Protect input + $v_action = escapeshellarg($_POST['v_action']); + $v_protocol = escapeshellarg($_POST['v_protocol']); + $v_port = str_replace(" ",",", $_POST['v_port']); + $v_port = preg_replace('/\,+/', ',', $v_port); + $v_port = trim($v_port, ","); + $v_port = escapeshellarg($v_port); + $v_ip = escapeshellarg($_POST['v_ip']); + $v_comment = escapeshellarg($_POST['v_comment']); + + // Add firewall rule + if (empty($_SESSION['error_msg'])) { + exec (VESTA_CMD."v-add-sys-firewall-rule ".$v_action." ".$v_protocol." ".$v_port." ".$v_ip." ".$v_comment, $output, $return_var); + check_return_code($return_var,$output); + unset($output); + } + + // Flush field values on success + if (empty($_SESSION['error_msg'])) { + $_SESSION['ok_msg'] = __('RULE_CREATED_OK'); + unset($v_port); + unset($v_ip); + unset($v_comment); + } +} + +// Header +include($_SERVER['DOCUMENT_ROOT'].'/templates/header.html'); + +// Panel +top_panel($user,$TAB); + +// Display body +include($_SERVER['DOCUMENT_ROOT'].'/templates/admin/add_firewall.html'); + +// Flush session messages +unset($_SESSION['error_msg']); +unset($_SESSION['ok_msg']); + +// Footer +include($_SERVER['DOCUMENT_ROOT'].'/templates/footer.html'); diff --git a/web/bulk/firewall/index.php b/web/bulk/firewall/index.php new file mode 100644 index 00000000..d5d2e0e0 --- /dev/null +++ b/web/bulk/firewall/index.php @@ -0,0 +1,36 @@ + + + + + + + + +
+ + + + + + + +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ +
+ +
+ () +
+ + () +
+ + () +
+ +
+ + + +
+
+ diff --git a/web/templates/admin/edit_firewall.html b/web/templates/admin/edit_firewall.html new file mode 100644 index 00000000..9c7fa371 --- /dev/null +++ b/web/templates/admin/edit_firewall.html @@ -0,0 +1,125 @@ + + + + + + + + + + + + + + + + + +
+ + + + + +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ +
+ +
+ () +
+ + () +
+ + () +
+ +
+ + + +
+
+
\ No newline at end of file diff --git a/web/templates/admin/list_firewall.html b/web/templates/admin/list_firewall.html new file mode 100644 index 00000000..6ce2e28f --- /dev/null +++ b/web/templates/admin/list_firewall.html @@ -0,0 +1,91 @@ + + + + + + + +
+ + $value) { + ++$i; + if ($data[$key]['SUSPENDED'] == 'yes') { + $status = 'suspended'; + $spnd_action = 'unsuspend' ; + $spnd_confirmation = 'UNSUSPEND_RULE_CONFIRMATION' ; + } else { + $status = 'active'; + $spnd_action = 'suspend' ; + $spnd_confirmation = 'UNSUSPEND_RULE_CONFIRMATION' ; + } + ?> + + + + + +
+ + + +
+
+ + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ +
+