moved interfaces ui into a seperate php file.
[CBFWR.git] / libcbfwr / web.php
index 87e7bf4..289fe19 100644 (file)
@@ -5,6 +5,8 @@ $MENU_ITEMS["20_Objects"]["link"] = "$BASE_URL/objects";
 $MENU_ITEMS["20_Objects"]["name"] = "Objects"; 
 $MENU_ITEMS["30_Rules"]["link"] = "$BASE_URL/rules"; 
 $MENU_ITEMS["30_Rules"]["name"] = "Rules"; 
+$MENU_ITEMS["15_Routes"]["link"] = "$BASE_URL/routing"; 
+$MENU_ITEMS["15_Routes"]["name"] = "Routing"; 
 $MENU_ITEMS["10_Interfaces"]["link"] = "$BASE_URL/interfaces"; 
 $MENU_ITEMS["10_Interfaces"]["name"] = "Interfaces"; 
 $MENU_ITEMS["05_Admin"]["link"] = "$BASE_URL/admin"; 
@@ -55,13 +57,19 @@ class CBFWWeb {
                                        CBFWInterfacesPage($url_s);
                                        break;
                                case "objects":
-                                       $bodyFunction = "CBFWObjectsPage";
+                                       CBFWObjectsPage($url_s);
+                                       break;
+                               case "routing":
+                                       CBFWRoutingPage($url_s);
                                        break;
                                case "rules":
                                        $bodyFunction = "CBFWRulesPage";
                                        break;
+                               case "changes":
+                                       CBFWChangesPage($url_s);
+                                       break;
                                case "admin":
-                                       $bodyFunction = "CBFWAdminPage";
+                                       CBFWAdminPage($url_s);
                                        break;
                                default:
                                        $bodyFunction = findUrl($url_s);
@@ -74,22 +82,27 @@ class CBFWWeb {
 }
 
 
-function CBFWAdminPage($urls)
-{
-       echo "im an admin page";
-}
-
 function CBFBuildHomePage($urls)
 {
        echo "Must remember this, gotta rules could apply to multiple zones not just one<br>";
        echo "i.e.: add rule reject from object/host/hostname to address6/2003::123 in zones Zone/zonename/rulenum Zone/zonename/rulenum";
-       $conf = new Config();
-       $conf->loadConfig();
        
+       $comms = new Comms();
+       
+       
+       CBFWAddMessage("1", "i am a message");
        echo "<pre>";
-       print_r($conf->getConfig());
+       print_r($comms->getConfig(0));
+       echo "\n\n\n";
+       print_r($comms->getConfig(1));
        echo "\n\n\n";
-       print_r($conf->getBootConfig());
+       print_r($comms->getConfig(2));
+       echo "\n\n\n";
+       print_r($comms->getConfig(3));
+       echo "\n\n\n";
+       print_r($comms->getConfig(4));
+       echo "\n\n\n";
+       print_r($comms->getConfig(5));
        echo "</pre>";
        
 }
@@ -121,12 +134,47 @@ function gcam($m, $s)
 
 function CBFWAddMessage($messagelev, $message)
 {
+       $comms = new Comms();
+       $msgs = $comms->getConfig(6);
+       $cnum = 0;
+       if($msgs != false) {
+               foreach($msgs as $key=>$val) {
+                       if($key >= $cnum) $cnum = $key+1;
+               }
+       } else {
+               $msgs = array();
+       }
+       $msgs[$cnum]["timestamp"] = time();
+       $msgs[$cnum]["level"] = $messagelev;
+       $msgs[$cnum]["message"] = $message;
        
+       $comms->putConfig($msgs, 6);
 }
 
 function CBFWMessageBuilder()
 {
-
+       // show only 10 messages on this page
+       $maxshow = 6;
+       
+       $comms = new Comms();
+       
+       $msgs = $comms->getConfig(6);
+       if($msgs != false) {
+               krsort($msgs);
+       }
+       $show = 0;
+       if(count($msgs) > 0) {
+               echo "<table>";
+               foreach($msgs as $key => $val) {
+                       $datetime = $val["timestamp"];
+                       $sev = $val["level"];
+                       $message = $val["message"];
+                       echo "<tr><td>$datetime</td><td>$sev</td><td>$message</td></tr>";
+                       $show++;
+                       if($show >= $maxshow) break;
+               }
+               echo "</table>";
+       }
 }
 
 function CBFWpageBuilder($bodyClass, $bodyFunction, $bodycontent=null, $title="CBFW", $bodyfunctiondata=null)
@@ -173,9 +221,11 @@ function CBFWpageBuilder($bodyClass, $bodyFunction, $bodycontent=null, $title="C
        
        // page top
        echo "<h1>CBFW</h1><br>";
-       echo "<table><tr><td>";
+       echo "<table width=\"100%\"><tr width=\"100%\"><td>";
        CBFWMessageBuilder();
-       echo "<td></tr><tr><td>";
+       echo "<td><td align=\"right\">";
+       CBFWConfigStatus();
+       echo "</td></tr><tr><td>";
        
        // menu, then body
        echo "<table><tr><td>";
@@ -226,6 +276,36 @@ function cbfw_getLastSeen($ip, $data)
        
 }
 
+function CBFWConfigStatus()
+{
+       global $WEB_ROOT_FS, $BASE_URL;
+       
+       $comms = new Comms();
+       
+       $conf0 = $comms->getConfig(0);
+       $conf1 = $comms->getConfig(2);
+       $conf2 = $comms->getConfig(3);
+       
+       if($conf1["status"] == "nochange") {
+               $saved = "Current";
+               $running = "Current";
+       } else {
+               $saved = "Old";
+               $running = "Current";           
+       }
+       if($conf2["status"] == "nochange") {
+               $client = "Current";
+       } else {
+               $ch = $conf2["status"];
+               $client = "$ch Changes <a href=\"$BASE_URL/changes/show\">Show</a>";
+       }
+       
+       
+       echo "Saved Config: $saved<br>";
+       echo "Running Config: $running<br>";
+       echo "Client Config: $client<br>";
+}
+
 function cbfw_tdiffToAgo($time_in_sec)
 {
        $tdiff = $time_in_sec;