summaryrefslogtreecommitdiffstats
path: root/usr/local/www/firewall_rules.php
diff options
context:
space:
mode:
authorSjon Hortensius <sjon@hortensius.net>2014-12-30 22:12:39 +0100
committerSjon Hortensius <sjon@hortensius.net>2014-12-30 22:12:39 +0100
commit3b2c83b8a6c2bd2c90b8470c112dde713bac48b6 (patch)
treedf3b61bfef50466daef3b9f5a938fa3ac36585a5 /usr/local/www/firewall_rules.php
parentd2cc92ec2686d5fcbf31e23f2d5f06087709fbf1 (diff)
downloadpfsense-3b2c83b8a6c2bd2c90b8470c112dde713bac48b6.zip
pfsense-3b2c83b8a6c2bd2c90b8470c112dde713bac48b6.tar.gz
initial commit of new firewall_rules
css - add styling for tr.disabled firewall_rules - migrated to bootstrap guiconfig - changed alias-popup to be displayed inline instead of xhr index - no need to serve alias-popup via xhr
Diffstat (limited to 'usr/local/www/firewall_rules.php')
-rw-r--r--usr/local/www/firewall_rules.php1038
1 files changed, 445 insertions, 593 deletions
diff --git a/usr/local/www/firewall_rules.php b/usr/local/www/firewall_rules.php
index 250ce64..8ec7f86 100644
--- a/usr/local/www/firewall_rules.php
+++ b/usr/local/www/firewall_rules.php
@@ -4,7 +4,7 @@
firewall_rules.php
part of pfSense (https://www.pfsense.org)
Copyright (C) 2005 Scott Ullrich (sullrich@gmail.com)
- Copyright (C) 2013-2014 Electric Sheep Fencing, LP
+ Copyright (C) 2013-2014 Electric Sheep Fencing, LP
originally part of m0n0wall (http://m0n0.ch/wall)
Copyright (C) 2003-2004 Manuel Kasper <mk@neon1.net>.
@@ -270,20 +270,20 @@ if (isset($_POST['del_x'])) {
exit;
}
}
-$closehead = false;
+$pgtitle = array(gettext("System"),gettext("General Setup"));
include("head.inc");
+$nrules = 0;
+
+?>
+<body id="firewall_rules">
+<?php
+ include("fbegin.inc");
?>
-<link type="text/css" rel="stylesheet" href="/javascript/chosen/chosen.css" />
-</head>
-<body link="#0000CC" vlink="#0000CC" alink="#0000CC">
-<script src="/javascript/chosen/chosen.jquery.js" type="text/javascript"></script>
-<?php include("fbegin.inc"); ?>
<form action="firewall_rules.php" method="post">
-<script type="text/javascript" src="/javascript/row_toggle.js"></script>
-<?php if ($savemsg) print_info_box($savemsg); ?>
+<?php if ($savemsg) print_info_box($savemsg);?>
<?php if (is_subsystem_dirty('filter')): ?><p>
<?php
if($_REQUEST['undodrag']) {
@@ -295,617 +295,469 @@ if($_REQUEST['undodrag']) {
}
?>
<br />
-<?php endif; ?>
-<div id="loading" style="visibity:hidden">
- <img src="/themes/<?=$g['theme']?>/images/misc/loader.gif" alt="loader" /> <?php echo gettext("Loading, please wait..."); ?>
- <p>&nbsp;</p>
-</div>
+<?php endif;?>
<?php
pfSense_handle_custom_code("/usr/local/pkg/firewall_rules/before_table");
?>
-<table width="100%" border="0" cellpadding="0" cellspacing="0" summary="firewall rules">
- <tr><td class="tabnavtbl">
- <?php
- /* active tabs */
- $tab_array = array();
- if ("FloatingRules" == $if)
- $active = true;
- else
- $active = false;
- $tab_array[] = array(gettext("Floating"), $active, "firewall_rules.php?if=FloatingRules");
- $tabscounter = 0; $i = 0; foreach ($iflist as $ifent => $ifname) {
- if ($ifent == $if)
- $active = true;
- else
- $active = false;
- $tab_array[] = array($ifname, $active, "firewall_rules.php?if={$ifent}");
- }
- display_top_tabs($tab_array);
+
+<?php
+/* active tabs */
+$tab_array = array(array(gettext("Floating"), ("FloatingRules" == $if), "firewall_rules.php?if=FloatingRules"));
+
+foreach ($iflist as $ifent => $ifname) {
+ $tab_array[] = array($ifname, ($ifent == $if), "firewall_rules.php?if={$ifent}");
+}
+
+display_top_tabs($tab_array);
+?>
+<table class="table table-striped">
+<?php
+ pfSense_handle_custom_code("/usr/local/pkg/firewall_rules/before_first_tr");
+?>
+ <thead>
+ <tr>
+ <th colspan="2"></th>
+ <th><?=gettext("ID");?></th>
+<?php
+ pfSense_handle_custom_code("/usr/local/pkg/firewall_rules/pre_id_tablehead");
+?>
+ <th><?=gettext("Proto");?></th>
+ <th><?=gettext("Source");?></th>
+ <th><?=gettext("Port");?></th>
+ <th><?=gettext("Destination");?></th>
+ <th><?=gettext("Port");?></th>
+ <th><?=gettext("Gateway");?></th>
+ <th><?=gettext("Queue");?></th>
+ <th><?=gettext("Schedule");?></th>
+<?php
+ pfSense_handle_custom_code("/usr/local/pkg/firewall_rules/pre_desc_tablehead");
+?>
+ <th><?=gettext("Description");?></th>
+ </tr>
+ </thead>
+ <tbody>
+ <?php // Show the anti-lockout rule if it's enabled, and we are on LAN with an if count > 1, or WAN with an if count of 1.
+ if (!isset($config['system']['webgui']['noantilockout']) &&
+ (((count($config['interfaces']) > 1) && ($if == 'lan'))
+ || ((count($config['interfaces']) == 1) && ($if == 'wan')))):
+
+ $alports = implode('<br />', filter_get_antilockout_ports(true));
?>
- </td></tr>
- <tr><td>
- <div id="mainarea">
- <table class="tabcont" width="100%" border="0" cellpadding="0" cellspacing="0" summary="main area">
- <?php
- pfSense_handle_custom_code("/usr/local/pkg/firewall_rules/before_first_tr");
- ?>
- <tr id="frheader">
- <td width="3%" class="list">&nbsp;</td>
- <td width="5%" class="list">&nbsp;</td>
- <td width="3%" class="listhdrr"><?=gettext("ID");?></td>
- <?php
- pfSense_handle_custom_code("/usr/local/pkg/firewall_rules/pre_id_tablehead");
- ?>
- <td width="6%" class="listhdrr"><?=gettext("Proto");?></td>
- <td width="12%" class="listhdrr"><?=gettext("Source");?></td>
- <td width="6%" class="listhdrr"><?=gettext("Port");?></td>
- <td width="12%" class="listhdrr"><?=gettext("Destination");?></td>
- <td width="6%" class="listhdrr"><?=gettext("Port");?></td>
- <td width="5%" class="listhdrr"><?=gettext("Gateway");?></td>
- <td width="8%" class="listhdrr"><?=gettext("Queue");?></td>
- <td width="5%" class="listhdrr"><?=gettext("Schedule");?></td>
- <?php
- pfSense_handle_custom_code("/usr/local/pkg/firewall_rules/pre_desc_tablehead");
- ?>
- <td width="19%" class="listhdr"><?=gettext("Description");?></td>
- <td width="10%" class="list">
- <table border="0" cellspacing="0" cellpadding="1" summary="delete selected rules">
- <tr>
- <?php
- $nrules = 0;
- for ($i = 0; isset($a_filter[$i]); $i++) {
- $filterent = $a_filter[$i];
- if ($filterent['interface'] != $if && !isset($filterent['floating']))
- continue;
- if (isset($filterent['floating']) && "FloatingRules" != $if)
- continue;
- $nrules++;
- }
- ?>
- <td>
- <?php if ($nrules == 0): ?>
- <img src="./themes/<?= $g['theme']; ?>/images/icons/icon_x_d.gif" width="17" height="17" title="<?gettext("delete selected rules"); ?>" border="0" alt="delete" /><?php else: ?>
- <input name="del" type="image" src="./themes/<?= $g['theme']; ?>/images/icons/icon_x.gif" style="width:17;height:17" title="<?=gettext("delete selected rules");?>" onclick="return confirm('<?=gettext('Do you really want to delete the selected rules?');?>')" />
- <?php endif; ?>
- </td>
- <td align="center" valign="middle"><a href="firewall_rules_edit.php?if=<?=htmlspecialchars($if);?>&amp;after=-1"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_plus.gif" title="<?=gettext("add new rule");?>" width="17" height="17" border="0" alt="add" /></a></td>
- </tr>
- </table>
- </td>
- </tr>
- <?php // Show the anti-lockout rule if it's enabled, and we are on LAN with an if count > 1, or WAN with an if count of 1.
- if (!isset($config['system']['webgui']['noantilockout']) &&
- (((count($config['interfaces']) > 1) && ($if == 'lan'))
- || ((count($config['interfaces']) == 1) && ($if == 'wan')))):
-
- $alports = implode('<br />', filter_get_antilockout_ports(true));
- ?>
- <tr valign="top" id="antilockout">
- <td class="list">&nbsp;</td>
- <td class="listt" align="center"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_pass.gif" width="11" height="11" border="0" alt="pass" /></td>
- <td class="listlr" style="background-color: #E0E0E0">&nbsp;</td>
- <?php
- pfSense_handle_custom_code("/usr/local/pkg/firewall_rules/pre_id_tr_antilockout");
- ?>
- <td class="listr" style="background-color: #E0E0E0">*</td>
- <td class="listr" style="background-color: #E0E0E0">*</td>
- <td class="listr" style="background-color: #E0E0E0">*</td>
- <td class="listr" style="background-color: #E0E0E0"><?=$iflist[$if];?> Address</td>
- <td class="listr" style="background-color: #E0E0E0"><?= $alports ?></td>
- <td class="listr" style="background-color: #E0E0E0">*</td>
- <td class="listr" style="background-color: #E0E0E0">*</td>
- <td class="listr" style="background-color: #E0E0E0">&nbsp;</td>
- <td class="listbg"><?=gettext("Anti-Lockout Rule");?></td>
- <td valign="middle" class="list nowrap">
- <table border="0" cellspacing="0" cellpadding="1" summary="move rules before">
- <tr>
- <td><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_left_d.gif" width="17" height="17" title="<?=gettext("move selected rules before this rule");?>" alt="move" /></td>
- <td><a href="system_advanced_admin.php"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_e.gif" title="<?=gettext("edit rule");?>" width="17" height="17" border="0" alt="edit" /></a></td>
- </tr>
- <tr>
- <td align="center" valign="middle"></td>
- <td><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_plus_d.gif" title="<?=gettext("add a new rule based on this one");?>" width="17" height="17" border="0" alt="add" /></td>
- </tr>
- </table>
- </td>
- </tr>
-<?php endif; ?>
+ <tr id="antilockout">
+ <td></td>
+ <td><i class="icon icon-ok-circle"></i></td>
+ <td></td>
+ <?php
+ pfSense_handle_custom_code("/usr/local/pkg/firewall_rules/pre_id_tr_antilockout");
+ ?>
+ <td>*</td>
+ <td>*</td>
+ <td>*</td>
+ <td><?=$iflist[$if];?> Address</td>
+ <td><?=$alports?></td>
+ <td>*</td>
+ <td>*</td>
+ <td></td>
+ <td><?=gettext("Anti-Lockout Rule");?></td>
+ <td>
+ <a href="#" title="<?=gettext("move selected rules before this rule");?>"><i class="icon icon-chevron-down"></i></a>
+ <a href="system_advanced_admin.php" title="<?=gettext("edit rule");?>"><i class="icon icon-pencil"></i></a>
+ <a href="#" title="<?=gettext("copy this rule");?>"><i class="icon icon-random"></i></a>
+ </td>
+ </tr>
+<?php endif;?>
<?php if (isset($config['interfaces'][$if]['blockpriv'])): ?>
- <tr valign="top" id="frrfc1918">
- <td class="list">&nbsp;</td>
- <td class="listt" align="center"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_block.gif" width="11" height="11" border="0" alt="block" /></td>
- <td class="listlr" style="background-color: #E0E0E0">&nbsp;</td>
- <td class="listr" style="background-color: #E0E0E0">*</td>
- <td class="listr" style="background-color: #E0E0E0"><?=gettext("RFC 1918 networks");?></td>
- <td class="listr" style="background-color: #E0E0E0">*</td>
- <td class="listr" style="background-color: #E0E0E0">*</td>
- <td class="listr" style="background-color: #E0E0E0">*</td>
- <td class="listr" style="background-color: #E0E0E0">*</td>
- <td class="listr" style="background-color: #E0E0E0">*</td>
- <td class="listr" style="background-color: #E0E0E0">&nbsp;</td>
- <td class="listbg"><?=gettext("Block private networks");?></td>
- <td valign="middle" class="list nowrap">
- <table border="0" cellspacing="0" cellpadding="1" summary="move rules before">
- <tr>
- <td><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_left_d.gif" width="17" height="17" title="<?=gettext("move selected rules before this rule");?>" alt="edit" /></td>
- <td><a href="interfaces.php?if=<?=htmlspecialchars($if)?>#rfc1918"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_e.gif" title="<?=gettext("edit rule");?>" width="17" height="17" border="0" alt="edit" /></a></td>
- </tr>
- <tr>
- <td align="center" valign="middle"></td>
- <td><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_plus_d.gif" title="<?=gettext("add a new rule based on this one");?>" width="17" height="17" border="0" alt="add" /></td>
- </tr>
- </table>
- </td>
- </tr>
-<?php endif; ?>
+ <tr id="frrfc1918">
+ <td></td>
+ <td><i class="icon icon-remove-circle"></i></td>
+ <td></td>
+ <td>*</td>
+ <td><?=gettext("RFC 1918 networks");?></td>
+ <td>*</td>
+ <td>*</td>
+ <td>*</td>
+ <td>*</td>
+ <td>*</td>
+ <td></td>
+ <td><?=gettext("Block private networks");?></td>
+ <td>
+ <a href="#" title="<?=gettext("move selected rules before this rule");?>"><i class="icon icon-chevron-down"></i></a>
+ <a href="system_advanced_admin.php" title="<?=gettext("edit rule");?>"><i class="icon icon-pencil"></i></a>
+ <a href="#" title="<?=gettext("copy this rule");?>"><i class="icon icon-random"></i></a>
+ </td>
+ </tr>
+<?php endif;?>
<?php if (isset($config['interfaces'][$if]['blockbogons'])): ?>
- <tr valign="top" id="frrfc1918">
- <td class="list">&nbsp;</td>
- <td class="listt" align="center"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_block.gif" width="11" height="11" border="0" alt="block" /></td>
- <td class="listlr" style="background-color: #E0E0E0">&nbsp;</td>
- <td class="listr" style="background-color: #E0E0E0">*</td>
- <td class="listr" style="background-color: #E0E0E0"><?=gettext("Reserved/not assigned by IANA");?></td>
- <td class="listr" style="background-color: #E0E0E0">*</td>
- <td class="listr" style="background-color: #E0E0E0">*</td>
- <td class="listr" style="background-color: #E0E0E0">*</td>
- <td class="listr" style="background-color: #E0E0E0">*</td>
- <td class="listr" style="background-color: #E0E0E0">*</td>
- <td class="listr" style="background-color: #E0E0E0">*</td>
- <td class="listbg"><?=gettext("Block bogon networks");?></td>
- <td valign="middle" class="list nowrap">
- <table border="0" cellspacing="0" cellpadding="1" summary="move rules before">
- <tr>
- <td><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_left_d.gif" width="17" height="17" title="<?=gettext("move selected rules before this rule");?>" alt="move" /></td>
- <td><a href="interfaces.php?if=<?=htmlspecialchars($if)?>#rfc1918"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_e.gif" title="<?=gettext("edit rule");?>" width="17" height="17" border="0" alt=" edit" /></a></td>
- </tr>
- <tr>
- <td align="center" valign="middle"></td>
- <td><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_plus_d.gif" title="<?=gettext("add a new rule based on this one");?>" width="17" height="17" border="0" alt="add" /></td>
- </tr>
- </table>
- </td>
- </tr>
-<?php endif; ?>
- <tbody id="dragtable">
-<?php $nrules = 0; for ($i = 0; isset($a_filter[$i]); $i++):
+ <tr id="frrfc1918">
+ <td></td>
+ <td><i class="icon icon-remove-circle"></i></td>
+ <td></td>
+ <td>*</td>
+ <td><?=gettext("Reserved/not assigned by IANA");?></td>
+ <td>*</td>
+ <td>*</td>
+ <td>*</td>
+ <td>*</td>
+ <td>*</td>
+ <td>*</td>
+ <td><?=gettext("Block bogon networks");?></td>
+ <td>
+ <a href="#" title="<?=gettext("move selected rules before this rule");?>"><i class="icon icon-chevron-down"></i></a>
+ <a href="system_advanced_admin.php" title="<?=gettext("edit rule");?>"><i class="icon icon-pencil"></i></a>
+ <a href="#" title="<?=gettext("copy this rule");?>"><i class="icon icon-random"></i></a>
+ </td>
+ </tr>
+<?php endif;?>
+
+<?php for ($i = 0; isset($a_filter[$i]); $i++):
pfSense_handle_custom_code("/usr/local/pkg/firewall_rules/row_start");
$filterent = $a_filter[$i];
if ($filterent['interface'] != $if && !isset($filterent['floating']))
continue;
if (isset($filterent['floating']) && "FloatingRules" != $if)
continue;
- $isadvset = firewall_check_for_advanced_options($filterent);
- if($isadvset)
- $advanced_set = "<img src=\"./themes/{$g['theme']}/images/icons/icon_advanced.gif\" title=\"" . gettext("advanced settings set") . ": {$isadvset}\" border=\"0\" alt=\"avanced\" />";
- else
- $advanced_set = "";
+
+ $nrules++;
?>
- <tr valign="top" id="fr<?=$nrules;?>">
- <td class="listt">
- <input type="checkbox" id="frc<?=$nrules;?>" name="rule[]" value="<?=$i;?>" onclick="fr_bgcolor('<?=$nrules;?>')" style="margin: 0; padding: 0; width: 15px; height: 15px;" />
- <?php echo $advanced_set; ?>
- </td>
- <td class="listt" align="center">
- <?php
- if ($filterent['type'] == "block")
- $iconfn = "block";
- else if ($filterent['type'] == "reject")
- $iconfn = "reject";
- else if ($filterent['type'] == "match")
- $iconfn = "match";
- else
- $iconfn = "pass";
- if (isset($filterent['disabled'])) {
- $textss = "<span class=\"gray\">";
- $textse = "</span>";
- $iconfn .= "_d";
- } else {
- $textss = $textse = "";
- }
- ?>
- <a href="?if=<?=htmlspecialchars($if);?>&amp;act=toggle&amp;id=<?=$i;?>"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_<?=$iconfn;?>.gif" width="11" height="11" border="0" title="<?=gettext("click to toggle enabled/disabled status");?>" alt="icon" /></a>
- <?php
- if (isset($filterent['log'])):
- $iconfnlog = "log_s";
- if (isset($filterent['disabled']))
- $iconfnlog .= "_d";
- ?>
- <br /><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_<?=$iconfnlog;?>.gif" width="11" height="15" border="0" alt="icon" />
-<?php endif; ?>
- </td>
- <?php
-
- //build Alias popup box
- $alias_src_span_begin = "";
- $alias_src_port_span_begin = "";
- $alias_dst_span_begin = "";
- $alias_dst_port_span_begin = "";
-
- $alias_popup = rule_popup($filterent['source']['address'],pprint_port($filterent['source']['port']),$filterent['destination']['address'],pprint_port($filterent['destination']['port']));
-
- $alias_src_span_begin = $alias_popup["src"];
- $alias_src_port_span_begin = $alias_popup["srcport"];
- $alias_dst_span_begin = $alias_popup["dst"];
- $alias_dst_port_span_begin = $alias_popup["dstport"];
-
- $alias_src_span_end = $alias_popup["src_end"];
- $alias_src_port_span_end = $alias_popup["srcport_end"];
- $alias_dst_span_end = $alias_popup["dst_end"];
- $alias_dst_port_span_end = $alias_popup["dstport_end"];
-
- //build Schedule popup box
- $a_schedules = &$config['schedules']['schedule'];
- $schedule_span_begin = "";
- $schedule_span_end = "";
- $sched_caption_escaped = "";
- $sched_content = "";
- $schedstatus = false;
- $dayArray = array (gettext('Mon'),gettext('Tues'),gettext('Wed'),gettext('Thur'),gettext('Fri'),gettext('Sat'),gettext('Sun'));
- $monthArray = array (gettext('January'),gettext('February'),gettext('March'),gettext('April'),gettext('May'),gettext('June'),gettext('July'),gettext('August'),gettext('September'),gettext('October'),gettext('November'),gettext('December'));
- if($config['schedules']['schedule'] <> "" and is_array($config['schedules']['schedule'])) {
- foreach ($a_schedules as $schedule)
- {
- if ($schedule['name'] == $filterent['sched'] ){
- $schedstatus = filter_get_time_based_rule_status($schedule);
-
- foreach($schedule['timerange'] as $timerange) {
- $tempFriendlyTime = "";
- $tempID = "";
- $firstprint = false;
- if ($timerange){
- $dayFriendly = "";
- $tempFriendlyTime = "";
-
- //get hours
- $temptimerange = $timerange['hour'];
- $temptimeseparator = strrpos($temptimerange, "-");
-
- $starttime = substr ($temptimerange, 0, $temptimeseparator);
- $stoptime = substr ($temptimerange, $temptimeseparator+1);
-
- if ($timerange['month']){
- $tempmontharray = explode(",", $timerange['month']);
- $tempdayarray = explode(",",$timerange['day']);
- $arraycounter = 0;
- $firstDayFound = false;
- $firstPrint = false;
- foreach ($tempmontharray as $monthtmp){
- $month = $tempmontharray[$arraycounter];
- $day = $tempdayarray[$arraycounter];
-
- if (!$firstDayFound)
- {
- $firstDay = $day;
- $firstmonth = $month;
- $firstDayFound = true;
- }
-
- $currentDay = $day;
- $nextDay = $tempdayarray[$arraycounter+1];
- $currentDay++;
- if (($currentDay != $nextDay) || ($tempmontharray[$arraycounter] != $tempmontharray[$arraycounter+1])){
- if ($firstPrint)
- $dayFriendly .= ", ";
- $currentDay--;
- if ($currentDay != $firstDay)
- $dayFriendly .= $monthArray[$firstmonth-1] . " " . $firstDay . " - " . $currentDay ;
- else
- $dayFriendly .= $monthArray[$month-1] . " " . $day;
- $firstDayFound = false;
- $firstPrint = true;
- }
- $arraycounter++;
- }
- }
- else
+ <tr id="fr<?=$i?>"<?=(isset($filterent['disabled']) ? ' class="disabled"' : '')?>>
+ <td>
+ <input type="checkbox" id="frc<?=$i?>" name="rule[]" value="<?=$i?>" />
+ </td>
+ <td>
+ <?php
+ if ($filterent['type'] == "block")
+ $iconfn = "remove";
+ else if ($filterent['type'] == "reject")
+ $iconfn = "fire";
+ else if ($filterent['type'] == "match")
+ $iconfn = "filter";
+ else
+ $iconfn = "ok";
+ ?>
+ <a href="?if=<?=htmlspecialchars($if);?>&amp;act=toggle&amp;id=<?=$i;?>" title="Toggle">
+ <i class="icon icon-<?=$iconfn?>"></i>
+ </a>
+ <?php
+ $isadvset = firewall_check_for_advanced_options($filterent);
+ if($isadvset)
+ print '<i class="icon icon-cog" title="'. gettext("advanced settings set") .': '. $isadvset .'"></i>';
+
+ if (isset($filterent['log'])):
+ print '<i class="icon icon-tasks" title="'. gettext("traffic is logged") .'"></i>';
+ ?>
+
+<?php endif;?>
+ </td>
+ <?php
+ $alias = rule_columns_with_alias(
+ $filterent['source']['address'],
+ pprint_port($filterent['source']['port']),
+ $filterent['destination']['address'],
+ pprint_port($filterent['destination']['port'])
+ );
+
+ //build Schedule popup box
+ $a_schedules = &$config['schedules']['schedule'];
+ $schedule_span_begin = "";
+ $schedule_span_end = "";
+ $sched_caption_escaped = "";
+ $sched_content = "";
+ $schedstatus = false;
+ $dayArray = array (gettext('Mon'),gettext('Tues'),gettext('Wed'),gettext('Thur'),gettext('Fri'),gettext('Sat'),gettext('Sun'));
+ $monthArray = array (gettext('January'),gettext('February'),gettext('March'),gettext('April'),gettext('May'),gettext('June'),gettext('July'),gettext('August'),gettext('September'),gettext('October'),gettext('November'),gettext('December'));
+ if($config['schedules']['schedule'] <> "" and is_array($config['schedules']['schedule'])) {
+ foreach ($a_schedules as $schedule)
+ {
+ if ($schedule['name'] == $filterent['sched'] ){
+ $schedstatus = filter_get_time_based_rule_status($schedule);
+
+ foreach($schedule['timerange'] as $timerange) {
+ $tempFriendlyTime = "";
+ $tempID = "";
+ $firstprint = false;
+ if ($timerange){
+ $dayFriendly = "";
+ $tempFriendlyTime = "";
+
+ //get hours
+ $temptimerange = $timerange['hour'];
+ $temptimeseparator = strrpos($temptimerange, "-");
+
+ $starttime = substr ($temptimerange, 0, $temptimeseparator);
+ $stoptime = substr ($temptimerange, $temptimeseparator+1);
+
+ if ($timerange['month']){
+ $tempmontharray = explode(",", $timerange['month']);
+ $tempdayarray = explode(",",$timerange['day']);
+ $arraycounter = 0;
+ $firstDayFound = false;
+ $firstPrint = false;
+ foreach ($tempmontharray as $monthtmp){
+ $month = $tempmontharray[$arraycounter];
+ $day = $tempdayarray[$arraycounter];
+
+ if (!$firstDayFound)
{
- $tempdayFriendly = $timerange['position'];
+ $firstDay = $day;
+ $firstmonth = $month;
+ $firstDayFound = true;
+ }
+
+ $currentDay = $day;
+ $nextDay = $tempdayarray[$arraycounter+1];
+ $currentDay++;
+ if (($currentDay != $nextDay) || ($tempmontharray[$arraycounter] != $tempmontharray[$arraycounter+1])){
+ if ($firstPrint)
+ $dayFriendly .= ", ";
+ $currentDay--;
+ if ($currentDay != $firstDay)
+ $dayFriendly .= $monthArray[$firstmonth-1] . " " . $firstDay . " - " . $currentDay ;
+ else
+ $dayFriendly .= $monthArray[$month-1] . " " . $day;
$firstDayFound = false;
- $tempFriendlyDayArray = explode(",", $tempdayFriendly);
- $currentDay = "";
- $firstDay = "";
- $nextDay = "";
- $counter = 0;
- foreach ($tempFriendlyDayArray as $day){
- if ($day != ""){
- if (!$firstDayFound)
- {
- $firstDay = $tempFriendlyDayArray[$counter];
- $firstDayFound = true;
- }
- $currentDay =$tempFriendlyDayArray[$counter];
- //get next day
- $nextDay = $tempFriendlyDayArray[$counter+1];
- $currentDay++;
- if ($currentDay != $nextDay){
- if ($firstprint)
- $dayFriendly .= ", ";
- $currentDay--;
- if ($currentDay != $firstDay)
- $dayFriendly .= $dayArray[$firstDay-1] . " - " . $dayArray[$currentDay-1];
- else
- $dayFriendly .= $dayArray[$firstDay-1];
- $firstDayFound = false;
- $firstprint = true;
- }
- $counter++;
- }
+ $firstPrint = true;
+ }
+ $arraycounter++;
+ }
+ }
+ else
+ {
+ $tempdayFriendly = $timerange['position'];
+ $firstDayFound = false;
+ $tempFriendlyDayArray = explode(",", $tempdayFriendly);
+ $currentDay = "";
+ $firstDay = "";
+ $nextDay = "";
+ $counter = 0;
+ foreach ($tempFriendlyDayArray as $day){
+ if ($day != ""){
+ if (!$firstDayFound)
+ {
+ $firstDay = $tempFriendlyDayArray[$counter];
+ $firstDayFound = true;
}
+ $currentDay =$tempFriendlyDayArray[$counter];
+ //get next day
+ $nextDay = $tempFriendlyDayArray[$counter+1];
+ $currentDay++;
+ if ($currentDay != $nextDay){
+ if ($firstprint)
+ $dayFriendly .= ", ";
+ $currentDay--;
+ if ($currentDay != $firstDay)
+ $dayFriendly .= $dayArray[$firstDay-1] . " - " . $dayArray[$currentDay-1];
+ else
+ $dayFriendly .= $dayArray[$firstDay-1];
+ $firstDayFound = false;
+ $firstprint = true;
+ }
+ $counter++;
}
- $timeFriendly = $starttime . " - " . $stoptime;
- $description = $timerange['rangedescr'];
- $sched_content .= $dayFriendly . "; " . $timeFriendly . "<br />";
}
}
- $sched_caption_escaped = str_replace("'", "\'", $schedule['descr']);
- $schedule_span_begin = "<span style=\"cursor: help;\" onmouseover=\"domTT_activate(this, event, 'content', '<h1>{$sched_caption_escaped}</h1><p>{$sched_content}</p>', 'trail', true, 'delay', 0, 'fade', 'both', 'fadeMax', 93, 'styleClass', 'niceTitle');\" onmouseout=\"this.style.color = ''; domTT_mouseout(this, event);\"><u>";
- $schedule_span_end = "</u></span>";
- }
- }
- }
- $printicon = false;
- $alttext = "";
- $image = "";
- if (!isset($filterent['disabled'])) {
- if ($schedstatus) {
- if ($iconfn == "block" || $iconfn == "reject") {
- $image = "icon_block";
- $alttext = gettext("Traffic matching this rule is currently being denied");
- } else {
- $image = "icon_pass";
- $alttext = gettext("Traffic matching this rule is currently being allowed");
+ $timeFriendly = $starttime . " - " . $stoptime;
+ $description = $timerange['rangedescr'];
+ $sched_content .= $dayFriendly . "; " . $timeFriendly . "<br />";
}
- $printicon = true;
- } else if ($filterent['sched']) {
- if ($iconfn == "block" || $iconfn == "reject")
- $image = "icon_block_d";
- else
- $image = "icon_block";
- $alttext = gettext("This rule is not currently active because its period has expired");
- $printicon = true;
}
+ $sched_caption_escaped = str_replace("'", "\'", $schedule['descr']);
+ $schedule_span_begin = "<span style=\"cursor: help;\" onmouseover=\"domTT_activate(this, event, 'content', '<h1>{$sched_caption_escaped}</h1><p>{$sched_content}</p>', 'trail', true, 'delay', 0, 'fade', 'both', 'fadeMax', 93, 'styleClass', 'niceTitle');\" onmouseout=\"this.style.color = ''; domTT_mouseout(this, event);\"><u>";
+ $schedule_span_end = "</u></span>";
}
- ?>
- <td class="listlr" onclick="fr_toggle(<?=$nrules;?>)" id="frd<?=$nrules;?>" ondblclick="document.location='firewall_rules_edit.php?id=<?=$i;?>';">
- <?=$textss;?><?php if (isset($filterent['id'])) echo $filterent['id']."&nbsp;"; else echo "&nbsp;"; ?><?=$textse;?>
- </td>
- <?php
- pfSense_handle_custom_code("/usr/local/pkg/firewall_rules/pre_id_tr");
- ?>
- <td class="listr" onclick="fr_toggle(<?=$nrules;?>)" id="frd<?=$nrules;?>" ondblclick="document.location='firewall_rules_edit.php?id=<?=$i;?>';">
- <?=$textss;?>
- <?php
- if (isset($filterent['ipprotocol'])) {
- switch($filterent['ipprotocol']) {
- case "inet":
- echo "IPv4 ";
- break;
- case "inet6":
- echo "IPv6 ";
- break;
- case "inet46":
- echo "IPv4+6 ";
- break;
- }
+ }
+ }
+ $printicon = false;
+ $alttext = "";
+ $image = "";
+ if (!isset($filterent['disabled'])) {
+ if ($schedstatus) {
+ if ($iconfn == "block" || $iconfn == "reject") {
+ $image = "icon_block";
+ $alttext = gettext("Traffic matching this rule is currently being denied");
} else {
- echo "IPv4 ";
+ $image = "icon_pass";
+ $alttext = gettext("Traffic matching this rule is currently being allowed");
}
- if (isset($filterent['protocol'])) {
- echo strtoupper($filterent['protocol']);
- if (strtoupper($filterent['protocol']) == "ICMP" && !empty($filterent['icmptype'])) {
- echo ' <span style="cursor: help;" title="ICMP type: ' .
- ( $filterent['ipprotocol'] == "inet6" ? $icmp6types[$filterent['icmptype']] : $icmptypes[$filterent['icmptype']] ) .
- '"><u>';
- echo $filterent['icmptype'];
- echo '</u></span>';
- }
- } else echo "*";
- ?>
- <?=$textse;?>
- </td>
- <td class="listr" onclick="fr_toggle(<?=$nrules;?>)" id="frd<?=$nrules;?>" ondblclick="document.location='firewall_rules_edit.php?id=<?=$i;?>';">
- <?=$textss;?><?php echo $alias_src_span_begin;?><?php echo htmlspecialchars(pprint_address($filterent['source']));?><?php echo $alias_src_span_end;?><?=$textse;?>
- </td>
- <td class="listr" onclick="fr_toggle(<?=$nrules;?>)" id="frd<?=$nrules;?>" ondblclick="document.location='firewall_rules_edit.php?id=<?=$i;?>';">
- <?=$textss;?><?php echo $alias_src_port_span_begin;?><?php echo htmlspecialchars(pprint_port($filterent['source']['port'])); ?><?php echo $alias_src_port_span_end;?><?=$textse;?>
- </td>
- <td class="listr" onclick="fr_toggle(<?=$nrules;?>)" id="frd<?=$nrules;?>" ondblclick="document.location='firewall_rules_edit.php?id=<?=$i;?>';">
- <?=$textss;?><?php echo $alias_dst_span_begin;?><?php echo htmlspecialchars(pprint_address($filterent['destination'])); ?><?php echo $alias_dst_span_end;?><?=$textse;?>
- </td>
- <td class="listr" onclick="fr_toggle(<?=$nrules;?>)" id="frd<?=$nrules;?>" ondblclick="document.location='firewall_rules_edit.php?id=<?=$i;?>';">
- <?=$textss;?><?php echo $alias_dst_port_span_begin;?><?php echo htmlspecialchars(pprint_port($filterent['destination']['port'])); ?><?php echo $alias_dst_port_span_end;?><?=$textse;?>
- </td>
- <td class="listr" onclick="fr_toggle(<?=$nrules;?>)" id="frd<?=$nrules;?>" ondblclick="document.location='firewall_rules_edit.php?id=<?=$i;?>';">
- <?=$textss;?><?php if (isset($config['interfaces'][$filterent['gateway']]['descr'])) echo htmlspecialchars($config['interfaces'][$filterent['gateway']]['descr']); else echo htmlspecialchars(pprint_port($filterent['gateway'])); ?><?=$textse;?>
- </td>
- <td class="listr" onclick="fr_toggle(<?=$nrules;?>)" id="frd<?=$nrules;?>" ondblclick="document.location='firewall_rules_edit.php?id=<?=$i;?>';">
- <?=$textss;?>
- <?php
- if (isset($filterent['ackqueue']) && isset($filterent['defaultqueue'])) {
- $desc = $filterent['ackqueue'] ;
- echo "<a href=\"firewall_shaper_queues.php?queue={$filterent['ackqueue']}&amp;action=show\">{$desc}</a>";
- $desc = $filterent['defaultqueue'];
- echo "/<a href=\"firewall_shaper_queues.php?queue={$filterent['defaultqueue']}&amp;action=show\">{$desc}</a>";
- } else if (isset($filterent['defaultqueue'])) {
- $desc = $filterent['defaultqueue'];
- echo "<a href=\"firewall_shaper_queues.php?queue={$filterent['defaultqueue']}&amp;action=show\">{$desc}</a>";
- } else
- echo gettext("none");
- ?>
- <?=$textse;?>
- </td>
- <td class="listr" onclick="fr_toggle(<?=$nrules;?>)" id="frd<?=$nrules;?>" ondblclick="document.location='firewall_rules_edit.php?id=<?=$i;?>';"><font color="black">
- <?php if ($printicon) { ?><img src="./themes/<?= $g['theme']; ?>/images/icons/<?php echo $image; ?>.gif" title="<?php echo $alttext;?>" border="0" alt="icon" /><?php } ?><?=$textss;?><?php echo $schedule_span_begin;?><?=htmlspecialchars($filterent['sched']);?>&nbsp;<?php echo $schedule_span_end; ?><?=$textse;?>
- </font></td>
- <?php
- pfSense_handle_custom_code("/usr/local/pkg/firewall_rules/pre_descr_tr");
- ?>
- <td class="listbg descr" onclick="fr_toggle(<?=$nrules;?>)" ondblclick="document.location='firewall_rules_edit.php?id=<?=$i;?>';">
- <?=$textss;?><?=htmlspecialchars($filterent['descr']);?>&nbsp;<?=$textse;?>
- </td>
- <td valign="middle" class="list nowrap">
- <table border="0" cellspacing="0" cellpadding="1" summary="move before">
- <tr>
- <td><input name="move_<?=$i;?>" type="image" src="./themes/<?= $g['theme']; ?>/images/icons/icon_left.gif" style="width:17;height:17" title="<?=gettext("move selected rules before this rule"); ?>" onmouseover="fr_insline(<?=$nrules;?>, true)" onmouseout="fr_insline(<?=$nrules;?>, false)" /></td>
- <td><a href="firewall_rules_edit.php?id=<?=$i;?>"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_e.gif" title="<?=gettext("edit rule"); ?>" width="17" height="17" border="0" alt="edit" /></a></td>
- </tr>
- <tr>
- <td align="center" valign="middle"><a href="firewall_rules.php?act=del&amp;if=<?=htmlspecialchars($if);?>&amp;id=<?=$i;?>"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_x.gif" width="17" height="17" border="0" title="<?=gettext("delete rule"); ?>" onclick="return confirm('Do you really want to delete this rule?')" alt="delete" /></a></td>
- <td><a href="firewall_rules_edit.php?dup=<?=$i;?>"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_plus.gif" title="<?=gettext("add a new rule based on this one"); ?>" width="17" height="17" border="0" alt="add" /></a></td>
- </tr>
- </table>
- </td>
- </tr>
- <?php $nrules++; endfor; ?>
- <tr><td></td></tr></tbody>
-<?php if ($nrules == 0): ?>
- <tr>
- <td class="listt"></td>
- <td class="listt"></td>
- <td class="listlr" colspan="10" align="center" valign="middle">
- <span class="gray">
- <?php if ($_REQUEST['if'] == "FloatingRules"): ?>
- <?=gettext("No floating rules are currently defined."); ?><br /><br />
- <?php else: ?>
- <?=gettext("No rules are currently defined for this interface"); ?><br />
- <?=gettext("All incoming connections on this interface will be blocked until you add pass rules."); ?><br /><br />
- <?php endif; ?>
- <?=gettext("Click the"); ?> <a href="firewall_rules_edit.php?if=<?=htmlspecialchars($if);?>"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_plus.gif" title="<?=gettext("add new rule");?>" border="0" width="17" height="17" align="middle" alt="add" /></a><?=gettext(" button to add a new rule.");?></span>
- </td>
- </tr>
-<?php endif; ?>
- <tr id="fr<?=$nrules;?>">
- <td class="list"></td>
- <td class="list"></td>
- <?php
- pfSense_handle_custom_code("/usr/local/pkg/firewall_rules/pre_id_tr_belowtable");
- ?>
- <td class="list">&nbsp;</td>
- <td class="list">&nbsp;</td>
- <td class="list">&nbsp;</td>
- <td class="list">&nbsp;</td>
- <td class="list">&nbsp;</td>
- <td class="list">&nbsp;</td>
- <td class="list">&nbsp;</td>
- <td class="list">&nbsp;</td>
- <td class="list">&nbsp;</td>
- <td class="list">&nbsp;</td>
- <td class="list">
- <table border="0" cellspacing="0" cellpadding="1" summary="move rules">
- <tr>
- <td>
- <?php if ($nrules == 0): ?><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_left_d.gif" width="17" height="17" title="<?=gettext("move selected rules to end");?>" border="0" alt="move" /><?php else: ?><input name="move_<?=$i;?>" type="image" src="./themes/<?= $g['theme']; ?>/images/icons/icon_left.gif" style="width:17;height:17" title="<?=gettext("move selected rules to end");?>" onmouseover="fr_insline(<?=$nrules;?>, true)" onmouseout="fr_insline(<?=$nrules;?>, false)" /><?php endif; ?></td>
- <td></td>
- </tr>
- <tr>
- <td>
-<?php if ($nrules == 0): ?>
- <img src="./themes/<?= $g['theme']; ?>/images/icons/icon_x_d.gif" width="17" height="17" title="<?=gettext("delete selected rules");?>" border="0" alt="delete" /><?php else: ?>
- <input name="del" type="image" src="./themes/<?= $g['theme']; ?>/images/icons/icon_x.gif" style="width:17;height:17" title="<?=gettext("delete selected rules");?>" onclick="return confirm('<?=gettext('Do you really want to delete the selected rules?');?>')" />
-<?php endif; ?>
- </td>
- <td><a href="firewall_rules_edit.php?if=<?=htmlspecialchars($if);?>"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_plus.gif" title="<?=gettext("add new rule");?>" width="17" height="17" border="0" alt="add" /></a></td>
- </tr>
- </table>
- </td>
- </tr>
- </table>
- <table class="tabcont" width="100%" border="0" cellspacing="0" cellpadding="0" summary="icons">
- <tr>
- <td width="16"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_pass.gif" width="11" height="11" alt="pass" /></td>
- <td width="100"><?=gettext("pass");?></td>
- <td width="14"></td>
- <td width="16"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_match.gif" width="11" height="11" alt="match" /></td>
- <td width="100"><?=gettext("match");?></td>
- <td width="14"></td>
- <td width="16"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_block.gif" width="11" height="11" alt="block" /></td>
- <td width="100"><?=gettext("block");?></td>
- <td width="14"></td>
- <td width="16"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_reject.gif" width="11" height="11" alt="reject" /></td>
- <td width="100"><?=gettext("reject");?></td>
- <td width="14"></td>
- <td width="16"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_log.gif" width="11" height="11" alt="log" /></td>
- <td width="100"><?=gettext("log");?></td>
- </tr>
- <tr>
- <td><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_pass_d.gif" width="11" height="11" alt="pass disabled" /></td>
- <td class="nowrap"><?=gettext("pass (disabled)");?></td>
- <td>&nbsp;</td>
- <td><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_match_d.gif" width="11" height="11" alt="match disabled" /></td>
- <td class="nowrap"><?=gettext("match (disabled)");?></td>
- <td>&nbsp;</td>
- <td><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_block_d.gif" width="11" height="11" alt="block disabled" /></td>
- <td class="nowrap"><?=gettext("block (disabled)");?></td>
- <td>&nbsp;</td>
- <td><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_reject_d.gif" width="11" height="11" alt="reject disabled" /></td>
- <td class="nowrap"><?=gettext("reject (disabled)");?></td>
- <td>&nbsp;</td>
- <td width="16"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_log_d.gif" width="11" height="11" alt="log disabled" /></td>
- <td class="nowrap"><?=gettext("log (disabled)");?></td>
- </tr>
- <tr>
- <td colspan="10">
- <p>&nbsp;</p>
- <strong>
- <span class="red"><?=gettext("Hint:");?></span>
- </strong><br />
- <ul>
- <?php if ("FloatingRules" != $if): ?>
- <li><?=gettext("Rules are evaluated on a first-match basis (i.e. " .
- "the action of the first rule to match a packet will be executed). " .
- "This means that if you use block rules, you'll have to pay attention " .
- "to the rule order. Everything that isn't explicitly passed is blocked " .
- "by default. ");?>
- </li>
- <?php else: ?>
- <li><?=gettext("Floating rules are evaluated on a first-match basis (i.e. " .
- "the action of the first rule to match a packet will be executed) only " .
- "if the 'quick' option is checked on a rule. Otherwise they will only apply if no " .
- "other rules match. Pay close attention to the rule order and options " .
- "chosen. If no rule here matches, the per-interface or default rules are used. ");?>
- </li>
- <?php endif; ?>
- </ul>
- </td>
- </tr>
- </table>
- </div>
+ $printicon = true;
+ } else if ($filterent['sched']) {
+ if ($iconfn == "block" || $iconfn == "reject")
+ $image = "icon_block_d";
+ else
+ $image = "icon_block";
+ $alttext = gettext("This rule is not currently active because its period has expired");
+ $printicon = true;
+ }
+ }
+ ?>
+ <td><?=$filterent['id']?></td>
+ <?php
+ pfSense_handle_custom_code("/usr/local/pkg/firewall_rules/pre_id_tr");
+ ?>
+ <td>
+ <?php
+ if (isset($filterent['ipprotocol'])) {
+ switch($filterent['ipprotocol']) {
+ case "inet":
+ echo "IPv4 ";
+ break;
+ case "inet6":
+ echo "IPv6 ";
+ break;
+ case "inet46":
+ echo "IPv4+6 ";
+ break;
+ }
+ } else {
+ echo "IPv4 ";
+ }
+
+ if (isset($filterent['protocol'])) {
+ echo strtoupper($filterent['protocol']);
+
+ if (strtoupper($filterent['protocol']) == "ICMP" && !empty($filterent['icmptype'])) {
+ echo ' <span style="cursor: help;" title="ICMP type: ' .
+ ( $filterent['ipprotocol'] == "inet6" ? $icmp6types[$filterent['icmptype']] : $icmptypes[$filterent['icmptype']] ) .
+ '"><u>';
+ echo $filterent['icmptype'];
+ echo '</u></span>';
+ }
+ } else echo "*";
+ ?>
+ </td>
+ <td>
+ <?php if (isset($alias['src'])): ?>
+ <a href="/firewall_aliases_edit.php?id=<?=$alias['src']?>" data-toggle="popover" data-trigger="hover focus" title="Alias details" data-content="<?=alias_info_popup($alias['src'])?>" data-html="true">
+ <?php endif; ?>
+ <?=htmlspecialchars(pprint_address($filterent['source']))?>
+ <?php if (isset($alias['src'])): ?>
+ <i class='icon icon-pencil'></i></a>
+ <?php endif; ?>
+ </td>
+ <td>
+ <?php if (isset($alias['srcport'])): ?>
+ <a href="/firewall_aliases_edit.php?id=<?=$alias['srcport']?>" data-toggle="popover" data-trigger="hover focus" title="Alias details" data-content="<?=alias_info_popup($alias['srcport'])?>" data-html="true">
+ <?php endif; ?>
+ <?=htmlspecialchars(pprint_port($filterent['source']['port']))?>
+ <?php if (isset($alias['srcport'])): ?>
+ <i class='icon icon-pencil'></i></a>
+ <?php endif; ?>
+ </td>
+ <td>
+ <?php if (isset($alias['dst'])): ?>
+ <a href="/firewall_aliases_edit.php?id=<?=$alias['dst']?>" data-toggle="popover" data-trigger="hover focus" title="Alias details" data-content="<?=alias_info_popup($alias['dstport'])?>" data-html="true">
+ <?php endif; ?>
+ <?=htmlspecialchars(pprint_address($filterent['destination']['address']))?>
+ <?php if (isset($alias['dst'])): ?>
+ <i class='icon icon-pencil'></i></a>
+ <?php endif; ?>
+ </td>
+ <td>
+ <?php if (isset($alias['dstport'])): ?>
+ <a href="/firewall_aliases_edit.php?id=<?=$alias['dstport']?>" data-toggle="popover" data-trigger="hover focus" title="Alias details" data-content="<?=alias_info_popup($alias['dstport'])?>" data-html="true">
+ <?php endif; ?>
+ <?=htmlspecialchars(pprint_port($filterent['destination']['port']))?>
+ <?php if (isset($alias['dstport'])): ?>
+ <i class='icon icon-pencil'></i></a>
+ <?php endif; ?>
+ </td>
+ <td>
+ <?php if (isset($config['interfaces'][$filterent['gateway']]['descr'])):?>
+ <?=htmlspecialchars($config['interfaces'][$filterent['gateway']]['descr'])?>
+ <?php else: ?>
+ <?=htmlspecialchars(pprint_port($filterent['gateway']))?><a>
+ <?php endif; ?>
+ </td>
+ <td>
+ <?php
+ if (isset($filterent['ackqueue']) && isset($filterent['defaultqueue'])) {
+ $desc = $filterent['ackqueue'] ;
+ echo "<a href=\"firewall_shaper_queues.php?queue={$filterent['ackqueue']}&amp;action=show\">{$desc}</a>";
+ $desc = $filterent['defaultqueue'];
+ echo "/<a href=\"firewall_shaper_queues.php?queue={$filterent['defaultqueue']}&amp;action=show\">{$desc}</a>";
+ } else if (isset($filterent['defaultqueue'])) {
+ $desc = $filterent['defaultqueue'];
+ echo "<a href=\"firewall_shaper_queues.php?queue={$filterent['defaultqueue']}&amp;action=show\">{$desc}</a>";
+ } else
+ echo gettext("none");
+ ?>
+ </td>
+ <td>
+ <?php if ($printicon) { ?><img src="./themes/<?= $g['theme'];?>/images/icons/<?=$image;?>.gif" title="<?=$alttext;?>" border="0" alt="icon" /><?php } ?>
+ <?=$schedule_span_begin;?><?=htmlspecialchars($filterent['sched']);?>&nbsp;<?=$schedule_span_end;?>
+ </td>
+ <?php
+ pfSense_handle_custom_code("/usr/local/pkg/firewall_rules/pre_descr_tr");
+ ?>
+ <td>
+ <?=htmlspecialchars($filterent['descr']);?>
+ </td>
+ <td>
+ <a href="#" title="<?=gettext("move selected rules before this rule");?>"><i class="icon icon-chevron-down"></i></a>
+ <a href="firewall_rules_edit.php?id=<?=$i;?>" title="<?=gettext("edit rule");?>"><i class="icon icon-pencil"></i></a>
+ <a href="firewall_rules_edit.php?dup=<?=$i;?>" title="<?=gettext("copy this rule");?>"><i class="icon icon-random"></i></a>
+ <a href="firewall_rules.php?act=del&amp;if=<?=htmlspecialchars($if);?>&amp;id=<?=$i;?>"><i class="icon icon-delete"></i></a>
</td>
</tr>
+ <?php endfor;?>
+</tbody>
</table>
-<input type="hidden" name="if" value="<?=htmlspecialchars($if);?>" />
-<script type="text/javascript">
-//<![CDATA[
- var number_of_rules = <?=$nrules?>;
- <?php $nrules = 0; for ($i = 0; isset($a_filter[$i]); $i++): ?>
- /*
- Sortable.create("dragtable", {
- tag:"tr",
- format:"fr([0-9999999])",
- containment:["dragtable"],
- onChange:function(affected) {
- document.body.style.cursor = 'move';
- },
- onUpdate:function(container) {
- document.body.style.cursor = 'move';
- updateOrder(Sortable.serialize('dragtable', 'tr'));
- }
- });
- */
- <?php endfor; ?>
- function updateOrder(order) {
- if(document.getElementById("redboxtable"))
- jQuery('#redboxtable').hide();
- jQuery('#loading').show();
- document.body.style.cursor = 'wait';
- document.location = 'firewall_rules.php?if=<?=htmlspecialchars($if);?>&dragdroporder=true&' + Sortable.serialize('dragtable', 'tr');
- return;
- }
- jQuery('#loading').hide();
-//]]>
-</script>
+
+<?php if ($nrules == 0): ?>
+ <div class="alert alert-warning" role="alert">
+ <?php if ($_REQUEST['if'] == "FloatingRules"): ?>
+ <?=gettext("No floating rules are currently defined.");?>
+ <?php else: ?>
+ <?=gettext("No rules are currently defined for this interface");?><br />
+ <?=gettext("All incoming connections on this interface will be blocked until you add pass rules.");?>
+ <?php endif;?>
+ </p>
+ <?=gettext("Click the button to add a new rule.");?></span>
+ </div>
+<?php endif;?>
+</tbody>
+</table>
+
+<a href="firewall_rules_edit.php?if=<?=htmlspecialchars($if);?>" role="button" class="btn btn-success">
+ <?=gettext("add new rule");?>
+</a>
+<?php if ($i > 0): ?>
+ <a href="#" role="button" class="btn btn-info">
+ <?=gettext("move selected rules to end");?>
+ </a>
+ <a href="#" role="button" class="btn btn-danger">
+ <?=gettext("delete selected rules");?>
+ </a>
+ <!-- onclick="return confirm('<?=gettext('Do you really want to delete the selected rules?');?>')" />-->
+<?php endif;?>
+
+<h2>Legend</h2>
+<ul>
+ <li><i class="icon icon-ok"></i> <?=gettext("pass");?></li>
+ <li><i class="icon icon-filter"></i> <?=gettext("match");?></li>
+ <li><i class="icon icon-remove"></i> <?=gettext("block");?></li>
+ <li><i class="icon icon-fire"></i> <?=gettext("reject");?></li>
+ <li><i class="icon icon-tasks"></i> <?=gettext("log");?></li>
+ <li><i class="icon icon-cog"></i> <?=gettext("advanced filter");?></li>
+</ul>
+
+<p>
+<?php if ("FloatingRules" != $if): ?>
+<?=gettext("Rules are evaluated on a first-match basis (i.e. " .
+ "the action of the first rule to match a packet will be executed). " .
+ "This means that if you use block rules, you'll have to pay attention " .
+ "to the rule order. Everything that isn't explicitly passed is blocked " .
+ "by default. ");?>
+<?php else: ?>
+<?=gettext("Floating rules are evaluated on a first-match basis (i.e. " .
+ "the action of the first rule to match a packet will be executed) only " .
+ "if the 'quick' option is checked on a rule. Otherwise they will only apply if no " .
+ "other rules match. Pay close attention to the rule order and options " .
+ "chosen. If no rule here matches, the per-interface or default rules are used. ");?>
+<?php endif;?>
+</p>
+ <input type="hidden" name="if" value="<?=htmlspecialchars($if);?>" />
</form>
-<?php include("fend.inc"); ?>
+<?php include("fend.inc");?>
</body>
-</html>
+</html> \ No newline at end of file
OpenPOWER on IntegriCloud