Changeset 691 for trunk/cgi-bin/main.cgi
- Timestamp:
- 02/06/15 17:42:26 (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/cgi-bin/main.cgi
r687 r691 345 345 $page->param(cached => $cached); 346 346 347 my $pinfo = getBlockData($ip_dbh, $webvar{parent}); 348 # seems reasonable that a new allocation would share a VRF with its parent 349 $page->param(pvrf => $pinfo->{vrf}); 350 347 351 $webvar{fbtype} = '' if !$webvar{fbtype}; 348 352 if ($webvar{fbtype} eq 'i') { 349 353 my $ipinfo = getBlockData($ip_dbh, $webvar{block}, 'i'); 350 my $pinfo = getBlockData($ip_dbh, $webvar{parent});351 354 $page->param( 352 355 fbip => 1, … … 529 532 $page->param(cidr => $cidr); 530 533 $page->param(rdns => $webvar{rdns}); 534 $page->param(vrf => $webvar{vrf}); 535 $page->param(vlan => $webvar{vlan}); 531 536 $page->param(city => $q->escapeHTML($webvar{city})); 532 537 $page->param(custid => $webvar{custid}); … … 583 588 } 584 589 585 my ($code,$msg) = allocateBlock($ip_dbh, cidr => $webvar{fullcidr}, fbid => $webvar{fbid}, 586 parent => $webvar{parent}, custid => $webvar{custid}, type => $webvar{alloctype}, city => $webvar{city}, 587 desc => $webvar{desc}, notes => $webvar{notes}, circid => $webvar{circid}, 588 privdata => $webvar{privdata}, nodeid => $webvar{node}, rdns => $webvar{rdns}, user => $authuser, 589 iprev => \%iprev); 590 # Easier to see and cosmetically fiddle the list like this 591 my %insert_args = ( 592 cidr => $webvar{fullcidr}, 593 fbid => $webvar{fbid}, 594 parent => $webvar{parent}, 595 custid => $webvar{custid}, 596 type => $webvar{alloctype}, 597 city => $webvar{city}, 598 desc => $webvar{desc}, 599 notes => $webvar{notes}, 600 circid => $webvar{circid}, 601 privdata => $webvar{privdata}, 602 nodeid => $webvar{node}, 603 rdns => $webvar{rdns}, 604 vrf => $webvar{vrf}, 605 vlan => $webvar{vlan}, 606 user => $authuser, 607 ); 608 609 my ($code,$msg) = allocateBlock($ip_dbh, %insert_args, iprev => \%iprev); 590 610 591 611 if ($code eq 'OK') { … … 705 725 } 706 726 727 # VRF. Not a full validity check, just a basic sanity check. 728 if ($webvar{vrf}) { 729 # Trim leading and trailing whitespace first 730 $webvar{vrf} =~ s/^\s+//; 731 $webvar{vrf} =~ s/\s+$//; 732 if ($webvar{vrf} !~ /^[\w\d_.-]{1,32}$/) { 733 $page->param(err => "VRF values may only contain alphanumerics, and may not be more than 32 characters"); 734 return; 735 } 736 } 737 738 # VLAN. Should we allow/use VLAN names, or just the numeric ID? 739 if ($webvar{vlan}) { 740 # Trim leading and trailing whitespace first 741 $webvar{vlan} =~ s/^\s+//; 742 $webvar{vlan} =~ s/\s+$//; 743 # ... ve make it ze configurable thingy! 744 if ($IPDB::numeric_vlan) { 745 if ($webvar{vlan} !~ /^\d+$/) { 746 $page->param(err => "VLANs must be numeric"); 747 return; 748 } 749 } else { 750 if ($webvar{vlan} !~ /^[\w\d_.-]+$/) { 751 $page->param(err => "VLANs must be alphanumeric"); 752 return; 753 } 754 } 755 } 756 707 757 return 'OK'; 708 758 } # end validateInput … … 716 766 # snag block info from db 717 767 my $blockinfo = getBlockData($ip_dbh, $webvar{id}, $webvar{basetype}); 718 $page->param(id => $webvar{id});768 $page->param(id => $webvar{id}); 719 769 $page->param(basetype => $webvar{basetype}); 720 770 … … 726 776 ($blockinfo->{rdns},$cached) = getBlockRDNS($ip_dbh, id => $webvar{id}, type => $blockinfo->{type}, user => $authuser); 727 777 # visual flag that we're working IPDB-local, not off more authoritative data in dnsadmin 728 $page->param(cached => $cached);778 $page->param(cached => $cached); 729 779 730 780 my $cidr = new NetAddr::IP $blockinfo->{block}; … … 743 793 } 744 794 745 $page->param(block => $blockinfo->{block});746 $page->param(rdns => $blockinfo->{rdns});747 748 $page->param(custid => $blockinfo->{custid});749 $page->param(city => $blockinfo->{city}); 750 $page->param( circid => $blockinfo->{circuitid});751 $page->param( desc => $blockinfo->{description});752 $page->param( notes => $blockinfo->{notes});795 # consider extending this to show time as well as date 796 my ($lastmod,undef) = split /\s+/, $blockinfo->{lastmod}; 797 $page->param(lastmod => $lastmod); 798 # $page->param(lastmod => $blockinfo->{lastmod}); 799 800 $page->param(block => $blockinfo->{block}); 801 $page->param(city => $blockinfo->{city}); 802 $page->param(custid => $blockinfo->{custid}); 753 803 754 804 ##fixme The check here should be built from the database … … 789 839 ## end node hack 790 840 791 my ($lastmod,undef) = split /\s+/, $blockinfo->{lastmod}; 792 $page->param(lastmod => $lastmod); 841 $page->param(rdns => $blockinfo->{rdns}); 842 $page->param(vrf => $blockinfo->{vrf}); 843 $page->param(vlan => $blockinfo->{vlan}); 793 844 794 845 # not happy with the upside-down logic, but... 795 846 $page->param(swipable => $blockinfo->{type} !~ /.i/); 796 $page->param(swip => $blockinfo->{swip} ne 'n') if $blockinfo->{swip}; 847 $page->param(swip => $blockinfo->{swip} ne 'n') if $blockinfo->{swip}; 848 849 $page->param(circid => $blockinfo->{circuitid}); 850 $page->param(desc => $blockinfo->{description}); 851 $page->param(notes => $blockinfo->{notes}); 797 852 798 853 # Check to see if we can display sensitive data 799 $page->param(nocling => $IPDBacl{$authuser} =~ /s/);854 $page->param(nocling => $IPDBacl{$authuser} =~ /s/); 800 855 $page->param(privdata => $blockinfo->{privdata}); 801 856 … … 830 885 swip => $webvar{swip}, 831 886 rdns => $webvar{rdns}, 887 vrf => $webvar{vrf}, 888 vlan => $webvar{vlan}, 832 889 user => $authuser, 833 890 );
Note:
See TracChangeset
for help on using the changeset viewer.