Ignore:
Timestamp:
11/15/11 18:08:14 (13 years ago)
Author:
Kris Deugau
Message:

/branches/stable

Make the fixed web path at least configurable in one place rather
than completely hardcoded across many files.
Update initial database tabledef SQL
Bump version

Location:
branches/stable/cgi-bin
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • branches/stable/cgi-bin/CommonWeb.pm

    r445 r507  
    5252sub printHeader {
    5353  my $title = shift;
     54  my $webpath = shift;
    5455  print "Content-type: text/html\n\n";
    5556# This doesn't work well.  Must investigate.
     
    6263
    6364  $html =~ s/\$\$TITLE\$\$/$title/;
     65  $html =~ s/\$\$WEBPATH\$\$/$webpath/g;
    6466# Necessary for mangling arbitrary bits of the header
    6567  my $i=0;
  • branches/stable/cgi-bin/MyIPDB.pm

    r445 r507  
    88# Last update by $Author$
    99###
    10 # Copyright (C) 2004-2010 - Kris Deugau
     10# Copyright (C) 2004-2011 - Kris Deugau
    1111
    1212# don't remove!  required for GNU/FHS-ish install from tarball
     
    2323my $dbhost = 'ipdb-db';
    2424
     25# Quick workaround for fixed web path.  Set this to the absolute web path to
     26# your IPDB install, or leave blank for installation at the webroot.
     27$IPDB::webpath = '';
     28
    2529# Set some globals declared in IPDB.pm.  Most of these only affect mailNotify().
    2630# Note that while you *can* leave these at defaults, it's probably a Really Bad Idea.
    27 #$IPDB::org_name = "Bob's Big Bonaza";
     31#$IPDB::org_name = "Example Corp";
    2832#$IPDB::smtphost = '127.0.0.1';
    29 #$IPDB::domain = 'bob.com';
     33#$IPDB::domain = 'example.com';
    3034#$IPDB::defcustid = '5554242';
    3135# Globals for db2rwhois.pl
  • branches/stable/cgi-bin/admin.cgi

    r506 r507  
    1010# Last update by $Author$
    1111###
    12 # Copyright (C) 2004-2010 - Kris Deugau
     12# Copyright (C) 2004-2011 - Kris Deugau
    1313
    1414use strict;
     
    5454  print "Content-Type: text/html\n\n".
    5555        "<html>\n<head>\n\t<title>Access denied</title>\n".
    56         qq(\t<link rel="stylesheet" type="text/css" href="/ip/ipdb.css">\n).
    57         qq(\t<link rel="stylesheet" type="text/css" href="/ip/local.css">\n).
     56        qq(\t<link rel="stylesheet" type="text/css" href="$IPDB::webpath/ipdb.css">\n).
     57        qq(\t<link rel="stylesheet" type="text/css" href="$IPDB::webpath/local.css">\n).
    5858        "</head>\n<body>\n".
    5959        qq(Access to this tool is restricted.  Contact the <a href="mailto:ipdbadmin\@example.com">IPDB administrator</a> \n).
     
    6767print "Content-type: text/html\n\n".
    6868        "<html>\n<head>\n\t<title>[IPDB admin tools]</title>\n".
    69         qq(\t<link rel="stylesheet" type="text/css" href="/ip/ipdb.css">\n).
    70         qq(\t<link rel="stylesheet" type="text/css" href="/ip/local.css">\n).
     69        qq(\t<link rel="stylesheet" type="text/css" href="$IPDB::webpath/ipdb.css">\n).
     70        qq(\t<link rel="stylesheet" type="text/css" href="$IPDB::webpath/local.css">\n).
    7171        "</head>\n<body>\n".
    7272        "<h2>IPDB - Administrative Tools</h2>\n<hr>\n";
     
    125125);
    126126} else {
    127   print '<a href="/ip/cgi-bin/admin.cgi">Back</a> to main<hr>';
     127  print qq(<a href="$IPDB::webpath/cgi-bin/admin.cgi">Back</a> to main<hr>);
    128128}
    129129
     
    213213$cities
    214214</select>
    215 &nbsp;<a href="javascript:popNotes('/ip/newcity.html')">Add new location</a>
     215&nbsp;<a href="javascript:popNotes('$IPDB::webpath/newcity.html')">Add new location</a>
    216216</td>
    217217</tr>
     
    651651#
    652652
    653 print qq(<hr><a href="/ip/">Back</a> to main interface</a>\n);
     653print qq(<hr><a href="$IPDB::webpath/">Back</a> to main interface</a>\n);
    654654
    655655printFooter;
  • branches/stable/cgi-bin/ipdb.psql

    r445 r507  
    1 DROP DATABASE ipdb;
    2 
    3 CREATE USER ipdb WITH PASSWORD 'ipdbpwd';
    4 
    5 CREATE DATABASE ipdb;
    6 
    7 -- Need to do this or our triggers don't work.  Why do we need to do this?
    8 CREATE FUNCTION "plpgsql_call_handler" () RETURNS language_handler AS '$libdir/plpgsql' LANGUAGE C;
    9 CREATE TRUSTED LANGUAGE "plpgsql" HANDLER "plpgsql_call_handler";
    10 
    11 UPDATE pg_database SET datdba=(SELECT usesysid FROM pg_shadow WHERE usename='ipdb')
    12         WHERE datname='ipdb';
    13 
    14 \connect ipdb ipdb
     1-- Initial table setup for IP Database
    152
    163CREATE TABLE "customers" (
     
    3219);
    3320
    34 REVOKE ALL on "customers" from PUBLIC;
    35 GRANT ALL on "customers" to "ipdb";
    36 
    3721CREATE TABLE "masterblocks" (
    3822        "cidr" cidr DEFAULT '255.255.255.255/32' NOT NULL PRIMARY KEY,
     
    4125        "rwhois" character(1) DEFAULT 'n' NOT NULL
    4226);
    43 
    44 REVOKE ALL on "masterblocks" from PUBLIC;
    45 GRANT ALL on "masterblocks" to "ipdb";
    4627
    4728CREATE TABLE "routed" (
     
    5233);
    5334
    54 REVOKE ALL on "routed" from PUBLIC;
    55 GRANT ALL on "routed" to "ipdb";
    56 GRANT SELECT on "routed" to "ipdb";
    57 
    5835CREATE TABLE "temp" (
    5936        "ofs" integer
    6037);
    61 
    62 REVOKE ALL on "temp" from PUBLIC;
    63 GRANT ALL on "temp" to "ipdb";
    6438
    6539CREATE TABLE "freeblocks" (
     
    6943        "routed" character(1) DEFAULT 'n'
    7044);
    71 
    72 REVOKE ALL on "freeblocks" from PUBLIC;
    73 GRANT ALL on "freeblocks" to "ipdb";
    7445
    7546CREATE TABLE "poolips" (
     
    9061);
    9162
    92 REVOKE ALL on "poolips" from PUBLIC;
    93 GRANT ALL on "poolips" to "ipdb";
    94 
    9563CREATE TABLE "allocations" (
    9664        "cidr" cidr DEFAULT '255.255.255.255/32' NOT NULL PRIMARY KEY,
     
    10977);
    11078
    111 REVOKE ALL on "allocations" from PUBLIC;
    112 GRANT ALL on "allocations" to "ipdb";
    113 
    11479CREATE VIEW "searchme" as SELECT allocations.cidr, allocations.custid, allocations."type", allocations.city, allocations.description, allocations.notes, allocations.oldcustid, allocations.circuitid FROM allocations UNION SELECT poolips.ip, poolips.custid, poolips.type, poolips.city, poolips.description, poolips.notes, poolips.oldcustid, poolips.circuitid FROM poolips;
    115 
    116 REVOKE ALL on "searchme" from PUBLIC;
    117 GRANT ALL on "searchme" to "ipdb";
    11880
    11981CREATE TABLE "alloctypes" (
     
    167129\.
    168130
    169 REVOKE ALL on "alloctypes" from PUBLIC;
    170 GRANT ALL on "alloctypes" to "ipdb";
    171 
    172131CREATE TABLE "cities" (
    173132        "id" serial NOT NULL PRIMARY KEY,
     
    175134        "routing" character(1) DEFAULT 'n' NOT NULL
    176135);
    177 
    178 REVOKE ALL on "cities" from PUBLIC;
    179 GRANT ALL on "cities" to "ipdb";
    180136
    181137--
  • branches/stable/cgi-bin/main.cgi

    r506 r507  
    77# Last update by $Author$
    88###
    9 # Copyright (C) 2004-2010 - Kris Deugau
     9# Copyright (C) 2004-2011 - Kris Deugau
    1010
    1111use strict;             
     
    5050
    5151# Headerize!  Make sure we replace the $$EXTRA0$$ bit as needed.
    52 printHeader('', ($IPDBacl{$authuser} =~ /a/ ?
    53         '<td align=right><a href="/ip/cgi-bin/main.cgi?action=assign">Add new assignment</a>' : ''
     52printHeader('', $IPDB::webpath, ($IPDBacl{$authuser} =~ /a/ ?
     53        '<td align=right><a href="'.$IPDB::webpath.'/cgi-bin/main.cgi?action=assign">Add new assignment</a>' : ''
    5454        ));
    5555
     
    7373  } else {
    7474    open HTML, "<../addmaster.html";
    75     print while <HTML>;
     75    my $html = join('',<HTML>);
     76    close HTML;
     77    $html =~ s/\$\$WEBPATH\$\$/$IPDB::webpath/g;
     78    print $html;
    7679  }
    7780} elsif ($webvar{action} eq 'newmaster') {
     
    136139  my $html = join('',<HTML>);
    137140  close HTML;
     141  $html =~ s/\$\$WEBPATH\$\$/$IPDB::webpath/g;
    138142
    139143  $sth = $ip_dbh->prepare("SELECT node_id, node_name FROM nodes ORDER BY node_type,node_id");
     
    168172
    169173print qq(<div align=right style="position: absolute; right: 30px;">).
    170         qq(<a href="/ip/cgi-bin/admin.cgi">Admin tools</a></div><br>\n)
     174        qq(<a href="$IPDB::webpath/cgi-bin/admin.cgi">Admin tools</a></div><br>\n)
    171175        if $IPDBacl{$authuser} =~ /A/;
    172176
     
    263267  my $count=0;
    264268  foreach my $master (@masterblocks) {
    265     my @row = ("<a href=\"/ip/cgi-bin/main.cgi?action=showmaster&block=$master\">$master</a>",
     269    my @row = ("<a href=\"$IPDB::webpath/cgi-bin/main.cgi?action=showmaster&block=$master\">$master</a>",
    266270        $routed{"$master"}, $allocated{"$master"}, $free{"$master"},
    267271        ( ($bigfree{"$master"} eq '') ? ("&lt;NONE&gt;") : ("/".$bigfree{"$master"}) )
     
    274278  print "</table>\n";
    275279  if ($IPDBacl{$authuser} =~ /a/) {
    276     print qq(<a href="/ip/cgi-bin/main.cgi?action=addmaster">Add new master block</a><br><br>\n);
     280    print qq(<a href="$IPDB::webpath/cgi-bin/main.cgi?action=addmaster">Add new master block</a><br><br>\n);
    277281  }
    278282  print "Note:  Free blocks noted here include both routed and unrouted blocks.\n";
     
    348352    my $count=0;
    349353    foreach my $master (@localmasters) {
    350       my @row = ("<a href=\"/ip/cgi-bin/main.cgi?action=showrouted&block=$master\">$master</a>",
     354      my @row = ("<a href=\"$IPDB::webpath/cgi-bin/main.cgi?action=showrouted&block=$master\">$master</a>",
    351355        $routed{"$master"}, $allocated{"$master"},
    352356        $free{"$master"},
     
    363367        qq($master.</div>\n).
    364368        ($IPDBacl{$authuser} =~ /d/ ?
    365                 qq(<form action="/ip/cgi-bin/main.cgi" method=POST>\n).
     369                qq(<form action="$IPDB::webpath/cgi-bin/main.cgi" method=POST>\n).
    366370                qq(<input type=hidden name=action value="delete">\n).
    367371                qq(<input type=hidden name=block value="$master">\n).
     
    437441    # Prefix subblocks with "Sub "
    438442    my @row = ( (($data[2] =~ /^.r$/) ? 'Sub ' : '').
    439         qq(<a href="/ip/cgi-bin/main.cgi?action=edit&block=$data[0]&reallyblock=1">$data[0]</a>),
     443        qq(<a href="$IPDB::webpath/cgi-bin/main.cgi?action=edit&block=$data[0]&reallyblock=1">$data[0]</a>),
    440444        $data[1], $disp_alloctypes{$data[2]}, $data[3],
    441445        ($data[4] eq 'y' ? ($ncust == 0 ? 'Yes<small>*</small>' : 'Yes') : 'No'), $data[5]);
    442446    # If the allocation is a pool, allow listing of the IPs in the pool.
    443447    if ($data[2] =~ /^.[pd]$/) {
    444       $row[0] .= ' &nbsp; <a href="/ip/cgi-bin/main.cgi?action=listpool'.
     448      $row[0] .= ' &nbsp; <a href="$IPDB::webpath/cgi-bin/main.cgi?action=listpool'.
    445449        "&pool=$data[0]\">List IPs</a>";
    446450    }
     
    459463        qq($master.</div></center>\n).
    460464        ($IPDBacl{$authuser} =~ /d/ ?
    461                 qq(<form action="/ip/cgi-bin/main.cgi" method=POST>\n).
     465                qq(<form action="$IPDB::webpath/cgi-bin/main.cgi" method=POST>\n).
    462466                qq(<input type=hidden name=action value="delete">\n).
    463467                qq(<input type=hidden name=block value="$master">\n).
     
    484488    # Include some HairyPerl(TM) to prefix subblocks with "Sub "
    485489    my @row = ((($data[1] ne 'y' && $data[1] ne 'n') ? 'Sub ' : '').
    486         ($IPDBacl{$authuser} =~ /a/ ? qq(<a href="/ip/cgi-bin/main.cgi?action=assign&block=$cidr&fbtype=$data[1]">$cidr</a>) : $cidr),
     490        ($IPDBacl{$authuser} =~ /a/ ? qq(<a href="$IPDB::webpath/cgi-bin/main.cgi?action=assign&block=$cidr&fbtype=$data[1]">$cidr</a>) : $cidr),
    487491        $cidr->range);
    488492    printRow(\@row, 'color1') if ($count%2 == 0);
     
    540544    #   -> if $data[2] (aka poolips.available) == 'n' then we print the unassign link
    541545    #      else we print a blank space
    542     my @row = ( qq(<a href="/ip/cgi-bin/main.cgi?action=edit&block=$data[0]">$data[0]</a>),
     546    my @row = ( qq(<a href="$IPDB::webpath/cgi-bin/main.cgi?action=edit&block=$data[0]">$data[0]</a>),
    543547        $data[1],$data[2],$data[3],
    544548        ( (($data[2] eq 'n') && ($IPDBacl{$authuser} =~ /d/)) ?
    545           ("<a href=\"/ip/cgi-bin/main.cgi?action=delete&block=$data[0]&".
     549          ("<a href=\"$IPDB::webpath/cgi-bin/main.cgi?action=delete&block=$data[0]&".
    546550           "alloctype=$data[4]\">Unassign this IP</a>") :
    547551          ("&nbsp;") )
     
    577581    $html =~ s|\$\$MASKBITS\$\$|$block->masklen|;
    578582    my $typelist = '';
     583
     584    $html =~ s|\$\$WEBPATH\$\$|$IPDB::webpath|g;
    579585
    580586    # This is a little dangerous, as it's *theoretically* possible to
     
    607613    $html = join('',<HTML>);
    608614    close HTML;
     615    $html =~ s|\$\$WEBPATH\$\$|$IPDB::webpath|g;
    609616    my $masterlist = "<select name=allocfrom><option selected>-</option>\n";
    610617    foreach my $master (@masterblocks) {
     
    12181225
    12191226  # Link back to browse-routed or list-pool page on "Update complete" page.
    1220   my $backlink = "/ip/cgi-bin/main.cgi?action=";
     1227  my $backlink = "$IPDB::webpath/cgi-bin/main.cgi?action=";
    12211228  my $cblock;   # to contain the CIDR of the container block we're retrieving.
    12221229  my $sql;
     
    14061413sub exitError {
    14071414  my $errStr = $_[0];
    1408   printHeader('','');
     1415  printHeader('', $IPDB::webpath, '');
    14091416  print qq(<center><p class="regular"> $errStr </p>
    14101417<input type="button" value="Back" onclick="history.go(-1)">
  • branches/stable/cgi-bin/search.cgi

    r445 r507  
    99# Last update by $Author$
    1010###
    11 # Copyright 2005-2010 - Kris Deugau
     11# Copyright 2005-2011 - Kris Deugau
    1212
    1313use strict;             
     
    6464
    6565# Headerize!  Make sure we replace the $$EXTRA0$$ bit as needed.
    66 printHeader('', ($IPDBacl{$authuser} =~ /a/ ?
    67         '<td align=right><a href="/ip/cgi-bin/main.cgi?action=assign">Add new assignment</a></td>' : ''
     66printHeader('', $IPDB::webpath, ($IPDBacl{$authuser} =~ /a/ ?
     67        '<td align=right><a href="'.$IPDB::webpath.'/cgi-bin/main.cgi?action=assign">Add new assignment</a></td>' : ''
    6868        ));
    6969
     
    244244  $html = join('',<HTML>);
    245245  close HTML;
     246  $html =~ s/\$\$WEBPATH\$\$/$IPDB::webpath/g;
    246247
    247248# Generate table of types
     
    446447    # Another bit of HairyPerl(TM) to prefix subblocks with "Sub"
    447448    my @row = (($data[2] =~ /^.r$/ ? 'Sub ' : '').
    448         qq(<a href="/ip/cgi-bin/main.cgi?action=edit&block=$data[0]">$data[0]</a>),
     449        qq(<a href="$IPDB::webpath/cgi-bin/main.cgi?action=edit&block=$data[0]">$data[0]</a>),
    449450        $data[1], $disp_alloctypes{$data[2]}, $data[3], $data[4]);
    450451    # Allow listing of pool if desired/required.
    451452    if ($data[2] =~ /^.[pd]$/) {
    452       $row[0] .= ' &nbsp; <a href="/ip/cgi-bin/main.cgi?action=listpool'.
     453      $row[0] .= ' &nbsp; <a href="'.$IPDB::webpath.'/cgi-bin/main.cgi?action=listpool'.
    453454        "&pool=$data[0]\">List IPs</a>";
    454455    }
     
    474475        print "<b>$i&nbsp;</b>\n";
    475476      } else {
    476         print qq(<a href="/ip/cgi-bin/search.cgi?page=$i&stype=$webvar{stype}&);
     477        print qq(<a href="$IPDB::webpath/cgi-bin/search.cgi?page=$i&stype=$webvar{stype}&);
    477478        if ($webvar{stype} eq 'c') {
    478479          print "cidr=$webvar{cidr}&custid=$webvar{custid}&desc=$webvar{desc}&".
  • branches/stable/cgi-bin/snCalc.cgi

    r360 r507  
    88
    99#file snCalc.cgi        little subnet calculator app
     10use MyIPDB;
    1011
    1112my %webvar = parse_post();
     
    1718my $start = join('', <HTML>);
    1819close(HTML);
     20$start =~ s/\$\$WEBPATH\$\$/$IPDB::webpath/g;
    1921print $start;
    2022
Note: See TracChangeset for help on using the changeset viewer.