diff --git a/lib/pf/api.pm b/lib/pf/api.pm index 46a76e42a65e..28d061ded46f 100644 --- a/lib/pf/api.pm +++ b/lib/pf/api.pm @@ -441,6 +441,27 @@ sub node_information : Public { return $node_info; } +=head2 set_unreg_date + +Set the unreg for a specific node + +=cut + +sub set_unreg_date : Public { + my ($class, %postdata) = @_; + my @require = qw(mac date); + my @found = grep {exists $postdata{$_}} @require; + return unless validate_argv(\@require, \@found); + + my $unregdate; + if (pf::util::valid_date($postdata{'date'})) { + $unregdate = pf::config::dynamic_unreg_date($postdata{'date'}); + } else { + $unregdate = pf::config::access_duration($postdata{'date'}); + } + pf::node::node_modify($postdata{'mac'}, ('unregdate' => $unregdate)); +} + =head2 validate_argv Test if the required arguments are provided diff --git a/lib/pf/util.pm b/lib/pf/util.pm index 8f8e21991a7a..baee41f733a0 100644 --- a/lib/pf/util.pm +++ b/lib/pf/util.pm @@ -81,7 +81,7 @@ sub valid_date { !~ /^\d{4}\-((0[1-9])|(1[0-2]))\-((0[1-9])|([12][0-9])|(3[0-1]))\s+(([01][0-9])|(2[0-3]))(:[0-5][0-9]){2}$/ ) { - $logger->error("invalid date $date"); + $logger->warn("invalid date $date"); return (0); } else { return (1);