Designate forbidden address ranges, #25530
[freeside.git] / httemplate / edit / process / addr_range.html
diff --git a/httemplate/edit/process/addr_range.html b/httemplate/edit/process/addr_range.html
new file mode 100644 (file)
index 0000000..6b05d23
--- /dev/null
@@ -0,0 +1,22 @@
+<& elements/process.html,
+  'table'           => 'addr_range',
+  'popup_reload'    => 'Address range changed',
+  'precheck_callback' => sub {
+    my ($cgi) = @_;
+    my $start = NetAddr::IP->new($cgi->param('start'), 0)
+      or return 'Illegal or empty (IP address) start: '.$cgi->param('start');
+    if ( length($cgi->param('end')) ) {
+      my $end = NetAddr::IP->new($cgi->param('end'), 0)
+        or return 'Illegal or empty (IP address) end: '.$cgi->param('end');
+      if ( $end < $start ) {
+        ($start, $end) = ($end, $start);
+        $cgi->param('end', $end->addr);
+        $cgi->param('start', $start->addr);
+      }
+      $cgi->param('length', $end - $start + 1);
+    } else {
+      $cgi->param('length', 1);
+    }
+    '';
+  },
+&>