Project

General

Profile

« Previous | Next » 

Revision 3b2c83b8

Added by Sjon Hortensius over 10 years ago

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

View differences:

usr/local/www/guiconfig.inc
1003 1003

  
1004 1004
function alias_info_popup($alias_id){
1005 1005
	global $config;
1006

  
1007
	if (!is_array($config['aliases']['alias'][$alias_id]))
1008
		return;
1009

  
1006 1010
	$maxlength = 60;
1007
	$close_title="title='".gettext('move mouse out this alias to hide')."'";
1008
	if (is_array($config['aliases']['alias'][$alias_id])){
1009
		$alias_name=$config['aliases']['alias'][$alias_id];
1010
		$alias_objects_with_details = "<table width=\"100%\" border=\"0\" cellpadding=\"2\" cellspacing=\"0\" summary=\"alias info popup\">";
1011
		if ($alias_name['url']) {
1012
			// TODO: Change it when pf supports tables with ports
1013
			if ($alias_name['type'] == "urltable") {
1014
				exec("/sbin/pfctl -t {$alias_name['name']} -T show | wc -l", $total_entries);
1015
				$counter=preg_replace("/\D/","",$total_entries[0]);
1016
				exec("/sbin/pfctl -t {$alias_name['name']} -T show | head -10002", $alias_addresses);
1017
			} else {
1018
				$urlfn = alias_expand_urltable($alias_name['name']);
1019
				$alias_addresses = explode("\n", file_get_contents($urlfn));
1020
				$counter = count($alias_addresses);
1021
			}
1022
			$alias_objects_with_details .= "<tr><td colspan=\"3\" $close_title class=\"vncell\">{$alias_name['url']}</td></tr>";
1023
			$x=0;
1024
			foreach ($alias_addresses as $alias_ports_address ) {
1025
				switch ($x) {
1026
				case 0:
1027
					$x++;
1028
					$alias_objects_with_details .= "<tr><td $close_title class=\"vncell\" width=\"33%\" style=\"background: #FFFFFF;color: #000000;\">{$alias_ports_address}</td>";
1029
					break;
1030
				case 1:
1031
					$x++;
1032
					$alias_objects_with_details .= "<td $close_title class=\"vncell\" width=\"33%\" style=\"background: #FFFFFF;color: #000000;\">{$alias_ports_address}</td>";
1033
					break;
1034
				default:
1035
					$x=0;
1036
					$alias_objects_with_details .= "<td  $close_title class=\"vncell\" width=\"33%\" style=\"background: #FFFFFF;color: #000000;\">{$alias_ports_address}</td><tr>";
1037
					break;
1038
				}
1039
			}
1040
			for ($y = $x; $y <= $x; $y++) {
1041
				$alias_objects_with_details .= "<td $close_title class=\"vncell\" width=\"33%\">&nbsp;</td>";
1042
			}
1043
			if ($x > 0) {
1044
				$alias_objects_with_details .= "</tr>";
1045
			}
1046
			if ($counter > 10002) {
1047
				$alias_objects_with_details .= "<tr><td colspan=\"3\"> ". gettext("listing only first 10k items") . "</td><tr>";
1048
			}
1049
		}
1050
		else{
1051
			$alias_addresses = explode (" ", $alias_name['address']);
1052
			$alias_details = explode ("||", $alias_name['detail']);
1053
			$counter = 0;
1054
			foreach ($alias_addresses as $alias_ports_address) {
1055
				$alias_objects_with_details .= "<tr><td $close_title width=\"5%\" class=\"vncell\" style=\"background: #FFFFFF;color: #000000;\">{$alias_addresses[$counter]}</td>";
1056
				$alias_detail_default = strpos ($alias_details[$counter],"Entry added");
1057
				if ($alias_details[$counter] != "" && $alias_detail_default === False)
1058
					$alias_objects_with_details .="<td $close_title width=\"95%\" class=\"vncell\" style=\"background: #FFFFFF;color: #000000;\">{$alias_details[$counter]}</td>";
1059
				else
1060
					$alias_objects_with_details .="<td $close_title width=\"95%\" class=\"vncell\" style=\"background: #FFFFFF;color: #000000;\">&nbsp;</td>";
1061
				$alias_objects_with_details .= "</tr>";
1062
				$counter++;
1063
			}
1011
	$alias = $config['aliases']['alias'][$alias_id];
1012
	$content = "";
1013

  
1014
	if ($alias['url'])
1015
	{
1016
		// TODO: Change it when pf supports tables with ports
1017
		if ($alias['type'] == "urltable") {
1018
			exec("/sbin/pfctl -t {$alias['name']} -T show | wc -l", $total_entries);
1019
			$counter=preg_replace("/\D/","",$total_entries[0]);
1020
			exec("/sbin/pfctl -t {$alias['name']} -T show | head -10002", $alias_addresses);
1021
		} else {
1022
			$urlfn = alias_expand_urltable($alias['name']);
1023
			$alias_addresses = explode("\n", file_get_contents($urlfn));
1024
			$counter = count($alias_addresses);
1064 1025
		}
1065
		$alias_objects_with_details .= "</table>";
1026

  
1027
		$content .= '<h5>'. $alias['url'] .'</h5><ul><li>'. implode('</li><li>', $alias_ports_address) .'</li></ul>';
1028

  
1029
		if ($counter > 10002)
1030
			$content .= '<i>'. gettext("listing only first 10k items") .'</i>';
1066 1031
	}
1067
	$alias_descr_substr = $alias_name['descr'];
1068
	if ($strlength >= $maxlength)
1069
		$alias_descr_substr = substr($alias_descr_substr, 0, $maxlength) . "...";
1070
	$item_text = ($counter > 1 ? "items" : "item");
1071
	$alias_caption = "{$alias_descr_substr} - {$counter} {$item_text}<a href=\"/firewall_aliases_edit.php?id={$alias_id}\" title=\"".gettext('edit this alias')."\">&nbsp;&nbsp;edit </a>";
1072
	$strlength = strlen ($alias_caption);
1073
	print "<h1>{$alias_caption}</h1>" . $alias_objects_with_details;
1032
	else
1033
	{
1034
		$alias_addresses = explode (" ", $alias['address']);
1035
		$alias_details = explode ("||", $alias['detail']);
1036

  
1037
		$content .= '<ul><li>'. implode('</li><li>', $alias_addresses) .'</li></ul>';
1038
	}
1039

  
1040
	if (strlen($alias['descr']) >= $maxlength)
1041
		$alias['descr'] = substr($alias['descr'], 0, $maxlength) . '&hellip;';
1042

  
1043
	return $content;
1074 1044
}
1075 1045

  
1076
function rule_popup($src,$srcport,$dst,$dstport){
1077
	global $config,$g;
1078
	$aliases_array = array();
1079
	if ($config['aliases']['alias'] <> "" and is_array($config['aliases']['alias'])) {
1080
		$descriptions = array ();
1081
		foreach ($config['aliases']['alias'] as $alias_id=>$alias_name){
1082
			$loading_image="<a><img src=\'/themes/{$g['theme']}/images/misc/loader.gif\' alt=\'loader\' /> " .gettext("loading...")."</a>";
1083
			switch ($alias_name['type']){
1084
			case "port":
1085
				$width="250";
1086
				break;
1087
			case "urltable":
1088
				$width="500";
1089
				break;
1090
			default:
1091
				$width="350";
1092
				break;
1093
			}
1094
			$span_begin = "<span style=\"cursor: help;\" onmouseover=\"var response_html=domTT_activate(this, event, 'id','ttalias_{$alias_id}','content','{$loading_image}', 'trail', true, 'delay', 300, 'fade', 'both', 'fadeMax', 93, 'styleClass', 'niceTitle','type','velcro','width',{$width});alias_popup('{$alias_id}','{$g['theme']}','".gettext('loading...')."');\" onmouseout=\"this.style.color = ''; domTT_mouseout(this, event);\"><u>";
1095
			$span_end = "</u></span>";
1096
			if ($alias_name['name'] == $src) {
1097
				$descriptions['src'] = $span_begin;
1098
				$descriptions['src_end'] = $span_end;
1099
			}
1100
			if ($alias_name['name'] == $srcport) {
1101
				$descriptions['srcport'] = $span_begin;
1102
				$descriptions['srcport_end'] = $span_end;
1103
			}
1104
			if ($alias_name['name'] == $dst ) {
1105
				$descriptions['dst'] = $span_begin;
1106
				$descriptions['dst_end'] = $span_end;
1107
			}
1108
			if ($alias_name['name'] == $dstport) {
1109
				$descriptions['dstport'] = $span_begin;
1110
				$descriptions['dstport_end'] = $span_end;
1111
			}
1112
		}
1113
		return $descriptions;
1046
function rule_columns_with_alias($src, $srcport, $dst, $dstport){
1047
	global $config;
1048

  
1049
	if ($config['aliases']['alias'] == "" || !is_array($config['aliases']['alias']))
1050
		return;
1051

  
1052
	$columns = array();
1053
	foreach ($config['aliases']['alias'] as $alias_id => $alias_name){
1054
		if ($alias_name['name'] == $src)
1055
			$columns['src'] = $alias_id;
1056
		elseif ($alias_name['name'] == $srcport)
1057
			$columns['srcport'] = $alias_id;
1058
		elseif ($alias_name['name'] == $dst )
1059
			$columns['dst'] = $alias_id;
1060
		elseif ($alias_name['name'] == $dstport)
1061
			$columns['dstport'] = $alias_id;
1062

  
1063
		return $columns;
1114 1064
	}
1115 1065
}
1116 1066

  

Also available in: Unified diff