Changeset 782 for trunk/cgi-bin
- Timestamp:
- 10/08/15 17:09:51 (9 years ago)
- Location:
- trunk/cgi-bin
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/cgi-bin/IPDB.pm
r780 r782 1467 1467 undef, ($args{parent}) ); 1468 1468 } 1469 $dbh->do("UPDATE poolips SET custid = ?, city = ?,available='n', description = ?, notes = ?, ". 1470 "circuitid = ?, privdata = ?, vrf = ?, rdns = ? ". 1469 1470 # backup 1471 my $backupid = 0; 1472 if ($args{backup}) { 1473 my $sql = "INSERT INTO backuplist ("; 1474 my @bkvals; 1475 for my $bk (qw(brand model type port src user vpass epass)) { 1476 if ($args{"bk$bk"}) { 1477 $sql .= "bk$bk,"; 1478 push @bkvals, $args{"bk$bk"}; 1479 } 1480 } 1481 $sql .= "ip) VALUES (".('?,' x scalar(@bkvals))."?)"; 1482 $dbh->do($sql, undef, @bkvals, $args{cidr}); 1483 ($backupid) = $dbh->selectrow_array("SELECT currval('backuplist_backup_id_seq')"); 1484 } 1485 1486 # finally assign the IP 1487 $dbh->do("UPDATE poolips SET custid = ?, city = ?, available='n', description = ?, notes = ?, ". 1488 "circuitid = ?, privdata = ?, vrf = ?, rdns = ?, backup_id = ? ". 1471 1489 "WHERE ip = ? AND parent_id = ?", undef, 1472 1490 ($args{custid}, $args{city}, $args{desc}, $args{notes}, 1473 $args{circid}, $args{privdata}, $args{vrf}, $args{rdns}, 1491 $args{circid}, $args{privdata}, $args{vrf}, $args{rdns}, $backupid, 1474 1492 $args{cidr}, $args{parent}) ); 1475 1493 -
trunk/cgi-bin/main.cgi
r780 r782 434 434 ## end node hack 435 435 436 $page->param( privdata=> $IPDBacl{$authuser} =~ /s/);436 $page->param(nocling => $IPDBacl{$authuser} =~ /s/); 437 437 438 438 } # assignBlock … … 657 657 658 658 # Check to see if user is allowed to do anything with sensitive data 659 my $privdata = ''; 660 $page->param(privdata => $q->escapeHTML($webvar{privdata},'y')) 661 if $IPDBacl{$authuser} =~ /s/; 659 if ($IPDBacl{$authuser} =~ /s/) { 660 $page->param(nocling => 1); 661 $page->param(privdata => $q->escapeHTML($webvar{privdata},'y')); 662 663 $page->param(backupfields => $webvar{backupfields}); 664 $page->param(bkbrand => $webvar{bkbrand}); 665 $page->param(bkmodel => $webvar{bkmodel}); 666 $page->param(bktype => $webvar{bktype}); 667 $page->param(bksrc => $webvar{bksrc}); 668 $page->param(bkuser => $webvar{bkuser}); 669 # these two could use virtually any character 670 $page->param(bkvpass => $q->escapeHTML($webvar{bkvpass})); 671 $page->param(bkepass => $q->escapeHTML($webvar{bkepass})); 672 $page->param(bkport => $webvar{bkport}); 673 } 662 674 663 675 # Yay! This now has it's very own little home. … … 682 694 return if !validateInput(); 683 695 696 ##fixme: permission check 684 697 if (!defined($webvar{privdata})) { 685 698 $webvar{privdata} = ''; … … 717 730 ); 718 731 732 ##fixme: permission check 733 # fill in backup data, if present/allowed 734 if ($webvar{backupfields}) { 735 $insert_args{backup} = 1; 736 $insert_args{bkbrand} = $webvar{bkbrand}; 737 $insert_args{bkmodel} = $webvar{bkmodel}; 738 for my $bkfield (qw(type src user vpass epass port)) { 739 $insert_args{"bk$bkfield"} = ($webvar{"bk$bkfield"} ? $webvar{"bk$bkfield"} : ''); 740 } 741 } 742 719 743 my $pinfo = getBlockData($ip_dbh, $webvar{parent}); 720 744 … … 874 898 return; 875 899 } 900 } 901 } 902 903 # Backup fields. Minimal sanity checks. 904 for my $bkfield (qw(brand model)) { 905 if ($webvar{"bk$bkfield"} && $webvar{"bk$bkfield"} !~ /^[a-zA-Z0-9\s_.-]+$/) { 906 $page->param(err => "Invalid characters in backup $bkfield"); 907 return; 908 } 909 } 910 for my $bkfield (qw(type src user)) { # no spaces in these! 911 if ($webvar{"bk$bkfield"} && $webvar{"bk$bkfield"} !~ /^[a-zA-Z0-9_.-]+$/) { 912 $page->param(err => "Invalid characters in backup $bkfield"); 913 return; 914 } 915 } 916 if ($webvar{bkport}) { 917 $webvar{bkport} =~ s/^\s+//g; 918 $webvar{bkport} =~ s/\s+$//g; 919 if ($webvar{bkport} !~ /^\d+$/) { 920 $page->param(err => "Backup port must be numeric"); 921 return; 876 922 } 877 923 }
Note:
See TracChangeset
for help on using the changeset viewer.