Hi Luis
On 2013-08-23, at 4:56 AM, luis torres <[email protected]> wrote:
> Found it
>
> but my skill as dev are #$%# :)
>
>
> Im trying to excecute the function update on Node.pm eveytime I change the
> Role of the node. I include this code on it:
>
>
> if ($result) {
> if ($previous_node_ref->{status} ne $node_ref->{status}) {
> # Node has been registered or deregistered
> reevaluate_access($mac, "node_modify");
>
> }
> elsif ($luisteste->{category} ne $node_ref->{category}) {
> # Node has been registered or deregistered
> reevaluate_access($mac, "node_modify");
> $status = $STATUS::INTERNAL_SERVER_ERROR;
> $result = $teste;
> }
> But I cant find how can I compare the db result with the actual Role form
> field ( hope you understand )
I made this patch that we'll probably integrate in the next release. You can
try it if you want. It reevaluates the network access if the node status
changed or if the role changed *and* the node was *not* registered through
802.1X :
diff --git a/html/pfappserver/lib/pfappserver/Model/Node.pm
b/html/pfappserver/lib/pfappserver/Model/Node.pm
index 1385869..4e620dc 100644
--- a/html/pfappserver/lib/pfappserver/Model/Node.pm
+++ b/html/pfappserver/lib/pfappserver/Model/Node.pm
@@ -230,7 +230,7 @@ sub update {
my ($status, $result) = ($STATUS::OK);
my $previous_node_ref;
- $previous_node_ref = node_attributes($mac);
+ $previous_node_ref = node_view($mac);
if ($previous_node_ref->{status} ne $node_ref->{status}) {
# Status was modified
my $option;
@@ -247,8 +247,11 @@ sub update {
$result = node_modify($mac, %{$node_ref});
}
if ($result) {
- if ($previous_node_ref->{status} ne $node_ref->{status}) {
+ my $isDot1x = defined($previous_node_ref->{last_dot1x_username}) &&
length($previous_node_ref->{last_dot1x_username}) > 0;
+ if ($previous_node_ref->{status} ne $node_ref->{status} ||
+ $previous_node_ref->{category_id} ne $node_ref->{category_id} &&
!$isDot1x) {
# Node has been registered or deregistered
+ # or the role has changed and is not currently using 802.1X
reevaluate_access($mac, "node_modify");
}
}
> LT
>
> Citando Jason Frisvold <[email protected]>:
>
>> luis torres wrote:
>>
>>> Hi mates,
>>>
>>> what "node_attributes($mac);" resturns?
>>>
>> Contextually speaking, it returns the node attributes for the mac
>> address you provide.
>>
>> It shouldn't be that hard to find the function definition and get a
>> definitive answer.
>>> cheers
>>> LT
>>>
--
[email protected] :: +1.514.755.3640 :: http://www.inverse.ca
Inverse :: Leaders behind SOGo (http://sogo.nu) and PacketFence
(http://packetfence.org)
------------------------------------------------------------------------------
Introducing Performance Central, a new site from SourceForge and
AppDynamics. Performance Central is your source for news, insights,
analysis and resources for efficient Application Performance Management.
Visit us today!
http://pubads.g.doubleclick.net/gampad/clk?id=48897511&iu=/4140/ostg.clktrk
_______________________________________________
PacketFence-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/packetfence-users