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 4cdeb977ff6d140ea8b9831b67a8120a13afbce8..11c93b9e9d5b8f2e65e66f64a4526b9c9df43594 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 80a04dec67317a0b68ef21dba017c8e5a137cfd8..4ea1d8b3a123b47c71ce2c446267ef63c96b55f0 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 79e7e6416f333ea0423852d4cbdbb059e56702ef..41cb75b85fa99b0aec6ba2d88259e5326f8df5db 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 683aee3c571ab24561346c6aacc2c2a4f7cef6e8..e050d2b2df518b0625a876d1508d441482976137 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