diff --git a/hotspot-to-wpa-lease.capsman.rsc b/hotspot-to-wpa-lease.capsman.rsc index da86b9d5..ae04e7f1 100644 --- a/hotspot-to-wpa-lease.capsman.rsc +++ b/hotspot-to-wpa-lease.capsman.rsc @@ -43,13 +43,10 @@ :continue; } - :local MacAddress $"mac-address"; - :local UserName $username; - :local Date [ /system/clock/get date ]; :local UserVal ({}); - :if ([ :len [ /ip/hotspot/user/find where name=$UserName ] ] > 0) do={ - :set UserVal [ /ip/hotspot/user/get [ find where name=$UserName ] ]; + :if ([ :len [ /ip/hotspot/user/find where name=($LeaseVal->"username") ] ] > 0) do={ + :set UserVal [ /ip/hotspot/user/get [ find where name=($LeaseVal->"username") ] ]; } :local UserInfo [ $ParseKeyValueStore ($UserVal->"comment") ]; @@ -61,15 +58,15 @@ :local Template [ /caps-man/access-list/get ([ find where \ comment=("hotspot-to-wpa template " . $LeaseVal->"hotspot") disabled ]->0) ]; - $LogPrint info $ScriptName ("Adding/updating access-list entry for mac address " . $MacAddress . \ - " (user " . $UserName . ")."); - /caps-man/access-list/remove [ find where mac-address=$MacAddress comment~"^hotspot-to-wpa: " ]; + $LogPrint info $ScriptName ("Adding/updating access-list entry for mac address " . $LeaseVal->"mac-address" . \ + " (user " . $LeaseVal->"username" . ")."); + /caps-man/access-list/remove [ find where mac-address=($LeaseVal->"mac-address") comment~"^hotspot-to-wpa: " ]; /caps-man/access-list/add private-passphrase=($UserVal->"password") ssid-regexp="-wpa\$" \ - mac-address=$MacAddress comment=("hotspot-to-wpa: " . $UserName . ", " . $MacAddress . ", " . $Date) \ - action=reject place-before=$PlaceBefore; + mac-address=($LeaseVal->"mac-address") comment=("hotspot-to-wpa: " . $LeaseVal->"username" . \ + ", " . $LeaseVal->"mac-address" . ", " . $Date) action=reject place-before=$PlaceBefore; - :local Entry [ /caps-man/access-list/find where mac-address=$MacAddress \ - comment=("hotspot-to-wpa: " . $UserName . ", " . $MacAddress . ", " . $Date) ]; + :local Entry [ /caps-man/access-list/find where mac-address=($LeaseVal->"mac-address") \ + comment=("hotspot-to-wpa: " . $LeaseVal->"username" . ", " . $LeaseVal->"mac-address" . ", " . $Date) ]; :local PrivatePassphrase [ $EitherOr ($UserInfo->"private-passphrase") ($Template->"private-passphrase") ]; :if ([ :len $PrivatePassphrase ] > 0) do={ :if ($PrivatePassphrase = "ignore") do={ diff --git a/hotspot-to-wpa-lease.template.rsc b/hotspot-to-wpa-lease.template.rsc index 4f02a3db..2ad5198b 100644 --- a/hotspot-to-wpa-lease.template.rsc +++ b/hotspot-to-wpa-lease.template.rsc @@ -47,13 +47,10 @@ :continue; } - :local MacAddress $"mac-address"; - :local UserName $username; - :local Date [ /system/clock/get date ]; :local UserVal ({}); - :if ([ :len [ /ip/hotspot/user/find where name=$UserName ] ] > 0) do={ - :set UserVal [ /ip/hotspot/user/get [ find where name=$UserName ] ]; + :if ([ :len [ /ip/hotspot/user/find where name=($LeaseVal->"username") ] ] > 0) do={ + :set UserVal [ /ip/hotspot/user/get [ find where name=($LeaseVal->"username") ] ]; } :local UserInfo [ $ParseKeyValueStore ($UserVal->"comment") ]; @@ -68,18 +65,18 @@ :local Template [ /interface/wifi/access-list/get ([ find where \ comment=("hotspot-to-wpa template " . $LeaseVal->"hotspot") disabled ]->0) ]; - $LogPrint info $ScriptName ("Adding/updating access-list entry for mac address " . $MacAddress . \ - " (user " . $UserName . ")."); - /caps-man/access-list/remove [ find where mac-address=$MacAddress comment~"^hotspot-to-wpa: " ]; - /interface/wifi/access-list/remove [ find where mac-address=$MacAddress comment~"^hotspot-to-wpa: " ]; + $LogPrint info $ScriptName ("Adding/updating access-list entry for mac address " . $LeaseVal->"mac-address" . \ + " (user " . $LeaseVal->"username" . ")."); + /caps-man/access-list/remove [ find where mac-address=($LeaseVal->"mac-address") comment~"^hotspot-to-wpa: " ]; + /interface/wifi/access-list/remove [ find where mac-address=($LeaseVal->"mac-address") comment~"^hotspot-to-wpa: " ]; /caps-man/access-list/add private-passphrase=($UserVal->"password") ssid-regexp="-wpa\$" \ /interface/wifi/access-list/add passphrase=($UserVal->"password") ssid-regexp="-wpa\$" \ - mac-address=$MacAddress comment=("hotspot-to-wpa: " . $UserName . ", " . $MacAddress . ", " . $Date) \ - action=reject place-before=$PlaceBefore; + mac-address=($LeaseVal->"mac-address") comment=("hotspot-to-wpa: " . $LeaseVal->"username" . \ + ", " . $LeaseVal->"mac-address" . ", " . $Date) action=reject place-before=$PlaceBefore; - :local Entry [ /caps-man/access-list/find where mac-address=$MacAddress \ - :local Entry [ /interface/wifi/access-list/find where mac-address=$MacAddress \ - comment=("hotspot-to-wpa: " . $UserName . ", " . $MacAddress . ", " . $Date) ]; + :local Entry [ /caps-man/access-list/find where mac-address=($LeaseVal->"mac-address") \ + :local Entry [ /interface/wifi/access-list/find where mac-address=($LeaseVal->"mac-address") \ + comment=("hotspot-to-wpa: " . $LeaseVal->"username" . ", " . $LeaseVal->"mac-address" . ", " . $Date) ]; # NOT /caps-man/ # :set ($Template->"private-passphrase") ($Template->"passphrase"); # NOT /caps-man/ # diff --git a/hotspot-to-wpa-lease.wifi.rsc b/hotspot-to-wpa-lease.wifi.rsc index 89a33836..969937a4 100644 --- a/hotspot-to-wpa-lease.wifi.rsc +++ b/hotspot-to-wpa-lease.wifi.rsc @@ -43,13 +43,10 @@ :continue; } - :local MacAddress $"mac-address"; - :local UserName $username; - :local Date [ /system/clock/get date ]; :local UserVal ({}); - :if ([ :len [ /ip/hotspot/user/find where name=$UserName ] ] > 0) do={ - :set UserVal [ /ip/hotspot/user/get [ find where name=$UserName ] ]; + :if ([ :len [ /ip/hotspot/user/find where name=($LeaseVal->"username") ] ] > 0) do={ + :set UserVal [ /ip/hotspot/user/get [ find where name=($LeaseVal->"username") ] ]; } :local UserInfo [ $ParseKeyValueStore ($UserVal->"comment") ]; @@ -61,15 +58,15 @@ :local Template [ /interface/wifi/access-list/get ([ find where \ comment=("hotspot-to-wpa template " . $LeaseVal->"hotspot") disabled ]->0) ]; - $LogPrint info $ScriptName ("Adding/updating access-list entry for mac address " . $MacAddress . \ - " (user " . $UserName . ")."); - /interface/wifi/access-list/remove [ find where mac-address=$MacAddress comment~"^hotspot-to-wpa: " ]; + $LogPrint info $ScriptName ("Adding/updating access-list entry for mac address " . $LeaseVal->"mac-address" . \ + " (user " . $LeaseVal->"username" . ")."); + /interface/wifi/access-list/remove [ find where mac-address=($LeaseVal->"mac-address") comment~"^hotspot-to-wpa: " ]; /interface/wifi/access-list/add passphrase=($UserVal->"password") ssid-regexp="-wpa\$" \ - mac-address=$MacAddress comment=("hotspot-to-wpa: " . $UserName . ", " . $MacAddress . ", " . $Date) \ - action=reject place-before=$PlaceBefore; + mac-address=($LeaseVal->"mac-address") comment=("hotspot-to-wpa: " . $LeaseVal->"username" . \ + ", " . $LeaseVal->"mac-address" . ", " . $Date) action=reject place-before=$PlaceBefore; - :local Entry [ /interface/wifi/access-list/find where mac-address=$MacAddress \ - comment=("hotspot-to-wpa: " . $UserName . ", " . $MacAddress . ", " . $Date) ]; + :local Entry [ /interface/wifi/access-list/find where mac-address=($LeaseVal->"mac-address") \ + comment=("hotspot-to-wpa: " . $LeaseVal->"username" . ", " . $LeaseVal->"mac-address" . ", " . $Date) ]; :set ($Template->"private-passphrase") ($Template->"passphrase"); :local PrivatePassphrase [ $EitherOr ($UserInfo->"private-passphrase") ($Template->"private-passphrase") ]; :if ([ :len $PrivatePassphrase ] > 0) do={ diff --git a/hotspot-to-wpa.capsman.rsc b/hotspot-to-wpa.capsman.rsc index 938d0042..0b6d1af9 100644 --- a/hotspot-to-wpa.capsman.rsc +++ b/hotspot-to-wpa.capsman.rsc @@ -30,15 +30,12 @@ } :local Lease [ /ip/dhcp-server/lease/find where mac-address=$MacAddress address=$Address ]; - :if ([ :len $Lease ] != 1) do={ :log warning ($ScriptName . ": Did not find exactly one lease for " . $MacAddress . "!"); :set ExitOK true; :error false; } - :local Hotspot [ /ip/hotspot/host/get [ find where mac-address=$MacAddress authorized ] server ]; - /ip/dhcp-server/lease/set \ comment=[ :serialize to=json ({ \ "hotspot-to-wpa"=true; \ diff --git a/hotspot-to-wpa.template.rsc b/hotspot-to-wpa.template.rsc index 84bb4181..3a96294a 100644 --- a/hotspot-to-wpa.template.rsc +++ b/hotspot-to-wpa.template.rsc @@ -32,15 +32,12 @@ } :local Lease [ /ip/dhcp-server/lease/find where mac-address=$MacAddress address=$Address ]; - :if ([ :len $Lease ] != 1) do={ :log warning ($ScriptName . ": Did not find exactly one lease for " . $MacAddress . "!"); :set ExitOK true; :error false; } - :local Hotspot [ /ip/hotspot/host/get [ find where mac-address=$MacAddress authorized ] server ]; - /ip/dhcp-server/lease/set \ comment=[ :serialize to=json ({ \ "hotspot-to-wpa"=true; \ diff --git a/hotspot-to-wpa.wifi.rsc b/hotspot-to-wpa.wifi.rsc index db6a44b2..762a3af6 100644 --- a/hotspot-to-wpa.wifi.rsc +++ b/hotspot-to-wpa.wifi.rsc @@ -30,15 +30,12 @@ } :local Lease [ /ip/dhcp-server/lease/find where mac-address=$MacAddress address=$Address ]; - :if ([ :len $Lease ] != 1) do={ :log warning ($ScriptName . ": Did not find exactly one lease for " . $MacAddress . "!"); :set ExitOK true; :error false; } - :local Hotspot [ /ip/hotspot/host/get [ find where mac-address=$MacAddress authorized ] server ]; - /ip/dhcp-server/lease/set \ comment=[ :serialize to=json ({ \ "hotspot-to-wpa"=true; \