| <?php |
| /******************************************************************************* |
| * Copyright (c) 2015, 2016 Eclipse Foundation and others. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/epl-v10.html |
| * |
| * Contributors: |
| * Eric Poirier (Eclipse Foundation) - initial API and implementation |
| * Christopher Guindon (Eclipse Foundation) |
| *******************************************************************************/ |
| if(!is_a($this, 'Firewall') || !$this->Friend->checkUserIsWebmaster()){ |
| exit(); |
| } |
| $recent_blocks = $this->getRecentBlocks(); |
| $search_results = $this->getSearchResults(); |
| ?> |
| |
| <!-- Nav tabs --> |
| <ul class="nav nav-tabs" role="tablist"> |
| <li role="presentation" class="active"> |
| <a href="#firewall-recent-block" aria-controls="firewall-recent-block" role="tab" data-toggle="tab">Recent Blocks</a> |
| </li> |
| <li role="presentation"> |
| <a href="#firewall-insert-block" aria-controls="firewall-insert-block" role="tab" data-toggle="tab">Insert a Block</a> |
| </li> |
| <li role="presentation"> |
| <a href="#firewall-search-block" aria-controls="firewall-search-block" role="tab" data-toggle="tab">Search</a> |
| </li> |
| </ul> |
| |
| <!-- Tab panes --> |
| <div class="tab-content"> |
| <div role="tabpanel" class="tab-pane active" id="firewall-recent-block"> |
| <p><strong>Show last:</strong></p> |
| <form action="<?php print $this->getFormActionUrl();?>#firewall-recent-block" method="POST"> |
| <input type="hidden" name="form_name" value="webmaster-firewall"> |
| |
| <div class="form-group"> |
| <label class="radio-inline"> |
| <input type="radio" name="period" value="12"> 12 hours |
| </label> |
| <label class="radio-inline"> |
| <input type="radio" name="period" value="24"> 24 hours |
| </label> |
| <label class="radio-inline"> |
| <input type="radio" name="period" value="48"> 48 hours |
| </label> |
| <label class="radio-inline"> |
| <input type="radio" name="period" value="72"> 72 hours |
| </label> |
| </div> |
| <input type="hidden" name="state" value="change_recent_blocks_period"> |
| <input type="submit" class="btn btn-primary" value="Change"> |
| </form> |
| <?php if (!empty($recent_blocks)):?> |
| <hr> |
| <?php if (is_array($recent_blocks)): ?> |
| <table class="table table-stripped"> |
| <thead> |
| <tr> |
| <th>Subnet</th> |
| <th>Port</th> |
| <th>UserID</th> |
| <th>Reporting Node</th> |
| <th>Inserted</th> |
| <th>Expires</th> |
| <th>Delete</th> |
| </tr> |
| </thead> |
| <tbody> |
| |
| <?php foreach ($recent_blocks as $recent_block): ?> |
| <tr> |
| <td><?php print $recent_block['Subnet']; ?></td> |
| <td><?php print $recent_block['Port']; ?></td> |
| <td><?php print $recent_block['UserID']; ?></td> |
| <td><?php print $recent_block['VictimNode']; ?></td> |
| <td><?php print $recent_block['AttackDateTime']; ?></td> |
| <td><?php print $recent_block['ExpiryDateTime']; ?></td> |
| <td> |
| <form action="<?php print $this->getFormActionUrl();?>" method="POST"> |
| <input type="hidden" name="form_name" value="webmaster-firewall"> |
| <input type="hidden" name="state" value="delete_block"> |
| <input type="hidden" name="subnet_to_delete" value="<?php print $recent_block['Subnet']; ?>"> |
| <input type="submit" class="btn btn-default btn-xs" value="DELETE"> |
| </form> |
| </td> |
| </tr> |
| <?php endforeach; ?> |
| </tbody> |
| </table> |
| <?php else: ?> |
| <tr> |
| <td colspan="7"><?php print $recent_blocks; ?></td> |
| </tr> |
| <?php endif; ?> |
| <?php endif; ?> |
| </div> |
| |
| <div role="tabpanel" class="tab-pane" id="firewall-insert-block"> |
| <form class="form-horizontal" method="POST" action="<?php print $this->getFormActionUrl();?>#firewall-insert-block"> |
| <input type="hidden" name="form_name" value="webmaster-firewall"> |
| <div class="form-group"> |
| <label for="inputEmail3" class="col-sm-2 control-label">IP:<span class="required">*</span></label> |
| <div class="col-sm-10"> |
| <input type="text" class="form-control" name="insert_block_ip" placeholder="IP Address"> |
| </div> |
| </div> |
| <div class="form-group"> |
| <label for="inputPassword3" class="col-sm-2 control-label">Port:</label> |
| <div class="col-sm-10"> |
| <input type="text" class="form-control" name="insert_block_port" placeholder="Port"> |
| </div> |
| </div> |
| <div class="form-group"> |
| <div class="col-sm-offset-2 col-sm-10"> |
| <div class="radio"> |
| <label><input type="radio" name="insert_block_time" value="1_day"> Block for 24 hours</label><br> |
| <label><input type="radio" name="insert_block_time" value="6_month"> Block for 6 months</label><br> |
| <label><input type="radio" name="insert_block_time" value="1_year"> Block for 1 year</label> |
| </div> |
| </div> |
| </div> |
| <div class="form-group"> |
| <div class="col-sm-offset-2 col-sm-10"> |
| <input type="hidden" name="state" value="insert_block"> |
| <button type="submit" class="btn btn-primary">Block</button> |
| </div> |
| </div> |
| </form> |
| </div> |
| |
| <div role="tabpanel" class="tab-pane" id="firewall-search-block"> |
| <form method="POST" action="<?php print $this->getFormActionUrl();?>#firewall-search-block"> |
| <input type="hidden" name="form_name" value="webmaster-firewall"> |
| <div class="form-group"> |
| <input type="search" placeholder="Search for IP/Subnet" name="search_block_ip" class="form-control"> |
| </div> |
| <input type="hidden" name="state" value="search_block"> |
| <input type="submit" class="btn btn-primary"> |
| </form> |
| <?php if (!empty($search_results)): ?> |
| <hr> |
| <h3>Search Results</h3> |
| <table class="table"> |
| <thead> |
| <tr> |
| <th>Subnet</th> |
| <th>Port</th> |
| <th>UserID</th> |
| <th>VictimNode</th> |
| <th>AttackDateTime</th> |
| <th>ExpiryDateTime</th> |
| </tr> |
| </thead> |
| <tbody> |
| <?php foreach ($search_results as $result): ?> |
| <tr> |
| <?php if (!empty($result['no_results'])): ?> |
| <td colspan="5"><?php print $result['no_results']; ?></td> |
| <?php else: ?> |
| <td><?php print $result['Subnet']; ?></td> |
| <td><?php print $result['Port']; ?></td> |
| <td><?php print $result['UserID']; ?></td> |
| <td><?php print $result['VictimNode']; ?></td> |
| <td><?php print $result['AttackDateTime']; ?></td> |
| <td><?php print $result['ExpiryDateTime']; ?></td> |
| <?php endif; ?> |
| </tr> |
| <?php endforeach; ?> |
| </tbody> |
| </table> |
| <?php endif; ?> |
| </div> |
| </div> |