Merge branch '2.4' of github.com:MISP/MISP into 2.4

pull/6535/head
mokaddem 2020-10-30 15:52:41 +01:00
commit 0321a12d6e
No known key found for this signature in database
GPG Key ID: 164C473F627A06FA
8 changed files with 42 additions and 39 deletions

View File

@ -159,6 +159,10 @@ class ACLComponent extends Component
'restore' => array('perm_add'),
'index' => array('*'),
'getProxyMISPElements' => array('*'),
'extractAllFromReport' => array('*'),
'extractFromReport' => array('*'),
'replaceSuggestionInReport' => array('*'),
'importReportFromUrl' => array('*'),
),
'events' => array(
'add' => array('perm_add'),

View File

@ -279,7 +279,7 @@ class SendEmail
*/
public function sendExternal(array $params)
{
foreach (array('body', 'reply-to', 'to', 'subject', 'text') as $requiredParam) {
foreach (array('body', 'reply-to', 'to', 'subject') as $requiredParam) {
if (!isset($params[$requiredParam])) {
throw new InvalidArgumentException("Param '$requiredParam' is required, but not provided.");
}

View File

@ -206,40 +206,38 @@ $quickEdit = function($fieldName) use ($editScope, $object, $event) {
<td class="shortish">
<ul class="inline" style="margin:0">
<?php
if (!empty($object['Feed'])) {
if (isset($object['Feed'])) {
foreach ($object['Feed'] as $feed) {
$popover = '';
foreach ($feed as $k => $v) {
if ($k == 'id') continue;
if (is_array($v)) {
foreach ($v as $k2 => $v2) {
$v[$k2] = h($v2);
}
$v = implode('<br>', $v);
} else {
$v = h($v);
}
$popover .= '<span class="bold black">' . Inflector::humanize(h($k)) . '</span>: <span class="blue">' . $v . '</span><br>';
$relatedData = array(
__('Name') => $feed['name'],
__('URL') => $feed['url'],
__('Provider') => $feed['provider'],
);
if (isset($feed['event_uuids'])) {
$relatedData[__('Event UUIDs')] = implode('<br>', $feed['event_uuids']);
}
$popover = '';
foreach ($relatedData as $k => $v) {
$popover .= '<span class="bold black">' . h($k) . '</span>: <span class="blue">' . h($v) . '</span><br>';
}
$liContents = '';
if ($isSiteAdmin || $hostOrgUser) {
if ($feed['source_format'] === 'misp') {
$liContents .= sprintf(
$liContents = sprintf(
'<form action="%s/feeds/previewIndex/%s" method="post" style="margin:0;line-height:auto;">%s%s</form>',
$baseurl,
h($feed['id']),
sprintf(
'<input type="hidden" name="data[Feed][eventid]" value="%s">',
h(json_encode($feed['event_uuids'], true))
h(json_encode($feed['event_uuids']))
),
sprintf(
'<input type="submit" class="linkButton useCursorPointer" value="%s" data-toggle="popover" data-content="%s" data-trigger="hover" style="margin-right:3px;line-height:normal;vertical-align: text-top;" />',
'<input type="submit" class="linkButton useCursorPointer" value="%s" data-toggle="popover" data-content="%s" data-trigger="hover" style="margin-right:3px;line-height:normal;vertical-align: text-top;">',
h($feed['id']),
h($popover)
)
);
} else {
$liContents .= sprintf(
$liContents = sprintf(
'<a href="%s/feeds/previewIndex/%s" style="margin-right:3px;" data-toggle="popover" data-content="%s" data-trigger="hover">%s</a>',
$baseurl,
h($feed['id']),
@ -248,7 +246,7 @@ $quickEdit = function($fieldName) use ($editScope, $object, $event) {
);
}
} else {
$liContents .= sprintf(
$liContents = sprintf(
'<span style="margin-right:3px;">%s</span>',
h($feed['id'])
);
@ -259,7 +257,7 @@ $quickEdit = function($fieldName) use ($editScope, $object, $event) {
);
}
}
if (!empty($object['Server'])) {
if (isset($object['Server'])) {
foreach ($object['Server'] as $server) {
$popover = '';
foreach ($server as $k => $v) {

View File

@ -374,7 +374,7 @@
endif;
if (!empty($event['Feed']) || !empty($event['Event']['FeedCount'])):
?>
<h3>Related Feeds</h3>
<h3><?= __('Related Feeds') ?> <a href="#attributeList" title="<?= __('Show just attributes that has feed hits') ?>" onclick="toggleBoolFilter('<?= $baseurl ?>/events/view/<?= h($event['Event']['id']) ?>', 'feed')"><?= __('(show)') ?></a></h3>
<?php
if (!empty($event['Feed'])):
?>
@ -382,10 +382,9 @@
<?php
foreach ($event['Feed'] as $relatedFeed):
$relatedData = array(
'Name' => $relatedFeed['name'],
'URL' => $relatedFeed['url'],
'Provider' => $relatedFeed['provider'],
'Source Format' => $relatedFeed['source_format'] === 'misp' ? 'MISP' : $relatedFeed['source_format'],
__('Name') => $relatedFeed['name'],
__('URL') => $relatedFeed['url'],
__('Provider') => $relatedFeed['provider'],
);
$popover = '';
foreach ($relatedData as $k => $v) {
@ -397,13 +396,13 @@
if ($relatedFeed ['source_format'] === 'misp'):
?>
<form action="<?php echo $baseurl; ?>/feeds/previewIndex/<?php echo h($relatedFeed['id']); ?>" method="post" style="margin:0px;">
<input type="hidden" name="data[Feed][eventid]" value="<?php echo h(json_encode($relatedFeed['event_uuids'], true)); ?>">
<input type="submit" class="linkButton useCursorPointer" value="<?php echo h($relatedFeed['name']) . ' (' . $relatedFeed['id'] . ')'; ?>" data-toggle="popover" data-content="<?php echo h($popover); ?>" data-trigger="hover" />
<input type="hidden" name="data[Feed][eventid]" value="<?php echo h(json_encode($relatedFeed['event_uuids'])); ?>">
<input type="submit" class="linkButton useCursorPointer" value="<?php echo h($relatedFeed['name']) . ' (' . $relatedFeed['id'] . ')'; ?>" data-toggle="popover" data-content="<?php echo h($popover); ?>" data-trigger="hover">
</form>
<?php
else:
?>
<a href="<?php echo $baseurl; ?>/feeds/previewIndex/<?php echo h($relatedFeed['id']); ?>" data-toggle="popover" data-content="<?php echo h($popover); ?>" data-trigger="hover"><?php echo h($relatedFeed['name']) . ' (' . $relatedFeed['id'] . ')'; ?></a><br />
<a href="<?php echo $baseurl; ?>/feeds/previewIndex/<?php echo h($relatedFeed['id']); ?>" data-toggle="popover" data-content="<?php echo h($popover); ?>" data-trigger="hover"><?php echo h($relatedFeed['name']) . ' (' . $relatedFeed['id'] . ')'; ?></a><br>
<?php
endif;
?>
@ -458,7 +457,10 @@
?>
<?php if (!empty($event['warnings'])): ?>
<div class="warning_container">
<h4 class="red"><?= __('Warning: Potential false positives') ?> <a href="#attributeList" onclick="toggleBoolFilter('<?= $baseurl ?>/events/view/<?= h($event['Event']['id']) ?>', 'warning')"><?= __('(show)') ?></a></h4>
<h4 class="red">
<?= __('Warning: Potential false positives') ?>
<a href="#attributeList" title="<?= __('Show just attributes that has warning') ?>" onclick="toggleBoolFilter('<?= $baseurl ?>/events/view/<?= h($event['Event']['id']) ?>', 'warning')"><?= __('(show)') ?></a>
</h4>
<?php
$links = [];
foreach ($event['warnings'] as $id => $name) {

View File

@ -1,6 +1,6 @@
<?php
$table_data = array();
$table_data[] = array('key' => __('Id'), 'value' => $feed['Feed']['id']);
$table_data[] = array('key' => __('ID'), 'value' => $feed['Feed']['id']);
$table_data[] = array('key' => __('Name'), 'value' => $feed['Feed']['name']);
$table_data[] = array('key' => __('URL'), 'value' => $feed['Feed']['url']);
$table_data[] = array(
@ -19,7 +19,7 @@
$this->element(
'ajaxTags',
array(
'event' => false,
'scope' => 'feed',
'tags' => array(array('Tag' => $feed['Tag'])),
'tagAccess' => false,
'static_tags_only' => true
@ -74,13 +74,12 @@
// $table_data[] = array('key' => __('Role'), 'html' => $this->Html->link($user['Role']['name'], array('controller' => 'roles', 'action' => 'view', $user['Role']['id'])));
echo sprintf(
'<div class="feeds view"><div class="row-fluid"><div class="span8" style="margin:0px;">%s<hr /><div class="feed_overlap_tool">%s</div></div></div></div>%s',
'<div class="feeds view"><div class="row-fluid"><div class="span8" style="margin:0px;">%s<hr /><div class="feed_overlap_tool">%s</div></div></div></div>',
sprintf(
'<h2>%s</h2>%s',
__('Feed'),
$this->element('genericElements/viewMetaTable', array('table_data' => $table_data))
),
$this->element('Feeds/View/feed_overlap_tool', array('other_feeds' => $other_feeds, 'feed' => $feed)),
$this->element('/genericElements/SideMenu/side_menu', array('menuList' => 'feeds', 'menuItem' => 'view'))
$this->element('Feeds/View/feed_overlap_tool', array('other_feeds' => $other_feeds, 'feed' => $feed))
);
?>
echo $this->element('/genericElements/SideMenu/side_menu', array('menuList' => 'feeds', 'menuItem' => 'view'));

@ -1 +1 @@
Subproject commit b41e3d4f5037d0d325d38b2d5cf4f4bc94274cbc
Subproject commit b56a4d9e5c84e5f3aa10bd852c83e199f327391d

@ -1 +1 @@
Subproject commit 27a554ab12acbc1242f801b5682364b2047cf9e0
Subproject commit abf42cc8fb71c003c40dc0767f89804b45eb5303

@ -1 +1 @@
Subproject commit 278f726f1dbc7fab2607dd6618453559e6b5983f
Subproject commit 8d60a4f5052c4e303ac3f7f90b3ee14f655f88fd