r4395 setPortVLAN(): include "$vlan_NNNN" autotags into every evaluated VLAN change...
authorDenis Ovsienko <infrastation@yandex.ru>
Fri, 25 Mar 2011 14:55:46 +0000 (14:55 +0000)
committerDenis Ovsienko <infrastation@yandex.ru>
Fri, 25 Mar 2011 14:55:46 +0000 (14:55 +0000)
renderVLANMembership(): idem
authorize8021QChangeRequests(): idem
findAutoTagWarnings(): update RE for the new autotag

ChangeLog
wwwroot/inc/code.php
wwwroot/inc/functions.php
wwwroot/inc/interface.php
wwwroot/inc/ophandlers.php

index 34627967cd8a2ad5daf3fc720c788ace77317f0e..81c2b7b56da8fcc049045cb613f4849f2474b3e9 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,6 @@
 0.19.3
        update: when searching for object by its hostname (FQDN attr) and single match is found, no searching by other fields is done
+       update: introduce "{$vlan_NNNN}" autotag to convoy both {$fromvlan_NNNN} and {$tovlan_NNNN}
        bugfix: handle SQL remnants of bug 399/415
 0.19.2 2011-03-24
        new feature: JunOS10 802.1q gateway
index cebe282029d6cad3cd89f6124ca8c132b5dea823..12b2342dd4745e4f8bc9cb3b5c6c98c0f14df0a3 100644 (file)
@@ -962,7 +962,7 @@ function findAutoTagWarnings ($expr)
                                case (preg_match ('/^\$typeid_[[:digit:]]+$/', $expr['load'])): // FIXME: check value validity
                                case (preg_match ('/^\$cn_.+$/', $expr['load'])): // FIXME: check name validity and asset existence
                                case (preg_match ('/^\$lgcn_.+$/', $expr['load'])): // FIXME: check name validity
-                               case (preg_match ('/^\$(fromvlan|tovlan)_[[:digit:]]+$/', $expr['load'])):
+                               case (preg_match ('/^\$(vlan|fromvlan|tovlan)_[[:digit:]]+$/', $expr['load'])):
                                case (preg_match ('/^\$(unmounted|untagged|no_asset_tag|runs_8021Q)$/', $expr['load'])):
                                case (preg_match ('/^\$masklen_(eq|le|ge)_[[:digit:]][[:digit:]]?$/', $expr['load'])):
                                case (preg_match ('/^\$attr_\d+_\d+$/', $expr['load'])):
index 629904e9c070083d925667b66c60ce2f19c325c1..797e6571ffe9febd6bd6e2541280c0efee8226fe 100644 (file)
@@ -3916,10 +3916,10 @@ function authorize8021QChangeRequests ($before, $changes)
        foreach ($changes as $pn => $change)
        {
                foreach (array_diff ($before[$pn]['allowed'], $change['allowed']) as $removed_id)
-                       if (!permitted (NULL, NULL, NULL, array (array ('tag' => '$fromvlan_' . $removed_id))))
+                       if (!permitted (NULL, NULL, NULL, array (array ('tag' => '$fromvlan_' . $removed_id), array ('tag' => '$vlan_' . $removed_id))))
                                continue 2; // next port
                foreach (array_diff ($change['allowed'], $before[$pn]['allowed']) as $added_id)
-                       if (!permitted (NULL, NULL, NULL, array (array ('tag' => '$tovlan_' . $added_id))))
+                       if (!permitted (NULL, NULL, NULL, array (array ('tag' => '$tovlan_' . $added_id), array ('tag' => '$vlan_' . $added_id))))
                                continue 2; // next port
                $ret[$pn] = $change;
        }
index 0c714280d32ff50ccd5966228ae2ed7883968068..7a95ca03cbd0682cd394c93c233e750cf9dcbf2a 100644 (file)
@@ -4701,8 +4701,8 @@ function renderVLANMembership ($object_id)
                foreach (array_keys ($vlanlist) as $to)
                        if
                        (
-                               permitted (NULL, NULL, 'setPortVLAN', array (array ('tag' => '$fromvlan_' . $port['vlanid']))) and
-                               permitted (NULL, NULL, 'setPortVLAN', array (array ('tag' => '$tovlan_' . $to)))
+                               permitted (NULL, NULL, 'setPortVLAN', array (array ('tag' => '$fromvlan_' . $port['vlanid']), array ('tag' => '$vlan_' . $port['vlanid']))) and
+                               permitted (NULL, NULL, 'setPortVLAN', array (array ('tag' => '$tovlan_' . $to), array ('tag' => '$vlan_' . $to)))
                        )
                                $vlanpermissions[$port['vlanid']][] = $to;
        }
index 74a0180cb3534b4cf2db2a6f5215e798826f03b9..7edebcd9ccc969e384fa2332159843e6c8d45a30 100644 (file)
@@ -1886,8 +1886,8 @@ function setPortVLAN ()
                $newvlanid = $_REQUEST['vlanid_' . $i];
                if
                (
-                       !permitted (NULL, NULL, NULL, array (array ('tag' => '$fromvlan_' . $oldvlanid))) or
-                       !permitted (NULL, NULL, NULL, array (array ('tag' => '$tovlan_' . $newvlanid)))
+                       !permitted (NULL, NULL, NULL, array (array ('tag' => '$fromvlan_' . $oldvlanid), array ('tag' => '$vlan_' . $oldvlanid))) or
+                       !permitted (NULL, NULL, NULL, array (array ('tag' => '$tovlan_' . $newvlanid), array ('tag' => '$vlan_' . $newvlanid)))
                )
                {
                        $log = mergeLogs ($log, oneLiner (159, array ($portname, $oldvlanid, $newvlanid)));