Ребята, кто-нибудь может объяснить, почему это не работает как надо? Не обращайте внимания на EpochTime и комментарии — с ними всё в порядке.
:foreach i in=[ip hotspot user find where name!=admin and name!=default-trial and ! disabled ] do={
:global EpochTime;
:local epoch [$EpochTime];
:local ts [ip hotspot user get $i comment];
:local user [ip hotspot user get $i name];
#:log info message=("DEBUG User: ".$user.", Expires: ".$ts.", Epoch: ".$epoch);
:if ($ts!="") do={
:local ts1 [:tonum [ip hotspot user get $i comment]];
:if ($epoch >= $ts1) do={
:log info message=("EXPIRED user: ".$user.", Expires: ".$ts1.", Epoch: ".$epoch);
# Работает нормально:
/ip hotspot user set disabled=yes $i;
# ПРОБЛЕМА — вместо удаления только куки этого пользователя (если есть) удаляются все куки:
/ip hotspot cookie remove [/ip hotspot cookie find user=$user];
# ПРОБЛЕМА — вместо удаления только активных сессий этого пользователя (если есть) удаляются все сессии:
/ip hotspot active remove [/ip hotspot active find user=$user];
}
}
}
Не знаю, может я что-то делаю не так, или просто это сломано.
:foreach i in=[ip hotspot user find where name!=admin and name!=default-trial and ! disabled ] do={
:global EpochTime;
:local epoch [$EpochTime];
:local ts [ip hotspot user get $i comment];
:local user [ip hotspot user get $i name];
#:log info message=("DEBUG User: ".$user.", Expires: ".$ts.", Epoch: ".$epoch);
:if ($ts!="") do={
:local ts1 [:tonum [ip hotspot user get $i comment]];
:if ($epoch >= $ts1) do={
:log info message=("EXPIRED user: ".$user.", Expires: ".$ts1.", Epoch: ".$epoch);
# Работает нормально:
/ip hotspot user set disabled=yes $i;
# ПРОБЛЕМА — вместо удаления только куки этого пользователя (если есть) удаляются все куки:
/ip hotspot cookie remove [/ip hotspot cookie find user=$user];
# ПРОБЛЕМА — вместо удаления только активных сессий этого пользователя (если есть) удаляются все сессии:
/ip hotspot active remove [/ip hotspot active find user=$user];
}
}
}
Не знаю, может я что-то делаю не так, или просто это сломано.
