<?php # Copyright(C) 2004-2006 INL # Written by Eric Leblond <regit@inl.fr> # Vincent Deffontaines <gryzor@inl.fr> # Jean Gillaux <jean@inl.fr> # Damien Boucard <damien.boucard AT inl.fr> # # $Id: action_menu.php 17927 2009-02-16 13:16:09Z haypo $ # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, version 3 of the License. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, see <http://www.gnu.org/licenses/>. require_once('menu.php'); require_once('file_function.php'); function actionMenu($ruleset) { $files=file_list(); echo '<div class="menu">'."\n"; if (!hasDescFile()) { actionDescMenu(); } else if ($ruleset) { actionMenuActiveRuleset($ruleset, $files); if ($ruleset->filename) { actionMenuFirewall($files, $ruleset); } else { echo "<div class='menucat'>\n"; echo _("You need to save the file before applying the rules.") ."\n"; echo '</div>'; } } else { actionMenuRulesets($files); actionMenuFirewall($files); } echo "</div>\n"; } function actionDescMenu() { echo '<p class="error">'._("The network definition is missing. That file is required to use NuFace.")."</h2>\n"; echo "<div class=\"level1\">\n"; echo '<form action="index.php" method="post">'; echo '<input type="hidden" name="generate_desc" value="1" />'; echo '<input type="submit" value="'._("Autodetect your networks").'"> '; echo '</form></div>'; echo "</div>\n"; } function openMenuH2($title) { echo '<h2>'.$title."</h2>\n"; echo "<div class=\"level1\">\n"; } function displayNewFirewallButton() { print "<form action=\"index.php\" method=POST>\n"; print "<table class=form> <tr><td> "; print "</td><td class='submit'>"; html_hidden('new_ruleset', '1'); html_submit(_('New ruleset'), Array('class' => 'button')); print "</td></tr>"; print "</table>"; print "</form>"; } function actionMenuRulesets($files) { openMenuH2(_("Rulesets")); echo "<div class='menucat'>\n"; displayNewFirewallButton(); echo "</div>"; if (1 <= count($files)) { echo "<div class='menucat'>\n"; display_openfile_menu($files); echo "</div>"; } echo "<div class='menucat'>\n"; echo '<form enctype="multipart/form-data" action="index.php" method="post">'; html_hidden('upload_file', 'up'); html_hidden('MAX_FILE_SIZE', '300000'); echo '<table class="form"><tr><td>'; echo '<input name="userfile" type="file">'; echo '</td><td class="submit">'; html_submit(_("Import")); echo '</td></tr></table>'; echo '</form></div>'; if (1 <= count($files)) { echo "<div class='menucat'>\n"; echo "<form onsubmit=\"return confirm('"._('Confirm deletion')."');\" action=\"index.php\">"; echo '<table class="form"><tr><td>'; select_rulesets($files, 'delete_file'); echo '</td><td class="submit">'; html_submit(_('Delete'), Array('class' => 'button')); echo '</td></tr></table>'; echo "</form></div>"; } echo '</div>'; } function actionMenuFirewall($files, $ruleset=null) { global $network_desc_file, $support_duplication, $nufw_firewall; if (!$files) return; openMenuH2(_('Firewall rules')); if ($ruleset) { if ($support_duplication) { $msg = _('Save, propagate and apply rules'); } else { $msg = _('Save and apply rules'); } } else { if ($support_duplication) { $msg = _('Propagate and apply rules'); } else { $msg = _('Apply rules'); } } echo "<div class='menucat'>\n"; echo '<form action="index.php" method="post">'; waiting_panel(); echo '<table class="form"><tr>'; echo '<td>'; html_hidden('generate', '1'); if ($ruleset) { html_hidden('used_file', basename($ruleset->filename)); html_hidden('save_ruleset', '1'); } else { select_rulesets($files, 'used_file', getHttp('used_file')); } if ($nufw_firewall) { if (!$ruleset) { echo '<br>'; } echo '<input type="checkbox" name="with_nufw"'; if (getHttpCheckbox('with_nufw', true)) echo ' checked="checked" '; echo ' id="firewall_with_nufw">'; echo '<label for="firewall_with_nufw">'._('With NuFW authentication').'</label>'; } echo '</td><td class="submit">'; html_submit($msg, Array('id' => 'panelbutton', 'class' => 'button')); echo '</td></tr></table>'; echo '</form></div>'; echo '</div>'; } function actionMenuActiveRuleset($ruleset, $files) { $name = $ruleset->name; $modified = $_SESSION['modified']; if ($modified) { $name = sprintf(_("%s (modified)"), $name); } $title = sprintf(_("Active ruleset: %s"), $name); openMenuH2($title); if ($ruleset->filename) { echo "<div class='menucat'>\n"; echo '<form action="index.php">'; html_hidden('output_file', basename($ruleset->filename)); html_submit(_('Save'), Array('class' => 'button')); echo "</form></div>\n"; } if ($modified) $msg = _('Close without saving'); else $msg = _('Close'); echo "<div class='menucat'>\n"; echo '<form action="index.php"'; if ($_SESSION['modified']) echo ' onsubmit="return confirm(\''._('Forget all changes?').'\');"'; echo ' method="post">'; html_hidden('forget', '1'); html_submit($msg, Array('class' => 'button')); echo "</form></div>"; echo "<div class='menucat'>\n"; echo '<form action="index.php">'; if ($ruleset->filename) { $text = _("Save copy as"); } else { $text = _("Save as"); } html_submit($text, Array('class' => 'button')); html_input_text('output_file'); echo "</form></div>\n"; echo "<div class='menucat'>\n"; echo "<form action=\"index.php\">"; echo "<input type=\"hidden\" name=\"xml_download\" value=\"1\">"; echo "<input type=\"submit\" value=\""._('Export')."\" class=\"button\">"; echo '</form></div>'; echo '</div>'; } ?>