Skip to content

Commit 71290ee

Browse files
committed
[WebUI] Add list ipset page
1 parent e9ee6da commit 71290ee

File tree

2 files changed

+143
-0
lines changed

2 files changed

+143
-0
lines changed

web/list/firewall/ipset/index.php

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
<?php
2+
error_reporting(NULL);
3+
$TAB = 'FIREWALL';
4+
5+
// Main include
6+
include($_SERVER['DOCUMENT_ROOT']."/inc/main.php");
7+
8+
// Check user
9+
if ($_SESSION['user'] != 'admin') {
10+
header("Location: /list/user");
11+
exit;
12+
}
13+
14+
// Data
15+
exec (HESTIA_CMD."v-list-firewall-ipset json", $output, $return_var);
16+
$data = json_decode(implode('', $output), true);
17+
ksort($data);
18+
19+
// Render page
20+
render_page($user, $TAB, 'list_firewall_ipset');
21+
22+
// Back uri
23+
$_SESSION['back'] = $_SERVER['REQUEST_URI'];
Lines changed: 120 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,120 @@
1+
<div class="l-center">
2+
<div class="l-sort clearfix noselect">
3+
<div class="l-unit-toolbar__buttonstrip">
4+
<a class="ui-button cancel" id="btn-back" href="/list/firewall/"><i class="fas fa-arrow-left status-icon blue"></i> <?=__('Back')?></a>
5+
<a href="/add/firewall/ipset/" id="btn-create" class="ui-button cancel" title="<?=__('Add Ipset List')?>"><i class="fas fa-plus-circle status-icon green"></i> <?=__('Add Ipset List')?></a>
6+
</div>
7+
<div class="l-sort-toolbar clearfix">
8+
<table>
9+
<tr>
10+
<td>
11+
<form action="/bulk/firewall/ipset/" method="post" id="objects">
12+
<input type="hidden" name="token" value="<?=$_SESSION['token']?>" />
13+
<div class="l-select">
14+
<select name="action" id="">
15+
<option value=""><?=__('apply to selected')?></option>
16+
<option value="delete"><?php print __('delete') ?></option>
17+
</select>
18+
</div>
19+
<button type="submit" class="l-sort-toolbar__filter-apply" value=""><i class="fas fa-arrow-right"></i></button>
20+
</td>
21+
</tr>
22+
</table>
23+
</div>
24+
</div>
25+
</div>
26+
27+
<div class="l-separator"></div>
28+
29+
<div class="l-center units animated fadeIn">
30+
<div class="header table-header">
31+
<div class="l-unit__col l-unit__col--right">
32+
<div class="clearfix l-unit__stat-col--left super-compact">
33+
<input id="toggle-all" type="checkbox" name="toggle-all" value="toggle-all" onChange="checkedAll('objects');">
34+
</div>
35+
<div class="clearfix l-unit__stat-col--left wide-3"><b><?php print __('Ipset Name');?></b></div>
36+
<div class="clearfix l-unit__stat-col--left compact-4"><b>&nbsp;</b></div>
37+
<div class="clearfix l-unit__stat-col--left text-center compact-5"><b><?php print __('Autoupdate');?></b></div>
38+
<div class="clearfix l-unit__stat-col--left text-center compact-4"><b><?php print __('Ip Ver');?></b></div>
39+
<div class="clearfix l-unit__stat-col--left text-center compact-4"><b><?php print __('Date');?></b></div>
40+
<div class="clearfix l-unit__stat-col--left text-center compact-4"><b><?php print __('Time');?></b></div>
41+
</div>
42+
</div>
43+
44+
<?php
45+
foreach ($data as $key => $value) {
46+
++$i;
47+
48+
if ($data[$key]['SUSPENDED'] == 'yes') {
49+
$status = 'suspended';
50+
} else {
51+
$status = 'active';
52+
}
53+
54+
list($listname, $chain) = explode(":", $key);
55+
?>
56+
57+
<div class="l-unit<? if($status == 'suspended') echo ' l-unit--suspended';?>">
58+
<div class="l-unit__col l-unit__col--right">
59+
<div class="clearfix l-unit__stat-col--left super-compact">
60+
<input id="check<?php echo $i ?>" class="ch-toggle" type="checkbox" name="setname[]" value="<?php echo $listname ?>">
61+
</div>
62+
<div class="clearfix l-unit__stat-col--left wide-3"><b><?=$listname?></b></div>
63+
<!-- START QUICK ACTION TOOLBAR AREA -->
64+
<div class="clearfix l-unit__stat-col--left compact-4">
65+
<div class="l-unit-toolbar__col l-unit-toolbar__col--right noselect">
66+
<div class="actions-panel clearfix">
67+
68+
<div class="actions-panel__col actions-panel__delete shortcut-delete" key-action="js">
69+
<a id="delete_link_<?=$i?>" class="data-controls do_delete">
70+
<i class="fas fa-trash status-icon red status-icon dim do_delete"></i>
71+
<input type="hidden" name="delete_url" value="/delete/firewall/ipset/?listname=<?=$listname?>&token=<?=$_SESSION['token']?>" />
72+
<div id="delete_dialog_<?=$i?>" class="confirmation-text-delete hidden" title="<?=__('Confirmation')?>">
73+
<p class="confirmation"><?=__('DELETE_IPSET_CONFIRMATION', $key)?></p>
74+
</div>
75+
</a>
76+
</div>
77+
</div>
78+
</div>
79+
</div>
80+
<!-- END QUICK ACTION TOOLBAR AREA -->
81+
<div class="clearfix l-unit__stat-col--left text-center compact-5"><b>
82+
<? if($data[$key]['AUTOUPDATE'] == 'no'){ ?>
83+
<i class="fas fa-times-circle status-icon red"></i>
84+
<? } else {?>
85+
<i class="fas fa-check-circle status-icon green"></i>
86+
<? } ?>
87+
</b>
88+
</div>
89+
<div class="clearfix l-unit__stat-col--left text-center compact-4"><?=__($data[$key]['IP_VERSION'])?></div>
90+
<div class="clearfix l-unit__stat-col--left text-center compact-4"><?=__($data[$key]['DATE'])?></div>
91+
<div class="clearfix l-unit__stat-col--left text-center compact-4"><?=$data[$key]['TIME']?></div>
92+
</div>
93+
</div>
94+
<?}?>
95+
</div>
96+
97+
<div id="vstobjects">
98+
<div class="l-separator"></div>
99+
<div class="l-center">
100+
<div class="l-unit-ft">
101+
<table class='data'></table>
102+
<div class="data-count l-unit__col l-unit__col--right clearfix">
103+
<?php
104+
if ( $i == 0) {
105+
echo __('There are currently no Ipset lists defined.');
106+
}
107+
if ( $i == 1) {
108+
echo __('1 Ipset list');
109+
}
110+
if ( $i > 1) {
111+
echo __('%s Ipser lists',$i);
112+
}
113+
?>
114+
</div>
115+
<div class="data-count l-unit__col l-unit__col--right back clearfix">
116+
117+
</div>
118+
</div>
119+
</div>
120+
</div>

0 commit comments

Comments
 (0)