]> git.ipfire.org Git - people/ms/ipfire-2.x.git/commitdiff
Forward Firewall: Last rule in servicegroup is not deletable if group is used
authorAlexander Marx <amarx@ipfire.org>
Fri, 15 Feb 2013 07:15:51 +0000 (08:15 +0100)
committerMichael Tremer <michael.tremer@ipfire.org>
Fri, 9 Aug 2013 12:08:19 +0000 (14:08 +0200)
html/cgi-bin/fwhosts.cgi

index c1229b3636075ba9bf93b6b09ad82ac34ef06cd7..6db70463d941124853448f386568d30269c33d8b 100755 (executable)
@@ -1451,10 +1451,9 @@ sub viewtablegrp
                                        {
                                                $delflag++;
                                        }
-                                       #if($delflag > 0){
-                                               #last;
-                                       #}
-                                       
+                                       if($delflag > 1){
+                                               last;
+                                       }
                                }
                                $number=1;
                                if ($customgrp{$key}[2] eq "none"){$customgrp{$key}[2]=$Lang::tr{'fwhost empty'};}
@@ -1555,6 +1554,7 @@ sub viewtableservicegrp
        my $helper;
        my $port;
        my $protocol;
+       my $delflag;
        if (! -z $configsrvgrp){
                &Header::openbox('100%', 'left', $Lang::tr{'fwhost cust srvgrp'});
                &General::readhasharray("$configsrvgrp", \%customservicegrp);
@@ -1563,6 +1563,16 @@ sub viewtableservicegrp
                foreach my $key (sort { uc($customservicegrp{$a}[0]) cmp uc($customservicegrp{$b}[0])||  $a <=> $b } keys %customservicegrp){
                        $count++;
                        if ($helper ne $customservicegrp{$key}[0]){
+                               $delflag=0;
+                               foreach my $key1 (sort { uc($customservicegrp{$a}[0]) cmp uc($customservicegrp{$b}[0]) } sort { uc($customservicegrp{$a}[2]) cmp uc($customservicegrp{$b}[2]) } keys %customservicegrp){
+                                       if ($customservicegrp{$key}[0] eq $customservicegrp{$key1}[0])
+                                       {
+                                               $delflag++;
+                                       }
+                                       if($delflag > 1){
+                                               last;
+                                       }
+                               }
                                $grpname=$customservicegrp{$key}[0];
                                if ($customservicegrp{$key}[2] eq "none"){
                                        $customservicegrp{$key}[2]=$Lang::tr{'fwhost empty'};
@@ -1595,7 +1605,7 @@ sub viewtableservicegrp
                                }
                        }
                        print"<td align='center'>$port</td><td align='center'>$protocol</td><td width='1%'><form method='post'>";
-                       if ($number gt '1'){
+                       if ($delflag > '1'){
                                print"<input type='image' src='/images/delete.gif' align='middle' alt=$Lang::tr{'delete'} title=$Lang::tr{'delete'} />";
                        }
                        print"<input type='hidden' name='ACTION' value='delgrpservice'><input type='hidden' name='delsrvfromgrp' value='$grpname,$remark,$customservicegrp{$key}[2],$customservicegrp{$key}[3]'></form></td></tr>";