5d78f384d4b44258ed2e42118becb649e3a649a1
[CBFWR.git] / libcbfwr / fwui.php
1 <?php
2
3 function CBFWZonesPage($urls)
4 {
5         global $BASE_URL, $MENU_ITEMS;
6         $comms = new Comms();
7         
8         if(isset($urls[1])) {
9                 switch($urls[1]) {
10                         case "edit":
11                                 break;
12                         case "change":
13                                 break;
14                         case "add":
15                                 $nametoadd = $_REQUEST["toadd"];
16                                 $comms->sendMessage("zone add $nametoadd");
17                                 //if($_REQUEST["desc"] != "") $comms->sendMessage("zone ")
18                                 header("Location: $BASE_URL/zones");
19                                 break;
20                         default:
21                                 CBFWpageBuilder(null, "CBFWZonesPageDisplay");
22                 }
23         } else {
24                 CBFWpageBuilder(null, "CBFWZonesPageDisplay");
25         }
26 }
27
28 function CBFWZonesPageDisplay()
29 {
30         global $BASE_URL, $MENU_ITEMS;
31         
32         $comms = new Comms();
33         
34         $config = $comms->getConfig();
35
36         echo "<h2>Zones</h2>";
37         echo "<table border=\"1\"><tr><th>Zone</th><th>Interfaces</th><th>Edit</th></tr>";
38         foreach($config["zone"] as $key => $var) {
39                 $name = $key;
40                 $url = "<a href=\"$BASE_URL/zones/edit/$name\">Edit</a>";
41                 echo "<tr><td>$name</td><td>...</td><td>$url</td></tr>";
42         }
43                 
44         echo "</table><br>";
45         echo "<form method=\"post\" action=\"$BASE_URL/zones/add\">";
46         echo "<hr><h3>Add Zone</h3><br>";
47         echo "Name: <input type=\"text\" name=\"toadd\"><br>";
48         echo "Description: <input type=\"text\" name=\"desc\"><br>";
49         echo "<input type=\"submit\" name=\"Add\" value=\"Add\">";
50         echo "</form>";
51         
52 }
53
54 function CBFWInterfacesPage($urls)
55 {
56         if(isset($urls[1])) {
57                 switch($urls[1]) {
58                         case "edit":
59                                 CBFWpageBuilder(null, "CBFWInterfacesPageEdit", null, null, $urls[2]);
60                                 break;
61                         case "change":
62                                 CBFWInterfacesChange();
63                                 break;
64                         default:
65                                 CBFWpageBuilder(null, "CBFWInterfacesPageDisplay");
66                 }
67         } else {
68                 error_log("main interface page");
69                 CBFWpageBuilder(null, "CBFWInterfacesPageDisplay");
70         }
71 }
72
73 function CBFWInterfacesChange()
74 {
75         global $BASE_URL, $MENU_ITEMS;
76         $comms = new Comms();
77         
78         $comms->sendMessage("interface eth0 changename poof");
79         header("Location: $BASE_URL/interfaces");
80 }
81
82 function CBFWInterfacesPageEdit($urls)
83 {
84         global $BASE_URL, $MENU_ITEMS;
85         $interface = $urls;
86         
87         echo "<h3>Edit Interface $interface</h3><br>";
88         echo "<form method=\"post\" action=\"$BASE_URL/interfaces/change/$interface\">";
89         echo "<table>";
90         echo "<tr><td>Name</td><td><input type=\"text\" name=\"name\"></td></tr>";
91         echo "<tr><td>HW Address</td><td><input type=\"text\" name=\"hwaddr\"></td></tr>";
92         echo "<tr><td>Zone</td><td><input type=\"text\" name=\"zone\"></td></tr>";
93         echo "<tr><td>IPv4 Address</td><td><input type=\"text\" name=\"ipv4addr\"></td></tr>";
94         echo "<tr><td>IPv6 Address</td><td><input type=\"text\" name=\"ipv6addr\"></td></tr>";
95         echo "<tr><td>Speed</td><td><input type=\"text\" name=\"speed\"></td></tr>";
96         echo "<tr><td>Duplex</td><td><input type=\"text\" name=\"duplex\"></td></tr>";
97         echo "</table>";
98         echo "<input type=\"submit\" name=\"Change\" value=\"Change\"><br>";
99         //echo "<a href=\"$BASE_URL/interfaces/\">Back</a>";
100         echo "</form>";
101 }
102
103 function CBFWInterfacesPageDisplay()
104 {
105         global $BASE_URL, $MENU_ITEMS;
106         $comms = new Comms();
107         
108         $config = $comms->getConfig(0);
109         $boot_config = $comms->getConfig(1);
110         
111         // now build an interface table
112         $table = array();
113         foreach($boot_config["hardware"]["netdev"] as $key=>$val) {
114                 $ename = $key;
115                 $table[$key]["realname"] = $val["name"];
116                 $table[$key]["name"] = $val["name"];
117                 
118                 
119                 // driver
120                 if(isset($val["driver"])) $table[$key]["type"] = $val["driver"];
121                 else $table[$key]["type"] = "Unknown";
122                 
123                 // hw address
124                 if(isset($val["hwaddress"])) $table[$key]["hwaddress"] = $val["hwaddress"];
125                 
126                 // current mtu
127                 if(isset($val["mtu"])) $table[$key]["mtu"] = $val["mtu"];
128         }
129         
130         foreach($config["hardware"]["netdev"] as $key=>$val) {
131                 $ename = $key;
132                 if(isset($config["interface"]["$key"]["name"])) $table[$key]["name"] = $config["interface"]["$key"]["name"];
133                 $table[$key]["address4"] = null;
134                 $table[$key]["address6"] = null;
135                 
136                 if(isset($config["interface"][$table[$key]["name"]]["address4"])) {
137                         $table[$key]["address4"] = $config["interface"][$table[$key]["name"]]["address4"];
138                 }
139                 
140                 if(isset($config["interface"][$table[$key]["name"]]["address6"])) {
141                         $table[$key]["address6"] = $config["interface"][$table[$key]["name"]]["address6"];
142                 }
143                 
144                 if(isset($config["interface"][$table[$key]["name"]]["mtu"])) {
145                         $table[$key]["mtu"] = $config["interface"][$table[$key]["name"]]["mtu"];
146                 } else {
147                         $table[$key]["mtu"] = "1500"; // TODO: this needs to actually come from somewhere
148                 }
149                 
150                 if(isset($config["interface"][$table[$key]["name"]]["speed"])) {
151                         $table[$key]["speed"] = $config["interface"][$table[$key]["name"]]["speed"];
152                 } else {
153                         $table[$key]["speed"] = null;
154                 }
155
156                 if(isset($config["interface"][$table[$key]["name"]]["duplex"])) {
157                         $table[$key]["duplex"] = $config["interface"][$table[$key]["name"]]["duplex"];
158                 } else {
159                         $table[$key]["duplex"] = null;
160                 }
161                 
162                 if(isset($config["interface"][$table[$key]["name"]]["zone"])) {
163                         $table[$key]["zone"] = $config["interface"][$table[$key]["name"]]["zone"];
164                 } else {
165                         $table[$key]["zone"] = null;
166                 }
167         }
168         
169         
170         echo "<table border=\"1\"><th>Device</th><th>Zone</th><th>Type</th><th>MAC Address</th><th>Address</th><th>MTU</th><th>Speed/Duplex</th><th>Control</th></tr>";
171         foreach($table as $key =>$val) {
172                 if($val["realname"] == $val["name"]) $name = $val["name"];
173                 else $name = $val["name"]." (".$val["realname"].")";
174                 
175                 // zone
176                 if($val["zone"] == null) $zone = "-";
177                 else $zone = $val["zone"];
178                 
179                 // mtu
180                 $mtu = $val["mtu"];
181                 
182                 // driver type
183                 $type = $val["type"];
184                 
185                 // hardware address
186                 $mac = $val["hwaddress"];
187                 
188                 // speed and duplex
189                 if($val["duplex"] == null) $dup = "default";
190                 else $dup = $val["duplex"];
191                 
192                 if($val["speed"] == null) $spd = "default";
193                 else $spd = $val["speed"];
194                 
195                 $spanddu = "$spd/$dup";
196                 
197                 // network address
198                 if($val["address4"]!=null && $val["address6"]!=null) {
199                         $address = $val["address4"]."<br>".$val["address6"];
200                 } else if($val["address4"] != null) {
201                         $address = $val["address4"];
202                 } else if($val["address6"] != null) {
203                         $address = $val["address6"];
204                 } else {
205                         $address = "-";
206                 }
207                 
208                 echo "<tr><th>$name</th><td>$zone</td><td>$type</td><td>$mac</td><td>$address</td><td>$mtu</td><td>$spanddu</td><td><a href=\"$BASE_URL/interfaces/edit/".$val["realname"]."\">Edit</a></td></tr>";
209         }
210         echo "</table>";
211 }
212
213 function CBFWObjectsPage()
214 {
215         $comms = new Comms();
216         
217         $config = $comms->getConfig();
218 }
219
220 function CBFWRulesPage()
221 {
222         $comms = new Comms();
223         
224         $config = $comms->getConfig();
225 }
226
227 function findUrl($url_s)
228 {
229         global $URL_HANDLERS;
230         
231         foreach($URL_HANDLERS as $key => $val) {
232                 
233         }
234 }
235 ?>