mirror of https://github.com/MISP/MISP
commit
8c79dc1e66
|
@ -46,7 +46,7 @@ class AppController extends Controller
|
|||
|
||||
public $helpers = array('Utility', 'OrgImg', 'FontAwesome', 'UserName');
|
||||
|
||||
private $__queryVersion = '89';
|
||||
private $__queryVersion = '90';
|
||||
public $pyMispVersion = '2.4.114';
|
||||
public $phpmin = '7.0';
|
||||
public $phprec = '7.2';
|
||||
|
|
|
@ -40,7 +40,7 @@
|
|||
|
||||
private function __get_event($id)
|
||||
{
|
||||
$this->__json['available_rotation_key'] = $this->__authorized_JSON_key;
|
||||
$this->__json['available_pivot_key'] = $this->__authorized_JSON_key;
|
||||
|
||||
$fullevent = $this->__eventModel->fetchEvent($this->__user, array('eventid' => $id, 'flatten' => 0, 'includeTagRelations' => 1, 'extended' => $this->__extended_view));
|
||||
$event = array();
|
||||
|
@ -265,7 +265,7 @@
|
|||
|
||||
foreach ($object as $obj) {
|
||||
$toPush = array(
|
||||
'id' => $obj['id'],
|
||||
'id' => sprintf('o-%s', $obj['id']),
|
||||
'uuid' => $obj['uuid'],
|
||||
'type' => $obj['name'],
|
||||
'label' => '',
|
||||
|
@ -290,8 +290,8 @@
|
|||
$toPush = array(
|
||||
'id' => $rel['id'],
|
||||
'uuid' => $rel['uuid'],
|
||||
'from' => $obj['id'],
|
||||
'to' => $rel['referenced_id'],
|
||||
'from' => sprintf('o-%s', $obj['id']),
|
||||
'to' => $rel['referenced_type'] == 1 ? sprintf('o-%s', $rel['referenced_id']) : $rel['referenced_id'],
|
||||
'type' => $rel['relationship_type'],
|
||||
'comment' => $rel['comment'],
|
||||
'event_id' => $rel['event_id'],
|
||||
|
@ -356,7 +356,7 @@
|
|||
|
||||
foreach ($object as $obj) {
|
||||
$toPush = array(
|
||||
'id' => $obj['id'],
|
||||
'id' => sprintf('o-%s', $obj['id']),
|
||||
'uuid' => $obj['uuid'],
|
||||
'type' => $obj['name'],
|
||||
'Attribute' => $obj['Attribute'],
|
||||
|
@ -382,7 +382,7 @@
|
|||
if (!in_array($tag['name'], $added_value)) {
|
||||
$toPush = array(
|
||||
'id' => "tag_edge_id_" . $i,
|
||||
'from' => $obj['id'],
|
||||
'from' => sprintf('o-%s', $obj['id']),
|
||||
'to' => $tag['name'],
|
||||
);
|
||||
$tagSet[$tag['name']] = $tag;
|
||||
|
@ -466,7 +466,7 @@
|
|||
|
||||
foreach ($object as $obj) {
|
||||
$toPush = array(
|
||||
'id' => $obj['id'],
|
||||
'id' => sprintf('o-%s', $obj['id']),
|
||||
'uuid' => $obj['uuid'],
|
||||
'type' => $obj['name'],
|
||||
'Attribute' => $obj['Attribute'],
|
||||
|
@ -491,7 +491,7 @@
|
|||
if (!in_array($keyVal, $added_value)) {
|
||||
$toPush = array(
|
||||
'id' => "keyType_edge_id_" . $i,
|
||||
'from' => $obj['id'],
|
||||
'from' => sprintf('o-%s', $obj['id']),
|
||||
'to' => "keyType_" . $keyVal,
|
||||
);
|
||||
array_push($added_value, $keyVal);
|
||||
|
|
|
@ -247,7 +247,7 @@ class ActionTable {
|
|||
var td = document.createElement('td');
|
||||
var btn = document.createElement('button');
|
||||
btn.classList.add("btn", "btn-danger");
|
||||
btn.innerHTML = '<span class="fa fa-trash-o"></span>';
|
||||
btn.innerHTML = '<span class="fa fa-trash"></span>';
|
||||
btn.type = "button";
|
||||
btn.setAttribute('rowID', tr.id);
|
||||
if (that.row_action_button_style.tooltip !== undefined) {
|
||||
|
|
|
@ -155,7 +155,7 @@ class EventGraph {
|
|||
$("#select_graph_scope").val(value);
|
||||
}
|
||||
|
||||
if (value == "Rotation key") {
|
||||
if (value == "Pivot key") {
|
||||
$("#network-scope-badge").text(value + ": " + eventGraph.scope_keyType);
|
||||
} else {
|
||||
$("#network-scope-badge").text(value);
|
||||
|
@ -176,30 +176,30 @@ class EventGraph {
|
|||
label: "Scope",
|
||||
tooltip: "The scope represented by the network",
|
||||
event: function(value) {
|
||||
if (value == "Rotation key" && $('#input_graph_scope_jsonkey').val() == "") { // no key selected for Rotation key scope
|
||||
if (value == "Pivot key" && $('#input_graph_scope_jsonkey').val() == "") { // no key selected for Pivot key scope
|
||||
return;
|
||||
} else {
|
||||
eventGraph.update_scope(value);
|
||||
dataHandler.fetch_data_and_update();
|
||||
}
|
||||
},
|
||||
options: ["Reference", "Tag", "Rotation key"],
|
||||
options: ["Reference", "Tag", "Pivot key"],
|
||||
default: "Reference"
|
||||
});
|
||||
menu_scope.add_select({
|
||||
id: "input_graph_scope_jsonkey",
|
||||
label: "Rotation key",
|
||||
label: "Pivot key",
|
||||
tooltip: "The key around which the network will be constructed",
|
||||
event: function(value) {
|
||||
if (value == "Rotation key" && $('#input_graph_scope_jsonkey').val() == "") { // no key selected for Rotation key scope
|
||||
if (value == "Pivot key" && $('#input_graph_scope_jsonkey').val() == "") { // no key selected for Pivot key scope
|
||||
return;
|
||||
} else {
|
||||
eventGraph.scope_keyType = value;
|
||||
eventGraph.update_scope("Rotation key");
|
||||
eventGraph.update_scope("Pivot key");
|
||||
dataHandler.fetch_data_and_update();
|
||||
}
|
||||
},
|
||||
options: dataHandler.available_rotation_key ? dataHandler.available_rotation_key : [],
|
||||
options: dataHandler.available_pivot_key ? dataHandler.available_pivot_key : [],
|
||||
default: ""
|
||||
});
|
||||
return menu_scope;
|
||||
|
@ -298,7 +298,8 @@ class EventGraph {
|
|||
for(var nodeId of objectIds) {
|
||||
eventGraph.expand_node(nodeId);
|
||||
}
|
||||
}
|
||||
},
|
||||
title: "Expanding all nodes may takes some time"
|
||||
});
|
||||
menu_display.add_button({
|
||||
label: "Collapse all nodes",
|
||||
|
@ -310,7 +311,8 @@ class EventGraph {
|
|||
for(var nodeId of objectIds) {
|
||||
eventGraph.collapse_node(nodeId);
|
||||
}
|
||||
}
|
||||
},
|
||||
title: "Collapsing all nodes may takes some time"
|
||||
});
|
||||
menu_display.add_slider({
|
||||
id: 'slider_display_max_char_num',
|
||||
|
@ -1399,7 +1401,7 @@ class DataHandler {
|
|||
eventGraph.menu_filter.items["table_attr_value"].add_options("table_control_select_attr_value", available_object_references);
|
||||
}
|
||||
|
||||
fetch_data_and_update(stabilize, callback) {
|
||||
fetch_data_and_update(stabilize, updateOnly, callback) {
|
||||
eventGraph.network_loading(true, loadingText_fetching);
|
||||
$.when(this.fetch_objects_template()).done(function() {
|
||||
var filtering_rules = eventGraph.get_filtering_rules();
|
||||
|
@ -1417,7 +1419,9 @@ class DataHandler {
|
|||
data: JSON.stringify( payload ),
|
||||
processData: false,
|
||||
success: function( data, textStatus, jQxhr ){
|
||||
eventGraph.reset_graphs(true);
|
||||
if (updateOnly === undefined || updateOnly === false) {
|
||||
eventGraph.reset_graphs(true);
|
||||
}
|
||||
eventGraph.is_filtered = (filtering_rules.presence.length > 0 || filtering_rules.value.length > 0);
|
||||
eventGraph.first_draw = true;
|
||||
// update object state
|
||||
|
@ -1427,8 +1431,8 @@ class DataHandler {
|
|||
return [[index, value]];
|
||||
});
|
||||
dataHandler.update_filtering_selectors(available_object_references, available_tags);
|
||||
dataHandler.available_rotation_key = data.available_rotation_key;
|
||||
eventGraph.menu_scope.add_options("input_graph_scope_jsonkey", dataHandler.available_rotation_key);
|
||||
dataHandler.available_pivot_key = data.available_pivot_key;
|
||||
eventGraph.menu_scope.add_options("input_graph_scope_jsonkey", dataHandler.available_pivot_key);
|
||||
if (data.items.length < nodes_ask_threshold) {
|
||||
eventGraph.update_graph(data);
|
||||
} else if (data.items.length > nodes_ask_threshold && confirm("The network contains a lot of nodes, displaying it may slow down your browser. Continue?")) {
|
||||
|
@ -1572,7 +1576,8 @@ class MispInteraction {
|
|||
if (!that.can_create_reference(edgeData.from) || !that.can_be_referenced(edgeData.to)) {
|
||||
return;
|
||||
}
|
||||
genericPopup('/objectReferences/add/'+edgeData.from, '#popover_form', function() {
|
||||
var edgeFromId = edgeData.from.startsWith('o-') ? edgeData.from.substr(2) : edgeData.from;
|
||||
genericPopup('/objectReferences/add/'+edgeFromId, '#popover_form', function() {
|
||||
$('#ObjectReferenceReferencedUuid').val(uuid);
|
||||
objectReferenceInput();
|
||||
});
|
||||
|
@ -1637,6 +1642,7 @@ class MispInteraction {
|
|||
var selected_nodes = nodeData.nodes;
|
||||
for (var nodeID of selected_nodes) {
|
||||
var node = this.nodes.get(nodeID)
|
||||
nodeID = nodeID.startsWith('o-') ? nodeID.substr(2) : nodeID;
|
||||
if (node.group.slice(0, 9) == "attribute") {
|
||||
deleteObject('attributes', 'delete', nodeID, scope_id);
|
||||
} else if (node.group == "object") {
|
||||
|
@ -1649,6 +1655,7 @@ class MispInteraction {
|
|||
var that = mispInteraction;
|
||||
var id = nodeData.id
|
||||
var group = nodes.get(id).group;
|
||||
id = id.startsWith('o-') ? id.substr(2) : id;
|
||||
if (group.slice(0, 9) == 'attribute') {
|
||||
simplePopup('/attributes/edit/'+id);
|
||||
} else if (group == 'object') {
|
||||
|
@ -1861,7 +1868,7 @@ function genericPopupCallback(result) {
|
|||
// sucess and eventgraph is enabled
|
||||
if (result == "success" && dataHandler !== undefined) {
|
||||
mispInteraction.apply_callback();
|
||||
dataHandler.fetch_data_and_update(false);
|
||||
dataHandler.fetch_data_and_update(false, true);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1958,7 +1965,7 @@ function import_graph_from_json(data) {
|
|||
$('#checkbox_physics_enable').prop('checked', data.physics.enabled);
|
||||
|
||||
// update data
|
||||
dataHandler.fetch_data_and_update(false, function() {
|
||||
dataHandler.fetch_data_and_update(false, false, function() {
|
||||
eventGraph.nodes.update(data.nodes);
|
||||
eventGraph.expand_previous_expansion(data.nodes);
|
||||
eventGraph.hiddenNode.clear();
|
||||
|
@ -2180,7 +2187,7 @@ $(document).on("keyup", function(evt) {
|
|||
});
|
||||
|
||||
eventGraph.update_scope();
|
||||
dataHandler.fetch_data_and_update(true, function() {
|
||||
dataHandler.fetch_data_and_update(true, false, function() {
|
||||
var $select = $('#network-typeahead');
|
||||
dataHandler.get_typeaheadData_search().forEach(function(element) {
|
||||
var $option = $('<option></option>');
|
||||
|
|
Loading…
Reference in New Issue