diff --git a/cloud/urls.py b/cloud/urls.py index 732ec29..863954c 100644 --- a/cloud/urls.py +++ b/cloud/urls.py @@ -102,4 +102,5 @@ urlpatterns = patterns('', url(r'^firewall/firewalls/$', 'firewall_gui.views.list_firewalls'), url(r'^firewall/domains/$', 'firewall_gui.views.list_domains'), url(r'^firewall/records/$', 'firewall_gui.views.list_records'), + url(r'^firewall/blacklists/$', 'firewall_gui.views.list_blacklists'), ) diff --git a/firewall_gui/static/js/project.js b/firewall_gui/static/js/project.js index 88d5b67..546a8dc 100644 --- a/firewall_gui/static/js/project.js +++ b/firewall_gui/static/js/project.js @@ -5,7 +5,7 @@ * and the `/static/partials/rule-list.html` template will be used. * @type {Array} */ -var listControllers = ['rule', 'host', 'vlan', 'vlangroup', 'hostgroup', 'firewall', 'domain', 'record']; +var listControllers = ['rule', 'host', 'vlan', 'vlangroup', 'hostgroup', 'firewall', 'domain', 'record', 'blacklist']; var module = angular.module('firewall', []).config( ['$routeProvider', function($routeProvider) { diff --git a/firewall_gui/static/partials/blacklist-list.html b/firewall_gui/static/partials/blacklist-list.html new file mode 100644 index 0000000..732fd64 --- /dev/null +++ b/firewall_gui/static/partials/blacklist-list.html @@ -0,0 +1,38 @@ +<div class="navbar"> + <div class="navbar-inner"> + <div class="pagination pull-left"> + <ul> + <li ng-click="prevPage()" ng-class="{disabled: page == 1}"><a href>Előző</a></li> + <li ng-repeat="_page in pages" ng-click="setPage(_page)" ng-class="{active: _page == page}"> + <a href>{{_page}}</a> + </li> + <li ng-click="nextPage()" ng-class="{disabled: page == pages.length}"><a href>Next</a></li> + </ul> + </div> + <form class="navbar-search" style="margin: 20px"> + <input type="text" class="search-query" placeholder="Search" ng-model="query"> + </form> + </div> +</div> +<table class="table table-striped"> + <tr> + <th>Név</th> + <th>IPv4</th> + <th>Host</th> + <th>Indok</th> + <th>Horkantási üzenet (?)</th> + <th colspan="2">Típus</th> + </tr> + <tr ng-repeat="blacklist in getPage()"> + <td><a href="#/blacklists/{{blacklist.id}}">{{blacklist.name}}</a></td> + <td>{{blacklist.ipv4}}</td> + <td><a href="#/hosts/{{blacklist.host.id}}">{{blacklist.host.hostname}}</a></td> + <td>{{blacklist.reason}}</td> + <td>{{blacklist.snort_message}}</td> + <td>{{blacklist.type}}</td> + <td> + <a class="btn" href="#/blacklists/{{blacklist.id}}/">Szerkesztés</a> + <a class="btn btn-danger" href="#/blacklists/{{blacklist.id}}/delete/">Törlés</a> + </td> + </tr> +</table> diff --git a/firewall_gui/views.py b/firewall_gui/views.py index 5c84f3f..9523a15 100644 --- a/firewall_gui/views.py +++ b/firewall_gui/views.py @@ -172,3 +172,19 @@ def list_records(request): "modified_at": record.modified_at.isoformat() } for record in Record.objects.all()] return HttpResponse(json.dumps(records), content_type="application/json") + +def list_blacklists(request): + blacklists = [{ + "id": blacklist.id, + "host": { + "id": blacklist.host.id, + "name": blacklist.host.hostname, + } if blacklist.host else None, + "reason": blacklist.reason, + "snort_message": blacklist.snort_message, + "type": blacklist.type, + "created_at": blacklist.created_at.isoformat(), + "modified_at": blacklist.modified_at.isoformat(), + "ipv4": blacklist.ipv4 + } for blacklist in Blacklist.objects.all()] + return HttpResponse(json.dumps(blacklists), content_type="application/json")