IP addresses inherit tags from their parent networks (#375)
authorAlexey Andriyanov <alan@al-an.info>
Sun, 30 Sep 2012 11:23:04 +0000 (15:23 +0400)
committerAlexey Andriyanov <alan@al-an.info>
Sun, 30 Sep 2012 11:23:04 +0000 (15:23 +0400)
fixContext: use ip network's tagchain on ipaddress page

ChangeLog
README
wwwroot/inc/functions.php
wwwroot/inc/upgrade.php

index 4cdeb97..11c93b9 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -14,6 +14,7 @@
        update: confirmation boxes when clearing attribute values (#565)
        update: log records containing long lines are now word-wrapped (#608) by Stephen Groat
        update: SNMP support for HP J9020A (#619), HP J9280A (#615), TL-SG5426 (#590)
+       new feature: IP addresses inherit tags from their parent networks (#375)
        new feature: initial Cisco UCS support
        new feature: offline management of 802.1Q port list
        new feature: multiple Cacti servers (#534)
diff --git a/README b/README
index 80a04de..4ea1d8b 100644 (file)
--- a/README
+++ b/README
@@ -101,6 +101,13 @@ should be sufficient:
 *                                                     *
 *******************************************************
 
+*** Upgrading to 0.20.1 ***
+
+Security context of 'ipaddress' page now includes tags from the network containing an IP address. This means that you should audit your permission rules to check there is no unintended allows of changing IPs based on network's tagset. Example:
+       allow {client network} and {New York}
+This rule now not only allows any operation on NY client networks, but also any operation with IP addresses included in those networks. To fix this, you should change the rule this way:
+       allow {client network} and {New York} and not {$page_ipaddress}
+
 *** Upgrading to 0.20.0 ***
 
 WARNING: This release have too many internal changes, some of them were waiting more than a year
index 79e7e64..41cb75b 100644 (file)
@@ -1474,6 +1474,12 @@ function fixContext ($target = NULL)
                if ($target['realm'] != 'user')
                        $auto_tags = array_merge ($auto_tags, $target['atags']);
        }
+       elseif ($pageno == 'ipaddress' && $net = spotNetworkByIP (ip_parse (getBypassValue())))
+       {
+               // IP addresses inherit context tags from their parent networks
+               $target_given_tags = $net['etags'];
+               $auto_tags = array_merge ($auto_tags, $net['atags']);
+       }
        // Explicit and implicit chains should be normally empty at this point, so
        // overwrite the contents anyway.
        $expl_tags = mergeTagChains ($user_given_tags, $target_given_tags);
index 683aee3..e050d2b 100644 (file)
@@ -152,7 +152,16 @@ speed of IP tree will increase radically. The price is you will not see the rout
 IP tree at all.
 
 ENDOFTEXT
+,
+
+       '0.20.1' => <<<ENDOFTEXT
+Security context of 'ipaddress' page now includes tags from the network containing an IP address. This means that you should audit your permission rules to check there is no unintended allows of changing IPs based on network's tagset. Example:
+       allow {client network} and {New York}
+This rule now not only allows any operation on NY client networks, but also any operation with IP addresses included in those networks. To fix this, you should change the rule this way:
+       allow {client network} and {New York} and not {\$page_ipaddress}
 
+ENDOFTEXT
+,
 );
 
 // At the moment we assume, that for any two releases we can