mirror of
https://github.com/ziirish/burp-ui.git
synced 2026-05-21 06:45:24 -06:00
fix: make it possible to view only the selected client on the live-monitoring view (see #54)
This commit is contained in:
parent
6d87b78f11
commit
9512b3f76c
3 changed files with 18 additions and 6 deletions
|
|
@ -8,7 +8,7 @@ from flask.ext.restful import reqparse, Resource
|
|||
from flask.ext.login import current_user, login_required
|
||||
from flask import jsonify, make_response
|
||||
|
||||
@api.resource('/api/running-clients.json', '/api/<server>/running-clients.json')
|
||||
@api.resource('/api/running-clients.json', '/api/<server>/running-clients.json', '/api/<client>/running-clients.json', '/api/<server>/<client>/running-clients.json')
|
||||
class RunningClients(Resource):
|
||||
|
||||
def __init__(self):
|
||||
|
|
@ -16,13 +16,25 @@ class RunningClients(Resource):
|
|||
self.parser.add_argument('server', type=str)
|
||||
|
||||
@login_required
|
||||
def get(self, server=None):
|
||||
def get(self, client=None, server=None):
|
||||
"""
|
||||
API: running_clients
|
||||
:returns: a list of running clients
|
||||
"""
|
||||
if not server:
|
||||
server = self.parser.parse_args()['server']
|
||||
if client:
|
||||
if bui.acl_handler:
|
||||
if not bui.acl_handler.get_acl().is_admin(current_user.name) and not bui.acl_handler.get_acl().is_client_allowed(current_user.name, client, server):
|
||||
r = []
|
||||
return jsonify(results=r)
|
||||
if bui.cli.is_backup_running(client, server):
|
||||
r = [bui.cli.get_client(client, server)]
|
||||
return jsonify(results=r)
|
||||
else:
|
||||
r = []
|
||||
return jsonify(results=r)
|
||||
|
||||
r = bui.cli.is_one_backup_running(server)
|
||||
# Manage ACL
|
||||
if bui.acl_handler and not bui.acl_handler.get_acl().is_admin(current_user.name):
|
||||
|
|
|
|||
|
|
@ -243,7 +243,7 @@ def client(server=None, name=None):
|
|||
if not server:
|
||||
server = request.args.get('server')
|
||||
if bui.cli.is_backup_running(c, agent=server):
|
||||
return redirect(url_for('live_monitor', name=name, server=server))
|
||||
return redirect(url_for('live_monitor', name=c, server=server))
|
||||
return render_template('client.html', client=True, overview=True, cname=c, server=server)
|
||||
|
||||
@app.route('/clients', methods=['GET'])
|
||||
|
|
|
|||
|
|
@ -48,7 +48,7 @@ _parse_live_result = function(data, serv) {
|
|||
_live = function() {
|
||||
urls = Array();
|
||||
{% for s in config.SERVERS -%}
|
||||
urls.push({'url': '{{ api.url_for(RunningClients) }}?server={{ s }}', 'serv': '{{ s }}'});
|
||||
urls.push({'url': '{{ api.url_for(RunningClients, client=cname) }}?server={{ s }}', 'serv': '{{ s }}'});
|
||||
{% endfor -%}
|
||||
html = '';
|
||||
$.each(urls, function(i, rec) {
|
||||
|
|
@ -69,9 +69,9 @@ _live = function() {
|
|||
{% else -%}
|
||||
_live = function() {
|
||||
{% if config.STANDALONE -%}
|
||||
url = '{{ api.url_for(RunningClients) }}';
|
||||
url = '{{ api.url_for(RunningClients, client=cname) }}';
|
||||
{% else -%}
|
||||
url = '{{ api.url_for(RunningClients, server=server) }}';
|
||||
url = '{{ api.url_for(RunningClients, server=server, client=cname) }}';
|
||||
{% endif -%}
|
||||
html = ''
|
||||
$.getJSON(url, function(data) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue