X-Git-Url: http://git.pjr.cc/?p=CBFWR.git;a=blobdiff_plain;f=libcbfwr%2Ffwui.php;h=e19e9a4b11597c8456ba91f9dd5a2c9399817d58;hp=4bcfed5513ae07cc14624e34daac0a8e76ef4963;hb=cb45585d92144a65ff25bc1109cde4cbf60913de;hpb=c6a0d901040bc483d89d8596661dcf0d5a48ffb2 diff --git a/libcbfwr/fwui.php b/libcbfwr/fwui.php index 4bcfed5..e19e9a4 100644 --- a/libcbfwr/fwui.php +++ b/libcbfwr/fwui.php @@ -58,15 +58,8 @@ function CBFWZonesPage($urls) case "delete": $zonetodelete = $urls[2]; - - $conf = $comms->getConfig(3); - $changes = $conf["status"]; - if($changes == "nochange") $conf["status"] = 1; - else $conf["status"] = $changes + 1; - $cnum = $conf["status"]; - - $conf[$cnum]["delete"] = "zone $zonetodelete"; - $comms->putConfig($conf, 3); + + addWebUserChange("delete zone name $zonetodelete"); header("Location: $BASE_URL/zones"); break; @@ -74,21 +67,16 @@ function CBFWZonesPage($urls) case "add": // UGLY - $cnum = 0; $nametoadd = $_REQUEST["toadd"]; $desc = $_REQUEST["desc"]; + $descbit = ""; if($desc != "") $descbit = " # $desc"; if($nametoadd == "" || $nametoadd == null) { return; } - $conf = $comms->getConfig(3); - $changes = $conf["status"]; - if($changes == "nochange") $conf["status"] = 1; - else $conf["status"] = $changes + 1; - $cnum = $conf["status"]; - $conf[$cnum]["add"] = "zone $nametoadd$descbit"; - $comms->putConfig($conf, 3); + + addWebUserChange("zone name $nametoadd $descbit"); header("Location: $BASE_URL/zones"); break; @@ -122,6 +110,28 @@ function CBFWZonesEditPage($urls) echo ""; } +function addWebUserChange($change) +{ + $comms = new Comms(); + $myconf = new Config(); + + $conf = $comms->getConfig(3); + + if(!isset($conf["status"])) { + $conf["status"] = "nochange"; + } + + $changes = $conf["status"]; + if($changes == "nochange") $conf["status"] = 1; + else $conf["status"] = $changes + 1; + $cnum = $conf["status"]; + + $conf["changes"][$cnum] = "$change"; + $comms->putConfig($conf, 3); + +} + +// TODO: we need to really sit and think about this one function getWebUserConfig() { $comms = new Comms(); @@ -140,13 +150,20 @@ function getWebUserConfig() } // it did not, do a new merge and cache - $config = $myconf->mergeConfig($comms->getConfig(), $conf2); + // TODO: need to do this part + $config = $comms->getConfig(); $reconfig = $config; + $myconf->setConfig($config); + if(isset($conf2["changes"])) foreach($conf2["changes"] as $key => $var) { + error_log("Adding config line $key, $var"); + $myconf->addConfigLine($var); + } + $reconfig = $myconf->getConfig(); $reconfig["status"] = $conf2["status"]; error_log("put pre-cache config"); $comms->putConfig($reconfig, 5); - return $config; + return $reconfig; } function CBFWZonesPageDisplay() @@ -175,179 +192,209 @@ function CBFWZonesPageDisplay() } -function CBFWInterfacesPage($urls) +function CBFWRoutingPage($urls) { if(isset($urls[1])) { switch($urls[1]) { case "edit": - CBFWpageBuilder(null, "CBFWInterfacesPageEdit", null, null, $urls[2]); + CBFWpageBuilder(null, "CBFWRoutingPageEdit", null, null, $urls[2]); break; case "change": - CBFWInterfacesChange(); + CBFWRoutingChange(); break; default: - CBFWpageBuilder(null, "CBFWInterfacesPageDisplay"); + CBFWpageBuilder(null, "CBFWRoutingPageDisplay"); } } else { error_log("main interface page"); - CBFWpageBuilder(null, "CBFWInterfacesPageDisplay"); + CBFWpageBuilder(null, "CBFWRoutingPageDisplay"); } + } -function CBFWInterfacesChange() +function CBFWRoutingPageDisplay() { - global $BASE_URL, $MENU_ITEMS; - $comms = new Comms(); - - $comms->sendMessage("interface eth0 changename poof"); - header("Location: $BASE_URL/interfaces"); + echo "

Routing

"; } -function CBFWInterfacesPageEdit($urls) +function CBFWObjectsPage($urls) { - global $BASE_URL, $MENU_ITEMS; - $interface = $urls; - - echo "

Edit Interface $interface


"; - echo "
"; - echo ""; - echo ""; - echo ""; - echo ""; - echo ""; - echo ""; - echo ""; - echo ""; - echo "
Name
HW Address
Zone
IPv4 Address
IPv6 Address
Speed
Duplex
"; - echo "
"; - //echo "Back"; - echo "
"; + $comms = new Comms(); + + $config = $comms->getConfig(); + + CBFWpageBuilder(null, "CBFWObjectsDisplay"); } -function CBFWInterfacesPageDisplay() +function CBFWObjectsDisplay() { global $BASE_URL, $MENU_ITEMS; - $comms = new Comms(); + $config = getWebUserConfig(); - $config = $comms->getConfig(0); - $boot_config = $comms->getConfig(1); + echo "

Objects

"; - // now build an interface table - $table = array(); - foreach($boot_config["hardware"]["netdev"] as $key=>$val) { - $ename = $key; - $table[$key]["realname"] = $val["name"]; - $table[$key]["name"] = $val["name"]; - - - // driver - if(isset($val["driver"])) $table[$key]["type"] = $val["driver"]; - else $table[$key]["type"] = "Unknown"; - - // hw address - if(isset($val["hwaddress"])) $table[$key]["hwaddress"] = $val["hwaddress"]; - - // current mtu - if(isset($val["mtu"])) $table[$key]["mtu"] = $val["mtu"]; + if(isset($config["objects"])) { + echo ""; + echo ""; + echo "
NetworksHostsServicesNetwork GroupsHost GroupsService Groups
"; + foreach($config["objects"] as $key => $var) { + } + } else { + echo "No objects set\n"; } - foreach($config["hardware"]["netdev"] as $key=>$val) { - $ename = $key; - if(isset($config["interface"]["$key"]["name"])) $table[$key]["name"] = $config["interface"]["$key"]["name"]; - $table[$key]["address4"] = null; - $table[$key]["address6"] = null; - - if(isset($config["interface"][$table[$key]["name"]]["address4"])) { - $table[$key]["address4"] = $config["interface"][$table[$key]["name"]]["address4"]; - } - - if(isset($config["interface"][$table[$key]["name"]]["address6"])) { - $table[$key]["address6"] = $config["interface"][$table[$key]["name"]]["address6"]; - } - - if(isset($config["interface"][$table[$key]["name"]]["mtu"])) { - $table[$key]["mtu"] = $config["interface"][$table[$key]["name"]]["mtu"]; - } else { - $table[$key]["mtu"] = "1500"; // TODO: this needs to actually come from somewhere - } - - if(isset($config["interface"][$table[$key]["name"]]["speed"])) { - $table[$key]["speed"] = $config["interface"][$table[$key]["name"]]["speed"]; - } else { - $table[$key]["speed"] = null; - } + echo "
"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + + + echo "
"; + echo "

Create Network


"; + echo "
"; + echo "Name
"; + echo "IPv4 /
"; + echo "IPv6 /
"; + echo ""; + echo "
"; + echo "
"; + echo "

Create Host


"; + echo "
"; + echo "Name
"; + echo "IPv4
"; + echo "IPv6
"; + echo ""; + echo "
"; + echo "
"; + echo "

Service


"; + echo "
"; + echo "Name
"; + echo "Port "; + echo "
"; + echo ""; + echo "
"; + echo "
"; + echo "

Network Group

"; + echo "
"; + echo "Name
"; + echo "
"; + echo "
"; + echo "

Host Group

"; + echo "
"; + echo "Name
"; + echo "
"; + echo "
"; + echo "

Service Group

"; + echo "
"; + echo "Name
"; + echo "
"; + echo "
"; + +} - if(isset($config["interface"][$table[$key]["name"]]["duplex"])) { - $table[$key]["duplex"] = $config["interface"][$table[$key]["name"]]["duplex"]; - } else { - $table[$key]["duplex"] = null; - } - - if(isset($config["interface"][$table[$key]["name"]]["zone"])) { - $table[$key]["zone"] = $config["interface"][$table[$key]["name"]]["zone"]; - } else { - $table[$key]["zone"] = null; +function CBFWChangesPage($urls) +{ + global $BASE_URL, $MENU_ITEMS; + + if(isset($urls[1])) { + switch($urls[1]) { + case "show": + CBFWpageBuilder(null, "CBFWChangesDisplay"); + break; + case "delete": + $delete = $urls[2]; + error_log("would delete change $delete"); + header("Location: $BASE_URL/changes/show"); + break; } } +} + +function CBFWChangesDisplay() +{ + global $BASE_URL, $MENU_ITEMS; + $comms = new Comms(); + $config = $comms->getConfig(3); - echo ""; - foreach($table as $key =>$val) { - if($val["realname"] == $val["name"]) $name = $val["name"]; - else $name = $val["name"]." (".$val["realname"].")"; - - // zone - if($val["zone"] == null) $zone = "-"; - else $zone = $val["zone"]; - - // mtu - $mtu = $val["mtu"]; - - // driver type - $type = $val["type"]; - - // hardware address - $mac = $val["hwaddress"]; - - // speed and duplex - if($val["duplex"] == null) $dup = "default"; - else $dup = $val["duplex"]; - - if($val["speed"] == null) $spd = "default"; - else $spd = $val["speed"]; - - $spanddu = "$spd/$dup"; - - // network address - if($val["address4"]!=null && $val["address6"]!=null) { - $address = $val["address4"]."
".$val["address6"]; - } else if($val["address4"] != null) { - $address = $val["address4"]; - } else if($val["address6"] != null) { - $address = $val["address6"]; - } else { - $address = "-"; + echo "

Changes

"; + echo "This page shows the changes on the web from the currently running configuration
"; + if($config["status"] == "nochange") { + echo "There are currently no changes from the running configuraiton."; + } else { + echo "
DeviceZoneTypeMAC AddressAddressMTUSpeed/DuplexControl
"; + echo ""; + foreach($config["changes"] as $key => $var) { + echo ""; } - - echo ""; + echo "
Change NoChangeControl
$key$varDelete
$name$zone$type$mac$address$mtu$spandduEdit
"; } - echo ""; } -function CBFWObjectsPage() +function CBFWRulesPage() { $comms = new Comms(); $config = $comms->getConfig(); } -function CBFWRulesPage() +function CBFWAdminPage($urls) { $comms = new Comms(); $config = $comms->getConfig(); + + CBFWpageBuilder(null, "CBFWAdminDisplay"); +} + +function CBFWAdminDisplay() +{ +?> +

Administration

+ + + + + +
+

Users

+ + + +
UsernameDescriptionEnabled?
AdminTwattleYes
+
+

Add User

+
+Username
+Password
+Description
+
+
+
+

Network Access

+ + + +
FromInterfaceType
Anytwaddlehttp,https,ssh
+
+

Add Access

+
+From
+Interface +Protocols HTTP HTTPS SSH
+
+
+
+