decadf2dc393e704177cbac262de7160cfa0dbb4
[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         
127         foreach($config["hardware"]["netdev"] as $key=>$val) {
128                 $ename = $key;
129                 if(isset($config["interface"]["$key"]["name"])) $table[$key]["name"] = $config["interface"]["$key"]["name"];
130                 $table[$key]["address4"] = null;
131                 $table[$key]["address6"] = null;
132                 
133                 if(isset($config["interface"][$table[$key]["name"]]["address4"])) {
134                         $table[$key]["address4"] = $config["interface"][$table[$key]["name"]]["address4"];
135                 }
136                 
137                 if(isset($config["interface"][$table[$key]["name"]]["address6"])) {
138                         $table[$key]["address6"] = $config["interface"][$table[$key]["name"]]["address6"];
139                 }
140                 
141                 if(isset($config["interface"][$table[$key]["name"]]["mtu"])) {
142                         $table[$key]["mtu"] = $config["interface"][$table[$key]["name"]]["mtu"];
143                 } else {
144                         $table[$key]["mtu"] = "1500"; // TODO: this needs to actually come from somewhere
145                 }
146                 
147                 if(isset($config["interface"][$table[$key]["name"]]["speed"])) {
148                         $table[$key]["speed"] = $config["interface"][$table[$key]["name"]]["speed"];
149                 } else {
150                         $table[$key]["speed"] = null;
151                 }
152
153                 if(isset($config["interface"][$table[$key]["name"]]["duplex"])) {
154                         $table[$key]["duplex"] = $config["interface"][$table[$key]["name"]]["duplex"];
155                 } else {
156                         $table[$key]["duplex"] = null;
157                 }
158                 
159                 if(isset($config["interface"][$table[$key]["name"]]["zone"])) {
160                         $table[$key]["zone"] = $config["interface"][$table[$key]["name"]]["zone"];
161                 } else {
162                         $table[$key]["zone"] = null;
163                 }
164         }
165         
166         
167         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>";
168         foreach($table as $key =>$val) {
169                 if($val["realname"] == $val["name"]) $name = $val["name"];
170                 else $name = $val["name"]." (".$val["realname"].")";
171                 
172                 // zone
173                 if($val["zone"] == null) $zone = "-";
174                 else $zone = $val["zone"];
175                 
176                 // mtu
177                 $mtu = $val["mtu"];
178                 
179                 // driver type
180                 $type = $val["type"];
181                 
182                 // hardware address
183                 $mac = $val["hwaddress"];
184                 
185                 // speed and duplex
186                 if($val["duplex"] == null) $dup = "default";
187                 else $dup = $val["duplex"];
188                 
189                 if($val["speed"] == null) $spd = "default";
190                 else $spd = $val["speed"];
191                 
192                 $spanddu = "$spd/$dup";
193                 
194                 // network address
195                 if($val["address4"]!=null && $val["address6"]!=null) {
196                         $address = $val["address4"]."<br>".$val["address6"];
197                 } else if($val["address4"] != null) {
198                         $address = $val["address4"];
199                 } else if($val["address6"] != null) {
200                         $address = $val["address6"];
201                 } else {
202                         $address = "-";
203                 }
204                 
205                 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>";
206         }
207         echo "</table>";
208 }
209
210 function CBFWObjectsPage()
211 {
212         $comms = new Comms();
213         
214         $config = $comms->getConfig();
215 }
216
217 function CBFWRulesPage()
218 {
219         $comms = new Comms();
220         
221         $config = $comms->getConfig();
222 }
223
224 function findUrl($url_s)
225 {
226         global $URL_HANDLERS;
227         
228         foreach($URL_HANDLERS as $key => $val) {
229                 
230         }
231 }
232 ?>