mirror of https://github.com/MISP/MISP
Merge branch 'feature/sync/timestamp' of https://github.com/MISP/MISP into feature/sync/timestamp
commit
4242108b3e
|
@ -98,7 +98,6 @@
|
||||||
*/
|
*/
|
||||||
Cache::config('default', array('engine' => 'File'));
|
Cache::config('default', array('engine' => 'File'));
|
||||||
|
|
||||||
//Configure::write('CyDefSIG.baseurl', 'https://sig.cyber-defence.be');
|
|
||||||
Configure::write('CyDefSIG.baseurl', 'http://localhost:8888');
|
Configure::write('CyDefSIG.baseurl', 'http://localhost:8888');
|
||||||
if (!Configure::read('CyDefSIG.baseurl')) {
|
if (!Configure::read('CyDefSIG.baseurl')) {
|
||||||
if (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' || $_SERVER['SERVER_PORT'] == 443) {
|
if (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' || $_SERVER['SERVER_PORT'] == 443) {
|
||||||
|
@ -108,8 +107,8 @@ if (!Configure::read('CyDefSIG.baseurl')) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Configure::write('CyDefSIG.name', 'MISP');
|
Configure::write('CyDefSIG.name', 'MISP');
|
||||||
Configure::write('CyDefSIG.version', '2.0');
|
Configure::write('CyDefSIG.version', 'devel2.1');
|
||||||
Configure::write('CyDefSIG.header', 'CyDefSIG: Cyber Defence Signature Sharing Platform');
|
Configure::write('CyDefSIG.header', 'MISP: Malware Information Sharing Platform');
|
||||||
Configure::write('CyDefSIG.footerpart1', 'Powered by MISP');
|
Configure::write('CyDefSIG.footerpart1', 'Powered by MISP');
|
||||||
Configure::write('CyDefSIG.footerpart2', '© Belgian Defense CERT & NCIRC');
|
Configure::write('CyDefSIG.footerpart2', '© Belgian Defense CERT & NCIRC');
|
||||||
Configure::write('CyDefSIG.footer', Configure::read('CyDefSIG.footerpart1') . ' ' . Configure::read('CyDefSIG.footerpart2'));
|
Configure::write('CyDefSIG.footer', Configure::read('CyDefSIG.footerpart1') . ' ' . Configure::read('CyDefSIG.footerpart2'));
|
||||||
|
@ -186,6 +185,7 @@ CakePlugin::load('SysLog');
|
||||||
CakePlugin::load('Assets'); // having Logable
|
CakePlugin::load('Assets'); // having Logable
|
||||||
CakePlugin::load('SysLogLogable');
|
CakePlugin::load('SysLogLogable');
|
||||||
CakePlugin::load('MagicTools'); // having OrphansProtectable
|
CakePlugin::load('MagicTools'); // having OrphansProtectable
|
||||||
|
CakePlugin::load('UrlCache');
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* You can attach event listeners to the request lifecyle as Dispatcher Filter . By Default CakePHP bundles two filters:
|
* You can attach event listeners to the request lifecyle as Dispatcher Filter . By Default CakePHP bundles two filters:
|
||||||
|
|
|
@ -186,13 +186,9 @@ class AppController extends Controller {
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
protected function _refreshAuth() {
|
protected function _refreshAuth() {
|
||||||
if (isset($this->User)) {
|
$this->loadModel('User');
|
||||||
$user = $this->User->read(false, $this->Auth->user('id'));
|
$this->User->recursive = -1;
|
||||||
} else {
|
$user = $this->User->findById($this->Auth->user('id'));
|
||||||
$this->loadModel('User');
|
|
||||||
$this->User->recursive = -1;
|
|
||||||
$user = $this->User->findById($this->Auth->user('id'));
|
|
||||||
}
|
|
||||||
$this->Auth->login($user['User']);
|
$this->Auth->login($user['User']);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -85,6 +85,9 @@ class EventsController extends AppController {
|
||||||
public function index() {
|
public function index() {
|
||||||
// list the events
|
// list the events
|
||||||
|
|
||||||
|
// TODO information exposure vulnerability - as we don't limit the filter depending on the CyDefSIG.showorg parameter
|
||||||
|
// this filter will work if showorg=false and users will be able to perform the filtering and see what events were posted by what org.
|
||||||
|
// same goes for orgc in all cases
|
||||||
//transform POST into GET
|
//transform POST into GET
|
||||||
if($this->request->is("post")) {
|
if($this->request->is("post")) {
|
||||||
$url = array('action'=>'index');
|
$url = array('action'=>'index');
|
||||||
|
|
|
@ -181,7 +181,7 @@ class Attribute extends AppModel {
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
public $order = array("Attribute.event_id" => "DESC", "Attribute.type" => "ASC");
|
public $order = array("Attribute.event_id" => "DESC");
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Validation rules
|
* Validation rules
|
||||||
|
|
|
@ -0,0 +1,158 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This class will statically hold in memory url's indexed by a custom hash
|
||||||
|
*
|
||||||
|
* @licence MIT
|
||||||
|
* @modified Mark Scherer
|
||||||
|
* - now easier to integrate
|
||||||
|
* - optimization for `pageFiles` (still stores urls with only controller/action keys in global file)
|
||||||
|
* - can handle legacy `prefix` urls
|
||||||
|
*
|
||||||
|
* 2012-02-13 ms
|
||||||
|
*/
|
||||||
|
class UrlCacheManager {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Holds all generated urls so far by the application indexed by a custom hash
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public static $cache = array();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Holds all generated urls so far by the application indexed by a custom hash
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public static $cachePage = array();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Holds all generated urls so far by the application indexed by a custom hash
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public static $extras = array();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* type for the current set (triggered by last get)
|
||||||
|
*/
|
||||||
|
public static $type = 'cache';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* key for current get/set
|
||||||
|
*/
|
||||||
|
public static $key = null;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* cache key for pageFiles
|
||||||
|
*/
|
||||||
|
public static $cacheKey = 'url_map';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* cache key for pageFiles
|
||||||
|
*/
|
||||||
|
public static $cachePageKey = null;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* params that will always be present and will determine the global cache if pageFiles is used
|
||||||
|
*/
|
||||||
|
public static $paramFields = array('controller', 'plugin', 'action', 'prefix');
|
||||||
|
|
||||||
|
/**
|
||||||
|
* should be called in beforeRender()
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public static function init(View $View) {
|
||||||
|
$params = $View->request->params;
|
||||||
|
if (Configure::read('UrlCache.pageFiles')) {
|
||||||
|
$cachePageKey = '_misc';
|
||||||
|
if (is_object($View)) {
|
||||||
|
$path = $View->request->here;
|
||||||
|
if ($path == '/') {
|
||||||
|
$path = 'uc_homepage';
|
||||||
|
} else {
|
||||||
|
$path = strtolower(Inflector::slug($path));
|
||||||
|
}
|
||||||
|
if (empty($path)) {
|
||||||
|
$path = 'uc_error';
|
||||||
|
}
|
||||||
|
$cachePageKey = '_' . $path;
|
||||||
|
}
|
||||||
|
self::$cachePageKey = self::$cacheKey . $cachePageKey;
|
||||||
|
self::$cachePage = Cache::read(self::$cachePageKey, '_cake_core_');
|
||||||
|
}
|
||||||
|
self::$cache = Cache::read(self::$cacheKey, '_cake_core_');
|
||||||
|
|
||||||
|
# still old "prefix true/false" syntax?
|
||||||
|
if (Configure::read('UrlCache.verbosePrefixes')) {
|
||||||
|
unset(self::$paramFields[3]);
|
||||||
|
self::$paramFields = array_merge(self::$paramFields, (array) Configure::read('Routing.prefixes'));
|
||||||
|
}
|
||||||
|
self::$extras = array_intersect_key($params, array_combine(self::$paramFields, self::$paramFields));
|
||||||
|
$defaults = array();
|
||||||
|
foreach (self::$paramFields as $field) {
|
||||||
|
$defaults[$field] = '';
|
||||||
|
}
|
||||||
|
self::$extras = array_merge($defaults, self::$extras);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* should be called in afterLayout()
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public static function finalize() {
|
||||||
|
Cache::write(self::$cacheKey, self::$cache, '_cake_core_');
|
||||||
|
if (Configure::read('UrlCache.pageFiles') && !empty(self::$cachePage)) {
|
||||||
|
Cache::write(self::$cachePageKey, self::$cachePage, '_cake_core_');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the stored url if it was already generated, false otherwise
|
||||||
|
*
|
||||||
|
* @param string $key
|
||||||
|
* @return mixed
|
||||||
|
*/
|
||||||
|
public static function get($url, $full) {
|
||||||
|
$keyUrl = $url;
|
||||||
|
if (is_array($keyUrl)) {
|
||||||
|
$keyUrl += self::$extras;
|
||||||
|
# prevent different hashs on different orders
|
||||||
|
ksort($keyUrl, SORT_STRING);
|
||||||
|
# prevent different hashs on different types (int/string/bool)
|
||||||
|
foreach ($keyUrl as $key => $val) {
|
||||||
|
$keyUrl[$key] = (String) $val;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
self::$key = md5(serialize($keyUrl) . $full);
|
||||||
|
|
||||||
|
if (Configure::read('UrlCache.pageFiles')) {
|
||||||
|
self::$type = 'cachePage';
|
||||||
|
if (is_array($keyUrl)) {
|
||||||
|
$res = array_diff_key($keyUrl, self::$extras);
|
||||||
|
if (empty($res)) {
|
||||||
|
self::$type = 'cache';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (self::$type === 'cachePage') {
|
||||||
|
return isset(self::$cachePage[self::$key]) ? self::$cachePage[self::$key] : false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return isset(self::$cache[self::$key]) ? self::$cache[self::$key] : false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Stores a ney key in memory cache
|
||||||
|
*
|
||||||
|
* @param string $key
|
||||||
|
* @param mixed data to be stored
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public static function set($data) {
|
||||||
|
if (Configure::read('UrlCache.pageFiles') && self::$type === 'cachePage') {
|
||||||
|
self::$cachePage[self::$key] = $data;
|
||||||
|
} else {
|
||||||
|
self::$cache[self::$key] = $data;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,74 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
/*
|
||||||
|
* App Helper url caching
|
||||||
|
* Copyright (c) 2009 Matt Curry
|
||||||
|
* www.PseudoCoder.com
|
||||||
|
* http://github.com/mcurry/cakephp/tree/master/snippets/app_helper_url
|
||||||
|
* http://www.pseudocoder.com/archives/2009/02/27/how-to-save-half-a-second-on-every-cakephp-requestand-maintain-reverse-routing
|
||||||
|
*
|
||||||
|
* @author Matt Curry <matt@pseudocoder.com>
|
||||||
|
* @author José Lorenzo Rodríguez
|
||||||
|
* @license MIT
|
||||||
|
*
|
||||||
|
* @modified Mark Scherer
|
||||||
|
*/
|
||||||
|
|
||||||
|
App::uses('Helper', 'View');
|
||||||
|
App::uses('Inflector', 'Utility');
|
||||||
|
App::uses('UrlCacheManager', 'UrlCache.Routing');
|
||||||
|
|
||||||
|
class UrlCacheAppHelper extends Helper {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This function is responsible for setting up the Url cache before the application starts generating urls in views
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
function beforeRender($viewFile) {
|
||||||
|
if (!Configure::read('UrlCache.active') || Configure::read('UrlCache.runtime.beforeRender')) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
# todo: maybe lazy load with HtmlHelper::url()?
|
||||||
|
UrlCacheManager::init($this->_View);
|
||||||
|
Configure::write('UrlCache.runtime.beforeRender', true);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method will store the current generated urls into a persistent cache for next use
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
function afterLayout($layoutFile = null) {
|
||||||
|
if (!Configure::read('UrlCache.active') || Configure::read('UrlCache.runtime.afterLayout')) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
UrlCacheManager::finalize();
|
||||||
|
Configure::write('UrlCache.runtime.afterLayout', true);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Intercepts the parent url function to first look if the cache was already generated for the same params
|
||||||
|
*
|
||||||
|
* @param mixed $url url to generate using cakephp array syntax
|
||||||
|
* @param boolean $full wheter to generate a full url or not (http scheme)
|
||||||
|
* @return string
|
||||||
|
* @see Helper::url()
|
||||||
|
*/
|
||||||
|
function url($url = null, $full = false) {
|
||||||
|
if (Configure::read('UrlCache.active')) {
|
||||||
|
if ($cachedUrl = UrlCacheManager::get($url, $full)) {
|
||||||
|
return $cachedUrl;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$routerUrl = h(Router::url($url, $full));
|
||||||
|
if (Configure::read('UrlCache.active')) {
|
||||||
|
UrlCacheManager::set($routerUrl);
|
||||||
|
}
|
||||||
|
return $routerUrl;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -5,11 +5,9 @@
|
||||||
<?php
|
<?php
|
||||||
echo $this->Form->hidden('event_id');
|
echo $this->Form->hidden('event_id');
|
||||||
echo $this->Form->input('category', array(
|
echo $this->Form->input('category', array(
|
||||||
'after' => $this->Html->div('forminfo', '', array('id' => 'AttributeCategoryDiv')),
|
|
||||||
'empty' => '(choose one)'
|
'empty' => '(choose one)'
|
||||||
));
|
));
|
||||||
echo $this->Form->input('type', array(
|
echo $this->Form->input('type', array(
|
||||||
'after' => $this->Html->div('forminfo', '', array('id' => 'AttributeTypeDiv')),
|
|
||||||
'empty' => '(first choose category)'
|
'empty' => '(first choose category)'
|
||||||
));
|
));
|
||||||
if ('true' == Configure::read('CyDefSIG.sync')) {
|
if ('true' == Configure::read('CyDefSIG.sync')) {
|
||||||
|
@ -17,7 +15,6 @@
|
||||||
'options' => array($distributionLevels),
|
'options' => array($distributionLevels),
|
||||||
'label' => 'Distribution',
|
'label' => 'Distribution',
|
||||||
'selected' => $maxDist,
|
'selected' => $maxDist,
|
||||||
'after' => $this->Html->div('forminfo', '', array('id' => 'AttributeDistributionDiv'))
|
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
echo $this->Form->input('value', array(
|
echo $this->Form->input('value', array(
|
||||||
|
@ -31,18 +28,16 @@
|
||||||
<?php
|
<?php
|
||||||
echo $this->Form->input('to_ids', array(
|
echo $this->Form->input('to_ids', array(
|
||||||
'checked' => true,
|
'checked' => true,
|
||||||
'after' => $this->Html->div('forminfo', isset($attrDescriptions['signature']['formdesc']) ? $attrDescriptions['signature']['formdesc'] : $attrDescriptions['signature']['desc']),
|
'data-content' => isset($attrDescriptions['signature']['formdesc']) ? $attrDescriptions['signature']['formdesc'] : $attrDescriptions['signature']['desc'],
|
||||||
'label' => 'IDS Signature?',
|
'label' => 'IDS Signature?',
|
||||||
));
|
));
|
||||||
echo $this->Form->input('batch_import', array(
|
echo $this->Form->input('batch_import', array(
|
||||||
'type' => 'checkbox',
|
'type' => 'checkbox',
|
||||||
'after' => $this->Html->div('forminfo', 'Create multiple attributes one per line'),
|
'data-content' => 'Create multiple attributes one per line',
|
||||||
));
|
));
|
||||||
|
|
||||||
// link an onchange event to the form elements
|
// link an onchange event to the form elements
|
||||||
$this->Js->get('#AttributeCategory')->event('change', 'formCategoryChanged("#AttributeCategory")');
|
$this->Js->get('#AttributeCategory')->event('change', 'formCategoryChanged("#AttributeCategory")');
|
||||||
$this->Js->get('#AttributeType')->event('change', 'showFormInfo("#AttributeType")');
|
|
||||||
$this->Js->get('#AttributeDistribution')->event('change', 'showFormInfo("#AttributeDistribution")');
|
|
||||||
?>
|
?>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
<?php
|
<?php
|
||||||
|
@ -52,26 +47,21 @@ echo $this->Form->end();
|
||||||
</div>
|
</div>
|
||||||
<div class="actions">
|
<div class="actions">
|
||||||
<ul class="nav nav-list">
|
<ul class="nav nav-list">
|
||||||
<li><?php echo $this->Html->link('View Event', array('controller' => 'events', 'action' => 'view', $this->request->data['Attribute']['event_id'])); ?> </li>
|
<li><a href="/events/view/<?php echo $this->request->data['Attribute']['event_id']; ?>">View Event</a></li>
|
||||||
<?php if ($isSiteAdmin || $mayModify): ?>
|
<li><a href="/events/edit/<?php echo $this->request->data['Attribute']['event_id']; ?>">Edit Event</a></li>
|
||||||
<li><?php echo $this->Html->link('Edit Event', array('controller' => 'events', 'action' => 'edit', $this->request->data['Attribute']['event_id'])); ?> </li>
|
|
||||||
<li><?php echo $this->Form->postLink('Delete Event', array('controller' => 'events', 'action' => 'delete', $this->request->data['Attribute']['event_id']), null, __('Are you sure you want to delete # %s?', $this->request->data['Attribute']['event_id'])); ?></li>
|
<li><?php echo $this->Form->postLink('Delete Event', array('controller' => 'events', 'action' => 'delete', $this->request->data['Attribute']['event_id']), null, __('Are you sure you want to delete # %s?', $this->request->data['Attribute']['event_id'])); ?></li>
|
||||||
<li class="divider"></li>
|
<li class="divider"></li>
|
||||||
<li class="active"><?php echo $this->Html->link('Add Attribute', array('controller' => 'attributes', 'action' => 'add', $this->request->data['Attribute']['event_id']));?> </li>
|
<li class="active"><a href="/attributes/add/<?php echo $this->request->data['Attribute']['event_id']; ?>">Add Attribute</a></li>
|
||||||
<li><?php echo $this->Html->link('Add Attachment', array('controller' => 'attributes', 'action' => 'add_attachment', $this->request->data['Attribute']['event_id']));?> </li>
|
<li><a href="/attributes/add_attachment/<?php echo $this->request->data['Attribute']['event_id']; ?>">Add Attachment</a></li>
|
||||||
<li><?php echo $this->Html->link('Populate event from IOC', array('controller' => 'events', 'action' => 'addIOC', $this->request->data['Attribute']['event_id']));?> </li>
|
<li><a href="/events/addIOC/<?php echo $this->request->data['Attribute']['event_id']; ?>">Populate from IOC</a></li>
|
||||||
<?php else: ?>
|
|
||||||
<li><?php echo $this->Html->link('Propose Attribute', array('controller' => 'shadow_attributes', 'action' => 'add', $this->request->data['Attribute']['event_id']));?> </li>
|
|
||||||
<li><?php echo $this->Html->link('Propose Attachment', array('controller' => 'shadow_attributes', 'action' => 'add_attachment', $this->request->data['Attribute']['event_id']));?> </li>
|
|
||||||
<?php endif; ?>
|
|
||||||
<li class="divider"></li>
|
<li class="divider"></li>
|
||||||
<li><?php echo $this->Html->link(__('Contact reporter', true), array('controller' => 'events', 'action' => 'contact', $this->request->data['Attribute']['event_id'])); ?> </li>
|
<li><a href="/events/contact/<?php echo $this->request->data['Attribute']['event_id']; ?>">Contact Reporter</a></li>
|
||||||
<li><?php echo $this->Html->link(__('Download as XML', true), array('controller' => 'events', 'action' => 'xml', 'download', $this->request->data['Attribute']['event_id'])); ?></li>
|
<li><a href="/events/xml/download/<?php echo $this->request->data['Attribute']['event_id']; ?>">Download as XML</a></li>
|
||||||
<li><?php echo $this->Html->link(__('Download as IOC', true), array('controller' => 'events', 'action' => 'downloadOpenIOCEvent', $this->request->data['Attribute']['event_id'])); ?> </li>
|
<li><a href="/events/downloadOpenIOCEvent/<?php echo $this->request->data['Attribute']['event_id']; ?>">Download as IOC</a></li>
|
||||||
<li class="divider"></li>
|
<li class="divider"></li>
|
||||||
<li><?php echo $this->Html->link('List Events', array('controller' => 'events', 'action' => 'index')); ?></li>
|
<li><a href="/events/index">List Events</a></li>
|
||||||
<?php if ($isAclAdd): ?>
|
<?php if ($isAclAdd): ?>
|
||||||
<li><?php echo $this->Html->link('Add Event', array('controller' => 'events', 'action' => 'add')); ?></li>
|
<li><a href="/events/add">Add Event</a></li>
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
@ -95,7 +85,6 @@ foreach ($categoryDefinitions as $category => $def) {
|
||||||
?>
|
?>
|
||||||
|
|
||||||
function formCategoryChanged(id) {
|
function formCategoryChanged(id) {
|
||||||
showFormInfo(id); // display the tooltip
|
|
||||||
// fill in the types
|
// fill in the types
|
||||||
var options = $('#AttributeType').prop('options');
|
var options = $('#AttributeType').prop('options');
|
||||||
$('option', $('#AttributeType')).remove();
|
$('option', $('#AttributeType')).remove();
|
||||||
|
@ -126,23 +115,52 @@ foreach ($distributionDescriptions as $type => $def) {
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
|
|
||||||
function showFormInfo(id) {
|
$(document).ready(function() {
|
||||||
idDiv = id+'Div';
|
|
||||||
// LATER use nice animations
|
|
||||||
//$(idDiv).hide('fast');
|
|
||||||
// change the content
|
|
||||||
var value = $(id).val(); // get the selected value
|
|
||||||
$(idDiv).html(formInfoValues[value]); // search in a lookup table
|
|
||||||
|
|
||||||
// show it again
|
$("#AttributeType, #AttributeCategory, #Attribute, #AttributeDistribution").on('mouseleave', function(e) {
|
||||||
$(idDiv).fadeIn('slow');
|
$('#'+e.currentTarget.id).popover('destroy');
|
||||||
}
|
});
|
||||||
|
|
||||||
|
$("#AttributeType, #AttributeCategory, #Attribute, #AttributeDistribution").on('mouseover', function(e) {
|
||||||
|
var $e = $(e.target);
|
||||||
|
if ($e.is('option')) {
|
||||||
|
$('#'+e.currentTarget.id).popover('destroy');
|
||||||
|
$('#'+e.currentTarget.id).popover({
|
||||||
|
trigger: 'manual',
|
||||||
|
placement: 'right',
|
||||||
|
content: formInfoValues[$e.val()],
|
||||||
|
}).popover('show');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
$("input, label").on('mouseleave', function(e) {
|
||||||
|
$('#'+e.currentTarget.id).popover('destroy');
|
||||||
|
});
|
||||||
|
|
||||||
|
$("input, label").on('mouseover', function(e) {
|
||||||
|
var $e = $(e.target);
|
||||||
|
$('#'+e.currentTarget.id).popover('destroy');
|
||||||
|
$('#'+e.currentTarget.id).popover({
|
||||||
|
trigger: 'manual',
|
||||||
|
placement: 'right',
|
||||||
|
}).popover('show');
|
||||||
|
});
|
||||||
|
|
||||||
|
// workaround for browsers like IE and Chrome that do now have an onmouseover on the 'options' of a select.
|
||||||
|
// disadvangate is that user needs to click on the item to see the tooltip.
|
||||||
|
// no solutions exist, except to generate the select completely using html.
|
||||||
|
$("#AttributeType, #AttributeCategory, #Attribute, #AttributeDistribution").on('change', function(e) {
|
||||||
|
var $e = $(e.target);
|
||||||
|
$('#'+e.currentTarget.id).popover('destroy');
|
||||||
|
$('#'+e.currentTarget.id).popover({
|
||||||
|
trigger: 'manual',
|
||||||
|
placement: 'right',
|
||||||
|
content: formInfoValues[$e.val()],
|
||||||
|
}).popover('show');
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
// hide the formInfo things
|
|
||||||
$('#AttributeTypeDiv').hide();
|
|
||||||
$('#AttributeCategoryDiv').hide();
|
|
||||||
$('#AttributeType').prop('disabled', true);
|
|
||||||
$('#AttributeDistributionDiv').hide();
|
|
||||||
|
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -42,26 +42,21 @@ echo $this->Form->end();
|
||||||
</div>
|
</div>
|
||||||
<div class="actions">
|
<div class="actions">
|
||||||
<ul class="nav nav-list">
|
<ul class="nav nav-list">
|
||||||
<li><?php echo $this->Html->link('View Event', array('controller' => 'events', 'action' => 'view', $this->request->data['Attribute']['event_id'])); ?> </li>
|
<li><a href="/events/view/<?php echo $this->request->data['Attribute']['event_id']; ?>">View Event</a></li>
|
||||||
<?php if ($isSiteAdmin || $mayModify): ?>
|
<li><a href="/events/edit/<?php echo $this->request->data['Attribute']['event_id']; ?>">Edit Event</a></li>
|
||||||
<li><?php echo $this->Html->link('Edit Event', array('controller' => 'events', 'action' => 'edit', $this->request->data['Attribute']['event_id'])); ?> </li>
|
|
||||||
<li><?php echo $this->Form->postLink('Delete Event', array('controller' => 'events', 'action' => 'delete', $this->request->data['Attribute']['event_id']), null, __('Are you sure you want to delete # %s?', $this->request->data['Attribute']['event_id'])); ?></li>
|
<li><?php echo $this->Form->postLink('Delete Event', array('controller' => 'events', 'action' => 'delete', $this->request->data['Attribute']['event_id']), null, __('Are you sure you want to delete # %s?', $this->request->data['Attribute']['event_id'])); ?></li>
|
||||||
<li class="divider"></li>
|
<li class="divider"></li>
|
||||||
<li><?php echo $this->Html->link('Add Attribute', array('controller' => 'attributes', 'action' => 'add', $this->request->data['Attribute']['event_id']));?> </li>
|
<li><a href="/attributes/add/<?php echo $this->request->data['Attribute']['event_id']; ?>">Add Attribute</a></li>
|
||||||
<li class="active"><?php echo $this->Html->link('Add Attachment', array('controller' => 'attributes', 'action' => 'add_attachment', $this->request->data['Attribute']['event_id']));?> </li>
|
<li class="active"><a href="/attributes/add_attachment/<?php echo $this->request->data['Attribute']['event_id']; ?>">Add Attachment</a></li>
|
||||||
<li><?php echo $this->Html->link('Populate event from IOC', array('controller' => 'events', 'action' => 'addIOC', $this->request->data['Attribute']['event_id']));?> </li>
|
<li><a href="/events/addIOC/<?php echo $this->request->data['Attribute']['event_id']; ?>">Populate from IOC</a></li>
|
||||||
<?php else: ?>
|
|
||||||
<li><?php echo $this->Html->link('Propose Attribute', array('controller' => 'shadow_attributes', 'action' => 'add', $this->request->data['Attribute']['event_id']));?> </li>
|
|
||||||
<li><?php echo $this->Html->link('Propose Attachment', array('controller' => 'shadow_attributes', 'action' => 'add_attachment', $this->request->data['Attribute']['event_id']));?> </li>
|
|
||||||
<?php endif; ?>
|
|
||||||
<li class="divider"></li>
|
<li class="divider"></li>
|
||||||
<li><?php echo $this->Html->link(__('Contact reporter', true), array('controller' => 'events', 'action' => 'contact', $this->request->data['Attribute']['event_id'])); ?> </li>
|
<li><a href="/events/contact/<?php echo $this->request->data['Attribute']['event_id']; ?>">Contact Reporter</a></li>
|
||||||
<li><?php echo $this->Html->link(__('Download as XML', true), array('controller' => 'events', 'action' => 'xml', 'download', $this->request->data['Attribute']['event_id'])); ?></li>
|
<li><a href="/events/xml/download/<?php echo $this->request->data['Attribute']['event_id']; ?>">Download as XML</a></li>
|
||||||
<li><?php echo $this->Html->link(__('Download as IOC', true), array('controller' => 'events', 'action' => 'downloadOpenIOCEvent', $this->request->data['Attribute']['event_id'])); ?> </li>
|
<li><a href="/events/downloadOpenIOCEvent/<?php echo $this->request->data['Attribute']['event_id']; ?>">Download as IOC</a></li>
|
||||||
<li class="divider"></li>
|
<li class="divider"></li>
|
||||||
<li><?php echo $this->Html->link('List Events', array('controller' => 'events', 'action' => 'index')); ?></li>
|
<li><a href="/events/index">List Events</a></li>
|
||||||
<?php if ($isAclAdd): ?>
|
<?php if ($isAclAdd): ?>
|
||||||
<li><?php echo $this->Html->link('Add Event', array('controller' => 'events', 'action' => 'add')); ?></li>
|
<li><a href="/events/add">Add Event</a></li>
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -1,6 +1,3 @@
|
||||||
<?php
|
|
||||||
$mayModify = (($isAclModify && $attribute['Event']['user_id'] == $me['id']) || ($isAclModifyOrg && $attribute['Event']['org'] == $me['org']));
|
|
||||||
?>
|
|
||||||
<div class="attributes form">
|
<div class="attributes form">
|
||||||
<?php echo $this->Form->create('Attribute');?>
|
<?php echo $this->Form->create('Attribute');?>
|
||||||
<fieldset>
|
<fieldset>
|
||||||
|
@ -8,19 +5,16 @@ $mayModify = (($isAclModify && $attribute['Event']['user_id'] == $me['id']) || (
|
||||||
<?php
|
<?php
|
||||||
echo $this->Form->hidden('event_id');
|
echo $this->Form->hidden('event_id');
|
||||||
echo $this->Form->input('category', array(
|
echo $this->Form->input('category', array(
|
||||||
'after' => $this->Html->div('forminfo', '', array('id' => 'AttributeCategoryDiv')),
|
|
||||||
'empty' => '(choose one)'
|
'empty' => '(choose one)'
|
||||||
));
|
));
|
||||||
echo $this->Form->input('type', array(
|
echo $this->Form->input('type', array(
|
||||||
'after' => $this->Html->div('forminfo', '', array('id' => 'AttributeTypeDiv')),
|
|
||||||
'empty' => '(first choose category)'
|
'empty' => '(first choose category)'
|
||||||
));
|
));
|
||||||
if ('true' == Configure::read('CyDefSIG.sync')) {
|
if ('true' == Configure::read('CyDefSIG.sync') && $canEditDist) {
|
||||||
echo $this->Form->input('distribution', array(
|
echo $this->Form->input('distribution', array(
|
||||||
'options' => array($distributionLevels),
|
'options' => array($distributionLevels),
|
||||||
'label' => 'Distribution',
|
'label' => 'Distribution',
|
||||||
'selected' => $maxDist,
|
'selected' => $maxDist,
|
||||||
'after' => $this->Html->div('forminfo', '', array('id' => 'AttributeDistributionDiv'))
|
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
echo $this->Form->input('value', array(
|
echo $this->Form->input('value', array(
|
||||||
|
@ -34,18 +28,16 @@ $mayModify = (($isAclModify && $attribute['Event']['user_id'] == $me['id']) || (
|
||||||
<?php
|
<?php
|
||||||
echo $this->Form->input('to_ids', array(
|
echo $this->Form->input('to_ids', array(
|
||||||
'checked' => true,
|
'checked' => true,
|
||||||
'after' => $this->Html->div('forminfo', isset($attrDescriptions['signature']['formdesc']) ? $attrDescriptions['signature']['formdesc'] : $attrDescriptions['signature']['desc']),
|
'data-content' => isset($attrDescriptions['signature']['formdesc']) ? $attrDescriptions['signature']['formdesc'] : $attrDescriptions['signature']['desc'],
|
||||||
'label' => 'IDS Signature?',
|
'label' => 'IDS Signature?',
|
||||||
));
|
));
|
||||||
echo $this->Form->input('batch_import', array(
|
echo $this->Form->input('batch_import', array(
|
||||||
'type' => 'checkbox',
|
'type' => 'checkbox',
|
||||||
'after' => $this->Html->div('forminfo', 'Create multiple attributes one per line'),
|
'data-content' => 'Create multiple attributes one per line',
|
||||||
));
|
));
|
||||||
|
|
||||||
// link an onchange event to the form elements
|
// link an onchange event to the form elements
|
||||||
$this->Js->get('#AttributeCategory')->event('change', 'formCategoryChanged("#AttributeCategory")');
|
$this->Js->get('#AttributeCategory')->event('change', 'formCategoryChanged("#AttributeCategory")');
|
||||||
$this->Js->get('#AttributeType')->event('change', 'showFormInfo("#AttributeType")');
|
|
||||||
$this->Js->get('#AttributeDistribution')->event('change', 'showFormInfo("#AttributeDistribution")');
|
|
||||||
?>
|
?>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
<?php
|
<?php
|
||||||
|
@ -55,26 +47,21 @@ echo $this->Form->end();
|
||||||
</div>
|
</div>
|
||||||
<div class="actions">
|
<div class="actions">
|
||||||
<ul class="nav nav-list">
|
<ul class="nav nav-list">
|
||||||
<li><?php echo $this->Html->link('View Event', array('controller' => 'events', 'action' => 'view', $this->request->data['Attribute']['event_id'])); ?> </li>
|
<li><a href="/events/view/<?php echo $this->request->data['Attribute']['event_id']; ?>">View Event</a></li>
|
||||||
<?php if ($isSiteAdmin || $mayModify): ?>
|
<li><a href="/events/edit/<?php echo $this->request->data['Attribute']['event_id']; ?>">Edit Event</a></li>
|
||||||
<li><?php echo $this->Html->link('Edit Event', array('controller' => 'events', 'action' => 'edit', $this->request->data['Attribute']['event_id'])); ?> </li>
|
|
||||||
<li><?php echo $this->Form->postLink('Delete Event', array('controller' => 'events', 'action' => 'delete', $this->request->data['Attribute']['event_id']), null, __('Are you sure you want to delete # %s?', $this->request->data['Attribute']['event_id'])); ?></li>
|
<li><?php echo $this->Form->postLink('Delete Event', array('controller' => 'events', 'action' => 'delete', $this->request->data['Attribute']['event_id']), null, __('Are you sure you want to delete # %s?', $this->request->data['Attribute']['event_id'])); ?></li>
|
||||||
<li class="divider"></li>
|
<li class="divider"></li>
|
||||||
<li><?php echo $this->Html->link('Add Attribute', array('controller' => 'attributes', 'action' => 'add', $this->request->data['Attribute']['event_id']));?> </li>
|
<li><a href="/attributes/add/<?php echo $this->request->data['Attribute']['event_id']; ?>">Add Attribute</a></li>
|
||||||
<li><?php echo $this->Html->link('Add Attachment', array('controller' => 'attributes', 'action' => 'add_attachment', $this->request->data['Attribute']['event_id']));?> </li>
|
<li><a href="/attributes/add_attachment/<?php echo $this->request->data['Attribute']['event_id']; ?>">Add Attachment</a></li>
|
||||||
<li><?php echo $this->Html->link('Populate event from IOC', array('controller' => 'events', 'action' => 'addIOC', $this->request->data['Attribute']['event_id']));?> </li>
|
<li><a href="/events/addIOC/<?php echo $this->request->data['Attribute']['event_id']; ?>">Populate from IOC</a></li>
|
||||||
<?php else: ?>
|
|
||||||
<li><?php echo $this->Html->link('Propose Attribute', array('controller' => 'shadow_attributes', 'action' => 'add', $this->request->data['Attribute']['event_id']));?> </li>
|
|
||||||
<li><?php echo $this->Html->link('Propose Attachment', array('controller' => 'shadow_attributes', 'action' => 'add_attachment', $this->request->data['Attribute']['event_id']));?> </li>
|
|
||||||
<?php endif; ?>
|
|
||||||
<li class="divider"></li>
|
<li class="divider"></li>
|
||||||
<li><?php echo $this->Html->link(__('Contact reporter', true), array('controller' => 'events', 'action' => 'contact', $this->request->data['Attribute']['event_id'])); ?> </li>
|
<li><a href="/events/contact/<?php echo $this->request->data['Attribute']['event_id']; ?>">Contact Reporter</a></li>
|
||||||
<li><?php echo $this->Html->link(__('Download as XML', true), array('controller' => 'events', 'action' => 'xml', 'download', $this->request->data['Attribute']['event_id'])); ?></li>
|
<li><a href="/events/xml/download/<?php echo $this->request->data['Attribute']['event_id']; ?>">Download as XML</a></li>
|
||||||
<li><?php echo $this->Html->link(__('Download as IOC', true), array('controller' => 'events', 'action' => 'downloadOpenIOCEvent', $this->request->data['Attribute']['event_id'])); ?> </li>
|
<li><a href="/events/downloadOpenIOCEvent/<?php echo $this->request->data['Attribute']['event_id']; ?>">Download as IOC</a></li>
|
||||||
<li class="divider"></li>
|
<li class="divider"></li>
|
||||||
<li><?php echo $this->Html->link('List Events', array('controller' => 'events', 'action' => 'index')); ?></li>
|
<li><a href="/events/index">List Events</a></li>
|
||||||
<?php if ($isAclAdd): ?>
|
<?php if ($isAclAdd): ?>
|
||||||
<li><?php echo $this->Html->link('Add Event', array('controller' => 'events', 'action' => 'add')); ?></li>
|
<li><a href="/events/add">Add Event</a></li>
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
@ -97,7 +84,6 @@ foreach ($categoryDefinitions as $category => $def) {
|
||||||
?>
|
?>
|
||||||
|
|
||||||
function formCategoryChanged(id) {
|
function formCategoryChanged(id) {
|
||||||
showFormInfo(id); // display the tooltip
|
|
||||||
// fill in the types
|
// fill in the types
|
||||||
var options = $('#AttributeType').prop('options');
|
var options = $('#AttributeType').prop('options');
|
||||||
$('option', $('#AttributeType')).remove();
|
$('option', $('#AttributeType')).remove();
|
||||||
|
@ -122,32 +108,61 @@ foreach ($categoryDefinitions as $category => $def) {
|
||||||
$info = isset($def['formdesc']) ? $def['formdesc'] : $def['desc'];
|
$info = isset($def['formdesc']) ? $def['formdesc'] : $def['desc'];
|
||||||
echo "formInfoValues['" . addslashes($category) . "'] = \"" . addslashes($info) . "\";\n"; // as we output JS code we need to add slashes
|
echo "formInfoValues['" . addslashes($category) . "'] = \"" . addslashes($info) . "\";\n"; // as we output JS code we need to add slashes
|
||||||
}
|
}
|
||||||
foreach ($distributionDescriptions as $type => $def) {
|
if ($canEditDist) {
|
||||||
$info = isset($def['formdesc']) ? $def['formdesc'] : $def['desc'];
|
foreach ($distributionDescriptions as $type => $def) {
|
||||||
echo "formInfoValues['" . addslashes($type) . "'] = \"" . addslashes($info) . "\";\n"; // as we output JS code we need to add slashes
|
$info = isset($def['formdesc']) ? $def['formdesc'] : $def['desc'];
|
||||||
|
echo "formInfoValues['" . addslashes($type) . "'] = \"" . addslashes($info) . "\";\n"; // as we output JS code we need to add slashes
|
||||||
|
}
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
|
|
||||||
function showFormInfo(id) {
|
$(document).ready(function() {
|
||||||
idDiv = id+'Div';
|
|
||||||
// LATER use nice animations
|
$("#AttributeType, #AttributeCategory, #Attribute, #AttributeDistribution").on('mouseleave', function(e) {
|
||||||
//$(idDiv).hide('fast');
|
$('#'+e.currentTarget.id).popover('destroy');
|
||||||
// change the content
|
});
|
||||||
var value = $(id).val(); // get the selected value
|
|
||||||
$(idDiv).html(formInfoValues[value]); // search in a lookup table
|
$("#AttributeType, #AttributeCategory, #Attribute, #AttributeDistribution").on('mouseover', function(e) {
|
||||||
|
var $e = $(e.target);
|
||||||
|
if ($e.is('option')) {
|
||||||
|
$('#'+e.currentTarget.id).popover('destroy');
|
||||||
|
$('#'+e.currentTarget.id).popover({
|
||||||
|
trigger: 'manual',
|
||||||
|
placement: 'right',
|
||||||
|
content: formInfoValues[$e.val()],
|
||||||
|
}).popover('show');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
$("input, label").on('mouseleave', function(e) {
|
||||||
|
$('#'+e.currentTarget.id).popover('destroy');
|
||||||
|
});
|
||||||
|
|
||||||
|
$("input, label").on('mouseover', function(e) {
|
||||||
|
var $e = $(e.target);
|
||||||
|
$('#'+e.currentTarget.id).popover('destroy');
|
||||||
|
$('#'+e.currentTarget.id).popover({
|
||||||
|
trigger: 'manual',
|
||||||
|
placement: 'right',
|
||||||
|
}).popover('show');
|
||||||
|
});
|
||||||
|
|
||||||
|
// workaround for browsers like IE and Chrome that do now have an onmouseover on the 'options' of a select.
|
||||||
|
// disadvangate is that user needs to click on the item to see the tooltip.
|
||||||
|
// no solutions exist, except to generate the select completely using html.
|
||||||
|
$("#AttributeType, #AttributeCategory, #Attribute, #AttributeDistribution").on('change', function(e) {
|
||||||
|
var $e = $(e.target);
|
||||||
|
$('#'+e.currentTarget.id).popover('destroy');
|
||||||
|
$('#'+e.currentTarget.id).popover({
|
||||||
|
trigger: 'manual',
|
||||||
|
placement: 'right',
|
||||||
|
content: formInfoValues[$e.val()],
|
||||||
|
}).popover('show');
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
// show it again
|
|
||||||
$(idDiv).fadeIn('slow');
|
|
||||||
}
|
|
||||||
|
|
||||||
//hide the formInfo things
|
|
||||||
$('#AttributeTypeDiv').hide();
|
|
||||||
$('#AttributeCategoryDiv').hide();
|
|
||||||
$('#AttributeDistributionDiv').hide();
|
|
||||||
// fix the select box based on what was selected
|
|
||||||
var type_value = $('#AttributeType').val();
|
|
||||||
formCategoryChanged("#AttributeCategory");
|
|
||||||
$('#AttributeType').val(type_value);
|
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
<?php echo $this->Js->writeBuffer(); // Write cached scripts
|
<?php echo $this->Js->writeBuffer(); // Write cached scripts
|
||||||
|
|
|
@ -53,45 +53,47 @@ foreach ($attributes as $attribute):
|
||||||
<tr>
|
<tr>
|
||||||
<td class="short">
|
<td class="short">
|
||||||
<div id="<?php echo $attribute['Attribute']['id']?>" title="<?php echo h($attribute['Event']['info'])?>"
|
<div id="<?php echo $attribute['Attribute']['id']?>" title="<?php echo h($attribute['Event']['info'])?>"
|
||||||
onclick="document.location ='<?php echo $this->Html->url(array('controller' => 'events', 'action' => 'view', $attribute['Attribute']['event_id']), true);?>';">
|
onclick="document.location='/events/view/<?php echo $attribute['Event']['id'];?>';">
|
||||||
<?php
|
<?php
|
||||||
if ($attribute['Event']['orgc'] == $me['org']) {
|
if ($attribute['Event']['orgc'] == $me['org']) {
|
||||||
echo $this->Html->link($attribute['Event']['id'], array('controller' => 'events', 'action' => 'view', $attribute['Event']['id']), array('class' => 'SameOrgLink'));
|
$class='class="SameOrgLink"';
|
||||||
} else {
|
} else {
|
||||||
echo $this->Html->link($attribute['Event']['id'], array('controller' => 'events', 'action' => 'view', $attribute['Event']['id']));
|
$class='';
|
||||||
}
|
}
|
||||||
$currentCount++;
|
$currentCount++;
|
||||||
?>
|
?>
|
||||||
|
<a href="/events/view/<?php echo $attribute['Event']['id'];?>" <?php echo $class;?>><?php echo $attribute['Event']['id'];?></a>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
<td title="<?php echo $categoryDefinitions[$attribute['Attribute']['category']]['desc'];?>" class="short" onclick="document.location ='<?php echo $this->Html->url(array('controller' => 'events', 'action' => 'view', $attribute['Attribute']['event_id']), true);?>';">
|
<td title="<?php echo $categoryDefinitions[$attribute['Attribute']['category']]['desc'];?>" class="short" onclick="document.location='/events/view/<?php echo $attribute['Event']['id'];?>';">
|
||||||
<?php echo h($attribute['Attribute']['category']); ?> </td>
|
<?php echo $attribute['Attribute']['category']; ?> </td>
|
||||||
<td title="<?php echo $typeDefinitions[$attribute['Attribute']['type']]['desc'];?>" class="short" onclick="document.location ='<?php echo $this->Html->url(array('controller' => 'events', 'action' => 'view', $attribute['Attribute']['event_id']), true);?>';">
|
<td title="<?php echo $typeDefinitions[$attribute['Attribute']['type']]['desc'];?>" class="short" onclick="document.location='/events/view/<?php echo $attribute['Event']['id'];?>';">
|
||||||
<?php echo h($attribute['Attribute']['type']); ?> </td>
|
<?php echo $attribute['Attribute']['type']; ?> </td>
|
||||||
<td onclick="document.location ='<?php echo $this->Html->url(array('controller' => 'events', 'action' => 'view', $attribute['Attribute']['event_id']), true);?>';">
|
<td class="short" onclick="document.location='/events/view/<?php echo $attribute['Event']['id'];?>';">
|
||||||
<?php
|
<?php
|
||||||
$sigDisplay = nl2br(h($attribute['Attribute']['value']));
|
$sigDisplay = nl2br(h($attribute['Attribute']['value']));
|
||||||
if ($isSearch == 1 && !empty($replacePairs)) {
|
if ($isSearch == 1 && !empty($replacePairs)) {
|
||||||
// highlight the keywords if there are any
|
// highlight the keywords if there are any
|
||||||
$sigDisplay = nl2br($this->Highlight->highlighter($sigDisplay, $replacePairs));
|
$sigDisplay = $this->Highlight->highlighter($sigDisplay, $replacePairs);
|
||||||
}
|
}
|
||||||
if ('attachment' == $attribute['Attribute']['type'] || 'malware-sample' == $attribute['Attribute']['type']) {
|
if ('attachment' == $attribute['Attribute']['type'] || 'malware-sample' == $attribute['Attribute']['type']) {
|
||||||
echo $this->Html->link($sigDisplay, array('controller' => 'attributes', 'action' => 'download', $attribute['Attribute']['id']), array('escape' => FALSE));
|
?><a href="/attributes/download/<?php echo $attribute['Attribute']['id'];?>"><?php echo $sigDisplay; ?></a><?php
|
||||||
} elseif ('link' == $attribute['Attribute']['type']) {
|
} elseif ('link' == $attribute['Attribute']['type']) {
|
||||||
echo $this->Html->link($sigDisplay, nl2br(h($attribute['Attribute']['value'])), array('escape' => FALSE));
|
?><a href="<?php echo nl2br(h($attribute['Attribute']['value']));?>"><?php echo $sigDisplay; ?></a><?php
|
||||||
} else {
|
} else {
|
||||||
echo $sigDisplay;
|
echo $sigDisplay;
|
||||||
}
|
}
|
||||||
?> </td>
|
?> </td>
|
||||||
<td class="short" onclick="document.location ='<?php echo $this->Html->url(array('controller' => 'events', 'action' => 'view', $attribute['Attribute']['event_id']), true);?>';">
|
<td class="short" onclick="document.location ='document.location ='/events/view/<?php echo $attribute['Event']['id'];?>';">
|
||||||
<?php echo $attribute['Attribute']['to_ids'] ? 'Yes' : 'No'; ?> </td>
|
<?php echo $attribute['Attribute']['to_ids'] ? 'Yes' : 'No'; ?>
|
||||||
|
</td>
|
||||||
<td class="short action-links"><?php
|
<td class="short action-links"><?php
|
||||||
if ($isAdmin || ($isAclModify && $attribute['Event']['user_id'] == $me['id']) || ($isAclModifyOrg && $attribute['Event']['org'] == $me['org'])) {
|
if ($isAdmin || ($isAclModify && $attribute['Event']['user_id'] == $me['id']) || ($isAclModifyOrg && $attribute['Event']['org'] == $me['org'])) {
|
||||||
echo $this->Html->link('', array('action' => 'edit', $attribute['Attribute']['id']), array('class' => 'icon-edit', 'title' => 'Edit'));
|
?><a href="/attributes/edit/<?php echo $attribute['Attribute']['id'];?>" class="icon-edit" title="Edit"></a><?php
|
||||||
echo $this->Form->postLink('',array('action' => 'delete', $attribute['Attribute']['id']), array('class' => 'icon-trash', 'title' => 'Delete'), __('Are you sure you want to delete this attribute?'));
|
echo $this->Form->postLink('',array('action' => 'delete', $attribute['Attribute']['id']), array('class' => 'icon-trash', 'title' => 'Delete'), __('Are you sure you want to delete this attribute?'));
|
||||||
}
|
}
|
||||||
echo $this->Html->link('', array('controller' => 'events', 'action' => 'view', $attribute['Attribute']['event_id']), array('class' => 'icon-list-alt', 'title' => 'View'));
|
|
||||||
?>
|
?>
|
||||||
|
<a href="/events/view/<?php echo $attribute['Attribute']['event_id'];?>" class="icon-list-alt" title="View"></a>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<?php
|
<?php
|
||||||
|
@ -119,9 +121,9 @@ endforeach;
|
||||||
</div>
|
</div>
|
||||||
<div class="actions">
|
<div class="actions">
|
||||||
<ul class="nav nav-list">
|
<ul class="nav nav-list">
|
||||||
<li><?php echo $this->Html->link('List Events', array('controller' => 'events', 'action' => 'index')); ?></li>
|
<li><a href="/events/index">List Events</a></li>
|
||||||
<?php if ($isAclAdd): ?>
|
<?php if ($isAclAdd): ?>
|
||||||
<li><?php echo $this->Html->link('Add Event', array('controller' => 'events', 'action' => 'add')); ?></li>
|
<li><a href="/events/add">Add Event</a></li>
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
<li class="divider"></li>
|
<li class="divider"></li>
|
||||||
<?php
|
<?php
|
||||||
|
@ -133,16 +135,27 @@ endforeach;
|
||||||
$listClass = 'class="active"';
|
$listClass = 'class="active"';
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
<li <?php echo $listClass;?>><?php echo $this->Html->link('List Attributes', array('admin' => false, 'controller' => 'attributes', 'action' => 'index'));?></li>
|
<li <?php echo $listClass;?>><a href="/attributes/index">List Attributes</a></li>
|
||||||
<li <?php echo $searchClass;?>><?php echo $this->Html->link('Search Attributes', array('admin' => false, 'controller' => 'attributes', 'action' => 'search'));?></li>
|
<li <?php echo $searchClass;?>><a href="/attributes/search">Search Attributes</a></li>
|
||||||
<?php if ($isSearch == 1): ?>
|
<?php if ($isSearch == 1): ?>
|
||||||
<li class="divider"></li>
|
<li class="divider"></li>
|
||||||
<li><?php echo $this->Html->link(__('Download results as XML'), array('admin' => false, 'controller' => 'events', 'action' => 'downloadSearchResult'));?></li>
|
<li><a href="/events/downloadSearchResult">Download results as XML</a></li>
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
<li class="divider"></li>
|
<li class="divider"></li>
|
||||||
<li><?php echo $this->Html->link('Export', array('controller' => 'events', 'action' => 'export')); ?> </li>
|
<li><a href="/events/export">Export</a></li>
|
||||||
<?php if ($isAclAuth): ?>
|
<?php if ($isAclAuth): ?>
|
||||||
<li><?php echo $this->Html->link('Automation', array('controller' => 'events', 'action' => 'automation')); ?></li>
|
<li><a href="/events/automation">Automation</a></li>
|
||||||
<?php endif;?>
|
<?php endif;?>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
<script type="text/javascript">
|
||||||
|
// tooltips
|
||||||
|
$(document).ready(function () {
|
||||||
|
$("td, div").tooltip({
|
||||||
|
'placement': 'top',
|
||||||
|
'container' : 'body',
|
||||||
|
delay: { show: 500, hide: 100 }
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
|
</script>
|
|
@ -16,9 +16,9 @@
|
||||||
<?php
|
<?php
|
||||||
echo $this->Form->input('type', array(
|
echo $this->Form->input('type', array(
|
||||||
'div' => 'input clear',
|
'div' => 'input clear',
|
||||||
'after' => $this->Html->div('forminfo', '', array('id' => 'AttributeTypeDiv'))
|
|
||||||
));
|
));
|
||||||
echo $this->Form->input('category', array('after' => $this->Html->div('forminfo', '', array('id' => 'AttributeCategoryDiv'))));
|
echo $this->Form->input('category', array(
|
||||||
|
));
|
||||||
?>
|
?>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
<?php
|
<?php
|
||||||
|
@ -99,7 +99,6 @@ foreach ($typeDefinitions as $type => $def) {
|
||||||
|
|
||||||
function formCategoryChanged(id) {
|
function formCategoryChanged(id) {
|
||||||
var alreadySelected = $('#AttributeType').val();
|
var alreadySelected = $('#AttributeType').val();
|
||||||
showFormInfo(id); // display the tooltip
|
|
||||||
// empty the types
|
// empty the types
|
||||||
document.getElementById("AttributeType").options.length = 1;
|
document.getElementById("AttributeType").options.length = 1;
|
||||||
// add new items to options
|
// add new items to options
|
||||||
|
@ -112,15 +111,10 @@ function formCategoryChanged(id) {
|
||||||
});
|
});
|
||||||
// enable the form element
|
// enable the form element
|
||||||
$('#AttributeType').prop('disabled', false);
|
$('#AttributeType').prop('disabled', false);
|
||||||
if ("ALL" == $('#AttributeCategory').val()) {
|
|
||||||
//alert($('#AttributeCategory').val());
|
|
||||||
$('#AttributeCategoryDiv').hide();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function formTypeChanged(id) {
|
function formTypeChanged(id) {
|
||||||
var alreadySelected = $('#AttributeCategory').val();
|
var alreadySelected = $('#AttributeCategory').val();
|
||||||
showFormInfo(id); // display the tooltip
|
|
||||||
// empty the categories
|
// empty the categories
|
||||||
document.getElementById("AttributeCategory").options.length = 2;
|
document.getElementById("AttributeCategory").options.length = 2;
|
||||||
// add new items to options
|
// add new items to options
|
||||||
|
@ -133,10 +127,6 @@ function formTypeChanged(id) {
|
||||||
});
|
});
|
||||||
// enable the form element
|
// enable the form element
|
||||||
$('#AttributeCategory').prop('disabled', false);
|
$('#AttributeCategory').prop('disabled', false);
|
||||||
if ("ALL" == $('#AttributeType').val()) {
|
|
||||||
//alert($('#AttributeType').val());
|
|
||||||
$('#AttributeTypeDiv').hide();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
var formInfoValues = new Array();
|
var formInfoValues = new Array();
|
||||||
|
@ -151,49 +141,64 @@ foreach ($categoryDefinitions as $category => $def) {
|
||||||
echo "formInfoValues['$category'] = \"$info\";\n";
|
echo "formInfoValues['$category'] = \"$info\";\n";
|
||||||
}
|
}
|
||||||
$this->Js->get('#AttributeCategory')->event('change', 'formCategoryChanged("#AttributeCategory")');
|
$this->Js->get('#AttributeCategory')->event('change', 'formCategoryChanged("#AttributeCategory")');
|
||||||
$this->Js->get('#AttributeCategory')->event('change', 'showFormInfo("#AttributeCategory")');
|
|
||||||
$this->Js->get('#AttributeType')->event('change', 'formTypeChanged("#AttributeType")');
|
$this->Js->get('#AttributeType')->event('change', 'formTypeChanged("#AttributeType")');
|
||||||
$this->Js->get('#AttributeType')->event('change', 'showFormInfo("#AttributeType")');
|
|
||||||
?>
|
?>
|
||||||
|
|
||||||
formInfoValues['ALL'] = '';
|
formInfoValues['ALL'] = '';
|
||||||
formInfoValues[''] = '';
|
formInfoValues[''] = '';
|
||||||
|
|
||||||
function showFormInfo(id) {
|
|
||||||
idDiv = id+'Div';
|
|
||||||
if (("ALL" != $(id).val()) && ("" != $(id).val())) {
|
|
||||||
// LATER use nice animations
|
|
||||||
//$(idDiv).hide('fast');
|
|
||||||
// change the content
|
|
||||||
var value = $(id).val(); // get the selected value
|
|
||||||
$(idDiv).html(formInfoValues[value]); // search in a lookup table
|
|
||||||
|
|
||||||
// show it again
|
$(document).ready(function() {
|
||||||
$(idDiv).fadeIn('slow');
|
|
||||||
} else {
|
$("#AttributeType, #AttributeCategory").on('mouseleave', function(e) {
|
||||||
$(idDiv).hide();
|
$('#'+e.currentTarget.id).popover('destroy');
|
||||||
}
|
});
|
||||||
}
|
|
||||||
|
$("#AttributeType, #AttributeCategory").on('mouseover', function(e) {
|
||||||
|
var $e = $(e.target);
|
||||||
|
if ($e.is('option')) {
|
||||||
|
$('#'+e.currentTarget.id).popover('destroy');
|
||||||
|
$('#'+e.currentTarget.id).popover({
|
||||||
|
trigger: 'manual',
|
||||||
|
placement: 'right',
|
||||||
|
content: formInfoValues[$e.val()],
|
||||||
|
}).popover('show');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// workaround for browsers like IE and Chrome that do now have an onmouseover on the 'options' of a select.
|
||||||
|
// disadvangate is that user needs to click on the item to see the tooltip.
|
||||||
|
// no solutions exist, except to generate the select completely using html.
|
||||||
|
$("#AttributeType, #AttributeCategory").on('change', function(e) {
|
||||||
|
var $e = $(e.target);
|
||||||
|
$('#'+e.currentTarget.id).popover('destroy');
|
||||||
|
$('#'+e.currentTarget.id).popover({
|
||||||
|
trigger: 'manual',
|
||||||
|
placement: 'right',
|
||||||
|
content: formInfoValues[$e.val()],
|
||||||
|
}).popover('show');
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// hide the formInfo things
|
|
||||||
$('#AttributeTypeDiv').hide();
|
|
||||||
$('#AttributeCategoryDiv').hide();
|
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
<?php echo $this->Js->writeBuffer(); // Write cached scripts ?>
|
<?php echo $this->Js->writeBuffer(); // Write cached scripts ?>
|
||||||
<div class="actions">
|
<div class="actions">
|
||||||
<ul class="nav nav-list">
|
<ul class="nav nav-list">
|
||||||
<li><?php echo $this->Html->link('List Events', array('controller' => 'events', 'action' => 'index')); ?></li>
|
<li><a href="/events/index">List Events</a></li>
|
||||||
<?php if ($isAclAdd): ?>
|
<?php if ($isAclAdd): ?>
|
||||||
<li><?php echo $this->Html->link('Add Event', array('controller' => 'events', 'action' => 'add')); ?></li>
|
<li><a href="/events/add">Add Event</a></li>
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
<li class="divider"></li>
|
<li class="divider"></li>
|
||||||
<li><?php echo $this->Html->link('List Attributes', array('controller' => 'attributes', 'action' => 'index')); ?> </li>
|
<li><a href="/attributes/index">List Attributes</a></li>
|
||||||
<li class="active"><?php echo $this->Html->link('Search Attributes', array('controller' => 'attributes', 'action' => 'search')); ?> </li>
|
<li class="active"><a href="/attributes/search">Search Attributes</a></li>
|
||||||
<li class="divider"></li>
|
<li class="divider"></li>
|
||||||
<li><?php echo $this->Html->link('Export', array('controller' => 'events', 'action' => 'export')); ?> </li>
|
<li><a href="/events/export">Export</a></li>
|
||||||
<?php if ($isAclAuth): ?>
|
<?php if ($isAclAuth): ?>
|
||||||
<li><?php echo $this->Html->link('Automation', array('controller' => 'events', 'action' => 'automation')); ?></li>
|
<li><a href="/events/automation">Automation</a></li>
|
||||||
<?php endif;?>
|
<?php endif;?>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
|
@ -4,7 +4,7 @@
|
||||||
<?php if ($me != false ):?>
|
<?php if ($me != false ):?>
|
||||||
<div class="nav-collapse collapse">
|
<div class="nav-collapse collapse">
|
||||||
<ul class="nav">
|
<ul class="nav">
|
||||||
<li class="active"><?php echo $this->Html->link('home', '/');?></li>
|
<li class="active"><a href="/">home</a></li>
|
||||||
|
|
||||||
|
|
||||||
<li class="dropdown">
|
<li class="dropdown">
|
||||||
|
@ -13,17 +13,17 @@
|
||||||
<b class="caret"></b>
|
<b class="caret"></b>
|
||||||
</a>
|
</a>
|
||||||
<ul class="dropdown-menu">
|
<ul class="dropdown-menu">
|
||||||
<li><?php echo $this->Html->link('List Events', array('controller' => 'events', 'action' => 'index')); ?></li>
|
<li><a href="/events/index">List Events</a></li>
|
||||||
<?php if ($isAclAdd): ?>
|
<?php if ($isAclAdd): ?>
|
||||||
<li><?php echo $this->Html->link('Add Event', array('controller' => 'events', 'action' => 'add')); ?></li>
|
<li><a href="/events/add">Add Event</a></li>
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
<li class="divider"></li>
|
<li class="divider"></li>
|
||||||
<li><?php echo $this->Html->link('List Attributes', array('controller' => 'attributes', 'action' => 'index')); ?> </li>
|
<li><a href="/attributes/index">List Attributes</a></li>
|
||||||
<li><?php echo $this->Html->link('Search Attributes', array('controller' => 'attributes', 'action' => 'search')); ?> </li>
|
<li><a href="/attributes/search">Search Attributes</a></li>
|
||||||
<li class="divider"></li>
|
<li class="divider"></li>
|
||||||
<li><?php echo $this->Html->link('Export', array('controller' => 'events', 'action' => 'export')); ?> </li>
|
<li><a href="/events/export">Export</a></li>
|
||||||
<?php if ($isAclAuth): ?>
|
<?php if ($isAclAuth): ?>
|
||||||
<li><?php echo $this->Html->link('Automation', array('controller' => 'events', 'action' => 'automation')); ?></li>
|
<li><a href="/events/automation">Automation</a></li>
|
||||||
<?php endif;?>
|
<?php endif;?>
|
||||||
|
|
||||||
</ul>
|
</ul>
|
||||||
|
@ -36,14 +36,14 @@
|
||||||
</a>
|
</a>
|
||||||
<ul class="dropdown-menu">
|
<ul class="dropdown-menu">
|
||||||
<?php if ($isSiteAdmin): ?>
|
<?php if ($isSiteAdmin): ?>
|
||||||
<li><?php echo $this->Html->link(__('Import Blacklist', true), array('controller' => 'blacklists', 'action' => 'index', 'admin' => true)); ?> </li>
|
<li><a href="/admin/blacklists/index">Import Blacklist</a></li>
|
||||||
<li><?php echo $this->Html->link(__('Import Regexp', true), array('controller' => 'regexp', 'action' => 'index', 'admin' => true)); ?> </li>
|
<li><a href="/admin/regexp/index">Import Regexp</a></li>
|
||||||
<li><?php echo $this->Html->link(__('Signature Whitelist', true), array('controller' => 'whitelists', 'action' => 'index', 'admin' => true)); ?> </li>
|
<li><a href="/admin/whitelists/index">Signature Whitelist</a></li>
|
||||||
<?php endif;?>
|
<?php endif;?>
|
||||||
<?php if (!$isSiteAdmin): ?>
|
<?php if (!$isSiteAdmin): ?>
|
||||||
<li><?php echo $this->Html->link(__('Import Blacklist', true), array('controller' => 'blacklists', 'action' => 'index')); ?> </li>
|
<li><a href="/blacklists/index">Import Blacklist</a></li>
|
||||||
<li><?php echo $this->Html->link(__('Import Regexp', true), array('controller' => 'regexp', 'action' => 'index')); ?> </li>
|
<li><a href="/regexp/index">Import Regexp</a></li>
|
||||||
<li><?php echo $this->Html->link(__('Signature Whitelist', true), array('controller' => 'whitelists', 'action' => 'index')); ?> </li>
|
<li><a href="/whitelists/index">Signature Whitelist</a></li>
|
||||||
<?php endif;?>
|
<?php endif;?>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
|
@ -54,13 +54,13 @@
|
||||||
<b class="caret"></b>
|
<b class="caret"></b>
|
||||||
</a>
|
</a>
|
||||||
<ul class="dropdown-menu">
|
<ul class="dropdown-menu">
|
||||||
<li><?php echo $this->Html->link(__('News', true), array('controller' => 'users', 'action' => 'news', 'plugin' => false)); ?> </li>
|
<li><a href="/users/news">News</a></li>
|
||||||
<li><?php echo $this->Html->link(__('My Profile', true), array('controller' => 'users', 'action' => 'view', 'me', 'plugin' => false)); ?> </li>
|
<li><a href="/users/view/me">My Profile</a></li>
|
||||||
<li><?php echo $this->Html->link(__('Members List', true), array('controller' => 'users', 'action' => 'memberslist', 'plugin' => false)); ?> </li>
|
<li><a href="/users/memberslist">Members List</a></li>
|
||||||
<li><?php echo $this->Html->link(__('User Guide', true), array('controller' => 'pages', 'action' => 'display', 'documentation', 'plugin' => false)); ?> </li>
|
<li><a href="/pages/display/documentation">User Guide</a></li>
|
||||||
<li><?php echo $this->Html->link(__('Terms & Conditions', true), array('controller' => 'users', 'action' => 'terms', 'plugin' => false)); ?> </li>
|
<li><a href="/users/terms">Terms & Conditions</a></li>
|
||||||
<li class="divider"></li>
|
<li class="divider"></li>
|
||||||
<li><?php echo $this->Html->link(__('Log out', true), array('controller' => 'users', 'action' => 'logout', 'plugin' => false)); ?> </li>
|
<li><a href="/users/logout">Log out</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
|
@ -71,7 +71,7 @@
|
||||||
<b class="caret"></b>
|
<b class="caret"></b>
|
||||||
</a>
|
</a>
|
||||||
<ul class="dropdown-menu">
|
<ul class="dropdown-menu">
|
||||||
<li><?php echo $this->Html->link(__('List Servers'), array('controller' => 'servers', 'action' => 'index', 'plugin' => false));?></li>
|
<li><a href="/servers/index">List Servers</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<?php endif;?>
|
<?php endif;?>
|
||||||
|
@ -83,16 +83,16 @@
|
||||||
<b class="caret"></b>
|
<b class="caret"></b>
|
||||||
</a>
|
</a>
|
||||||
<ul class="dropdown-menu">
|
<ul class="dropdown-menu">
|
||||||
<li><?php echo $this->Html->link(__('New User', true), array('controller' => 'users', 'action' => 'add', 'admin' => true, 'plugin' => false)); ?> </li>
|
<li><a href="/admin/users/add">New User</a></li>
|
||||||
<li><?php echo $this->Html->link(__('List Users', true), array('controller' => 'users', 'action' => 'index', 'admin' => true, 'plugin' => false)); ?> </li>
|
<li><a href="/admin/users/index">List Users</a></li>
|
||||||
<li class="divider"></li>
|
<li class="divider"></li>
|
||||||
<?php if($isSiteAdmin): ?>
|
<?php if($isSiteAdmin): ?>
|
||||||
<li><?php echo $this->Html->link(__('New Role', true), array('controller' => 'roles', 'action' => 'add', 'admin' => true, 'plugin' => false)); ?> </li>
|
<li><a href="/admin/roles/add">New Role</a></li>
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
<li><?php echo $this->Html->link(__('List Roles', true), array('controller' => 'roles', 'action' => 'index', 'admin' => true, 'plugin' => false)); ?> </li>
|
<li><a href="/admin/roles/index">List Roles</a></li>
|
||||||
<?php if($isSiteAdmin): ?>
|
<?php if($isSiteAdmin): ?>
|
||||||
<li class="divider"></li>
|
<li class="divider"></li>
|
||||||
<li><?php echo $this->Html->link(__('Contact users', true), array('controller' => 'users', 'action' => 'email', 'admin' => true, 'plugin' => false)); ?> </li>
|
<li><a href="/admin/users/email">Contact Users</a></li>
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
|
@ -105,17 +105,17 @@
|
||||||
<b class="caret"></b>
|
<b class="caret"></b>
|
||||||
</a>
|
</a>
|
||||||
<ul class="dropdown-menu">
|
<ul class="dropdown-menu">
|
||||||
<li><?php echo $this->Html->link(__('List Logs', true), array('controller' => 'logs', 'action' => 'index', 'admin' => true, 'plugin' => false)); ?> </li>
|
<li><a href="/admin/logs/index">List Logs</a></li>
|
||||||
<li><?php echo $this->Html->link(__('Search Logs', true), array('controller' => 'logs', 'action' => 'admin_search', 'admin' => true, 'plugin' => false)); ?> </li>
|
<li><a href="/admin/logs/search">Search Logs</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<?php endif;?>
|
<?php endif;?>
|
||||||
|
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<div class="nav-collapse collapse" style="float:right">
|
<div class="nav-collapse collapse pull-right">
|
||||||
<ul class="nav">
|
<ul class="nav">
|
||||||
<li><?php echo $this->Html->link(__('Log out', true), array('controller' => 'users', 'action' => 'logout', 'plugin' => false)); ?> </li>
|
<li><a href="/users/logout">Log out</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<?php endif;?>
|
<?php endif;?>
|
||||||
|
|
|
@ -11,17 +11,14 @@
|
||||||
echo $this->Form->input('distribution', array(
|
echo $this->Form->input('distribution', array(
|
||||||
'options' => array($distributionLevels),
|
'options' => array($distributionLevels),
|
||||||
'label' => 'Distribution',
|
'label' => 'Distribution',
|
||||||
'selected' => '3',
|
'selected' => '3'
|
||||||
'after' => $this->Html->div('forminfo', '', array('id' => 'EventDistributionDiv')),
|
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
echo $this->Form->input('risk', array(
|
echo $this->Form->input('risk', array(
|
||||||
'after' => $this->Html->div('forminfo', '', array('id' => 'EventRiskDiv')),
|
|
||||||
'div' => 'input clear'
|
'div' => 'input clear'
|
||||||
));
|
));
|
||||||
echo $this->Form->input('analysis', array(
|
echo $this->Form->input('analysis', array(
|
||||||
'options' => array($analysisLevels),
|
'options' => array($analysisLevels),
|
||||||
'after' => $this->Html->div('forminfo', '', array('id' => 'EventAnalysisDiv'))
|
|
||||||
));
|
));
|
||||||
echo $this->Form->input('info', array(
|
echo $this->Form->input('info', array(
|
||||||
'div' => 'clear',
|
'div' => 'clear',
|
||||||
|
@ -30,13 +27,8 @@
|
||||||
echo $this->Form->input('Event.submittedgfi', array(
|
echo $this->Form->input('Event.submittedgfi', array(
|
||||||
'label' => '<b>GFI sandbox</b>',
|
'label' => '<b>GFI sandbox</b>',
|
||||||
'type' => 'file',
|
'type' => 'file',
|
||||||
// 'between' => $this->Html->div('forminfo', isset($eventDescriptions['submittedgfi']['formdesc']) ? $eventDescriptions['submittedgfi']['formdesc'] : $eventDescriptions['submittedgfi']['desc']),
|
|
||||||
'div' => 'clear'
|
'div' => 'clear'
|
||||||
));
|
));
|
||||||
// link an onchange event to the form elements
|
|
||||||
$this->Js->get('#EventDistribution')->event('change', 'showFormInfo("#EventDistribution")');
|
|
||||||
$this->Js->get('#EventRisk')->event('change', 'showFormInfo("#EventRisk")');
|
|
||||||
$this->Js->get('#EventAnalysis')->event('change', 'showFormInfo("#EventAnalysis")');
|
|
||||||
?>
|
?>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
<?php
|
<?php
|
||||||
|
@ -47,17 +39,17 @@ echo $this->Form->end();
|
||||||
|
|
||||||
<div class="actions">
|
<div class="actions">
|
||||||
<ul class="nav nav-list">
|
<ul class="nav nav-list">
|
||||||
<li><?php echo $this->Html->link('List Events', array('controller' => 'events', 'action' => 'index')); ?></li>
|
<li><a href="/events/index">List Events</a></li>
|
||||||
<?php if ($isAclAdd): ?>
|
<?php if ($isAclAdd): ?>
|
||||||
<li class="active"><?php echo $this->Html->link('Add Event', array('controller' => 'events', 'action' => 'add')); ?></li>
|
<li class="active"><a href="/events/add">Add Event</a></li>
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
<li class="divider"></li>
|
<li class="divider"></li>
|
||||||
<li><?php echo $this->Html->link('List Attributes', array('controller' => 'attributes', 'action' => 'index')); ?> </li>
|
<li><a href="/attributes/index">List Attributes</a></li>
|
||||||
<li><?php echo $this->Html->link('Search Attributes', array('controller' => 'attributes', 'action' => 'search')); ?> </li>
|
<li><a href="/attributes/search">Search Attributes</a></li>
|
||||||
<li class="divider"></li>
|
<li class="divider"></li>
|
||||||
<li><?php echo $this->Html->link('Export', array('controller' => 'events', 'action' => 'export')); ?> </li>
|
<li><a href="/events/export">Export</a></li>
|
||||||
<?php if ($isAclAuth): ?>
|
<?php if ($isAclAuth): ?>
|
||||||
<li><?php echo $this->Html->link('Automation', array('controller' => 'events', 'action' => 'automation')); ?></li>
|
<li><a href="/events/automation">Automation</a></li>
|
||||||
<?php endif;?>
|
<?php endif;?>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
@ -82,20 +74,37 @@ foreach ($analysisDescriptions as $type => $def) {
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
|
|
||||||
function showFormInfo(id) {
|
$(document).ready(function() {
|
||||||
idDiv = id+'Div';
|
|
||||||
// LATER use nice animations
|
$("#EventAnalysis, #EventRisk, #EventDistribution").on('mouseleave', function(e) {
|
||||||
//$(idDiv).hide('fast');
|
$('#'+e.currentTarget.id).popover('destroy');
|
||||||
// change the content
|
});
|
||||||
var value = $(id).val(); // get the selected value
|
|
||||||
$(idDiv).html(formInfoValues[value]); // search in a lookup table
|
$("#EventAnalysis, #EventRisk, #EventDistribution").on('mouseover', function(e) {
|
||||||
// show it again
|
var $e = $(e.target);
|
||||||
$(idDiv).fadeIn('slow');
|
if ($e.is('option')) {
|
||||||
}
|
$('#'+e.currentTarget.id).popover('destroy');
|
||||||
|
$('#'+e.currentTarget.id).popover({
|
||||||
|
trigger: 'manual',
|
||||||
|
placement: 'right',
|
||||||
|
content: formInfoValues[$e.val()],
|
||||||
|
}).popover('show');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// workaround for browsers like IE and Chrome that do now have an onmouseover on the 'options' of a select.
|
||||||
|
// disadvangate is that user needs to click on the item to see the tooltip.
|
||||||
|
// no solutions exist, except to generate the select completely using html.
|
||||||
|
$("#EventAnalysis, #EventRisk, #EventDistribution").on('change', function(e) {
|
||||||
|
var $e = $(e.target);
|
||||||
|
$('#'+e.currentTarget.id).popover('destroy');
|
||||||
|
$('#'+e.currentTarget.id).popover({
|
||||||
|
trigger: 'manual',
|
||||||
|
placement: 'right',
|
||||||
|
content: formInfoValues[$e.val()],
|
||||||
|
}).popover('show');
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
// hide the formInfo things
|
|
||||||
$('#EventDistributionDiv').hide();
|
|
||||||
$('#EventRiskDiv').hide();
|
|
||||||
$('#EventAnalysisDiv').hide();
|
|
||||||
</script>
|
</script>
|
||||||
<?php echo $this->Js->writeBuffer();
|
<?php echo $this->Js->writeBuffer();
|
||||||
|
|
|
@ -16,26 +16,32 @@ echo $this->Form->end();
|
||||||
</div>
|
</div>
|
||||||
<div class="actions">
|
<div class="actions">
|
||||||
<ul class="nav nav-list">
|
<ul class="nav nav-list">
|
||||||
<li><?php echo $this->Html->link('View Event', array('controller' => 'events', 'action' => 'view', $id)); ?> </li>
|
<li><a href="/events/view/<?php echo $this->request->data['Event']['id'];?>">View Event</a></li>
|
||||||
<?php if ($isSiteAdmin || $mayModify): ?>
|
<?php if ($isSiteAdmin || $mayModify): ?>
|
||||||
<li><?php echo $this->Html->link('Edit Event', array('controller' => 'events', 'action' => 'edit', $id)); ?> </li>
|
<li><a href="/events/edit/<?php echo $this->request->data['Event']['id'];?>">Edit Event</a></li>
|
||||||
<li><?php echo $this->Form->postLink('Delete Event', array('controller' => 'events', 'action' => 'delete', $id), null, __('Are you sure you want to delete # %s?', $id)); ?></li>
|
<li><?php echo $this->Form->postLink('Delete Event', array('action' => 'delete', $this->request->data['Event']['id']), null, __('Are you sure you want to delete # %s?', $this->request->data['Event']['id'])); ?></li>
|
||||||
<li class="divider"></li>
|
<li class="divider"></li>
|
||||||
<li><?php echo $this->Html->link('Add Attribute', array('controller' => 'attributes', 'action' => 'add', $id));?> </li>
|
<li><a href="/attributes/add/<?php echo $this->request->data['Event']['id'];?>">Add Attribute</a></li>
|
||||||
<li><?php echo $this->Html->link('Add Attachment', array('controller' => 'attributes', 'action' => 'add_attachment', $id));?> </li>
|
<li><a href="/attributes/add_attachment/<?php echo $this->request->data['Event']['id'];?>">Add Attachment</a></li>
|
||||||
<li class="active"><?php echo $this->Html->link('Populate event from IOC', array('controller' => 'events', 'action' => 'addIOC', $id));?> </li>
|
<li class="active"><a href="/events/addIOC/<?php echo $this->request->data['Event']['id'];?>">Populate from IOC</a></li>
|
||||||
<?php else: ?>
|
<?php else: ?>
|
||||||
<li><?php echo $this->Html->link('Propose Attribute', array('controller' => 'shadow_attributes', 'action' => 'add', $id));?> </li>
|
<li><a href="/shadow_attributes/add/<?php echo $this->request->data['Event']['id'];?>">Propose Attribute</a></li>
|
||||||
<li><?php echo $this->Html->link('Propose Attachment', array('controller' => 'shadow_attributes', 'action' => 'add_attachment', $id));?> </li>
|
<li><a href="/shadow_attributes/add_attachment/<?php echo $this->request->data['Event']['id'];?>">Propose Attachment</a></li>
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
<li class="divider"></li>
|
<li class="divider"></li>
|
||||||
<li><?php echo $this->Html->link(__('Contact reporter', true), array('controller' => 'events', 'action' => 'contact', $id)); ?> </li>
|
<?php if ( 0 == $this->request->data['Event']['published'] && ($isAdmin || $mayPublish)): ?>
|
||||||
<li><?php echo $this->Html->link(__('Download as XML', true), array('controller' => 'events', 'action' => 'xml', 'download', $id)); ?></li>
|
<li><?php echo $this->Form->postLink('Publish Event', array('action' => 'alert', $this->request->data['Event']['id']), null, 'Are you sure this event is complete and everyone should be informed?'); ?></li>
|
||||||
<li><?php echo $this->Html->link(__('Download as IOC', true), array('controller' => 'events', 'action' => 'downloadOpenIOCEvent', $id)); ?> </li>
|
<li><?php echo $this->Form->postLink('Publish (no email)', array('action' => 'publish', $this->request->data['Event']['id']), null, 'Publish but do NOT send alert email? Only for minor changes!'); ?></li>
|
||||||
|
<?php else: ?>
|
||||||
|
<!-- ul><li>Alert already sent</li></ul -->
|
||||||
|
<?php endif; ?>
|
||||||
|
<li><a href="/events/contact/<?php echo $this->request->data['Event']['id'];?>">Contact Reporter</a></li>
|
||||||
|
<li><a href="/events/xml/download/<?php echo $this->request->data['Event']['id'];?>">Download as XML</a></li>
|
||||||
|
<li><a href="/events/downloadOpenIOCEvent/<?php echo $this->request->data['Event']['id'];?>">Download as IOC</a></li>
|
||||||
<li class="divider"></li>
|
<li class="divider"></li>
|
||||||
<li><?php echo $this->Html->link('List Events', array('controller' => 'events', 'action' => 'index')); ?></li>
|
<li><a href="/events/index">List Events</a></li>
|
||||||
<?php if ($isAclAdd): ?>
|
<?php if ($isAclAdd): ?>
|
||||||
<li><?php echo $this->Html->link('Add Event', array('controller' => 'events', 'action' => 'add')); ?></li>
|
<li><a href="/events/add">Add Event</a></li>
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
|
@ -58,17 +58,17 @@ This would enable you to export:</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="actions">
|
<div class="actions">
|
||||||
<ul class="nav nav-list">
|
<ul class="nav nav-list">
|
||||||
<li><?php echo $this->Html->link('List Events', array('controller' => 'events', 'action' => 'index')); ?></li>
|
<li><a href="/events/index">List Events</a></li>
|
||||||
<?php if ($isAclAdd): ?>
|
<?php if ($isAclAdd): ?>
|
||||||
<li><?php echo $this->Html->link('Add Event', array('controller' => 'events', 'action' => 'add')); ?></li>
|
<li><a href="/events/add">Add Event</a></li>
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
<li class="divider"></li>
|
<li class="divider"></li>
|
||||||
<li><?php echo $this->Html->link('List Attributes', array('controller' => 'attributes', 'action' => 'index')); ?> </li>
|
<li><a href="/attributes/index">List Attributes</a></li>
|
||||||
<li><?php echo $this->Html->link('Search Attributes', array('controller' => 'attributes', 'action' => 'search')); ?> </li>
|
<li><a href="/attributes/search">Search Attributes</a></li>
|
||||||
<li class="divider"></li>
|
<li class="divider"></li>
|
||||||
<li><?php echo $this->Html->link('Export', array('controller' => 'events', 'action' => 'export')); ?> </li>
|
<li><a href="/events/export">Export</a></li>
|
||||||
<?php if ($isAclAuth): ?>
|
<?php if ($isAclAuth): ?>
|
||||||
<li class="active"><?php echo $this->Html->link('Automation', array('controller' => 'events', 'action' => 'automation')); ?></li>
|
<li class="active"><a href="/events/automation">Automation</a></li>
|
||||||
<?php endif;?>
|
<?php endif;?>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -35,26 +35,32 @@ $mayPublish = ($isAclPublish && $this->request->data['Event']['orgc'] == $me['or
|
||||||
</div>
|
</div>
|
||||||
<div class="actions">
|
<div class="actions">
|
||||||
<ul class="nav nav-list">
|
<ul class="nav nav-list">
|
||||||
<li><?php echo $this->Html->link('View Event', array('controller' => 'events', 'action' => 'view', $this->request->data['Event']['id'])); ?> </li>
|
<li><a href="/events/view/<?php echo $event['Event']['id'];?>">View Event</a></li>
|
||||||
<?php if ($isSiteAdmin || $mayModify): ?>
|
<?php if ($isSiteAdmin || $mayModify): ?>
|
||||||
<li><?php echo $this->Html->link('Edit Event', array('controller' => 'events', 'action' => 'edit', $this->request->data['Event']['id'])); ?> </li>
|
<li><a href="/events/edit/<?php echo $event['Event']['id'];?>">Edit Event</a></li>
|
||||||
<li><?php echo $this->Form->postLink('Delete Event', array('controller' => 'events', 'action' => 'delete', $this->request->data['Event']['id']), null, __('Are you sure you want to delete # %s?', $this->request->data['Event']['id'])); ?></li>
|
<li><?php echo $this->Form->postLink('Delete Event', array('action' => 'delete', $event['Event']['id']), null, __('Are you sure you want to delete # %s?', $event['Event']['id'])); ?></li>
|
||||||
<li class="divider"></li>
|
<li class="divider"></li>
|
||||||
<li><?php echo $this->Html->link('Add Attribute', array('controller' => 'attributes', 'action' => 'add', $this->request->data['Event']['id']));?> </li>
|
<li><a href="/attributes/add/<?php echo $event['Event']['id'];?>">Add Attribute</a></li>
|
||||||
<li><?php echo $this->Html->link('Add Attachment', array('controller' => 'attributes', 'action' => 'add_attachment', $this->request->data['Event']['id']));?> </li>
|
<li><a href="/attributes/add_attachment/<?php echo $event['Event']['id'];?>">Add Attachment</a></li>
|
||||||
<li><?php echo $this->Html->link('Populate event from IOC', array('controller' => 'events', 'action' => 'addIOC', $this->request->data['Event']['id']));?> </li>
|
<li><a href="/events/addIOC/<?php echo $event['Event']['id'];?>">Populate from IOC</a></li>
|
||||||
<?php else: ?>
|
<?php else: ?>
|
||||||
<li><?php echo $this->Html->link('Propose Attribute', array('controller' => 'shadow_attributes', 'action' => 'add', $this->request->data['Event']['id']));?> </li>
|
<li><a href="/shadow_attributes/add/<?php echo $event['Event']['id'];?>">Propose Attribute</a></li>
|
||||||
<li><?php echo $this->Html->link('Propose Attachment', array('controller' => 'shadow_attributes', 'action' => 'add_attachment', $this->request->data['Event']['id']));?> </li>
|
<li><a href="/shadow_attributes/add_attachment/<?php echo $event['Event']['id'];?>">Propose Attachment</a></li>
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
<li class="divider"></li>
|
<li class="divider"></li>
|
||||||
<li class="active"><?php echo $this->Html->link(__('Contact reporter', true), array('controller' => 'events', 'action' => 'contact', $this->request->data['Event']['id'])); ?> </li>
|
<?php if ( 0 == $event['Event']['published'] && ($isAdmin || $mayPublish)): ?>
|
||||||
<li><?php echo $this->Html->link(__('Download as XML', true), array('controller' => 'events', 'action' => 'xml', 'download', $this->request->data['Event']['id'])); ?></li>
|
<li><?php echo $this->Form->postLink('Publish Event', array('action' => 'alert', $event['Event']['id']), null, 'Are you sure this event is complete and everyone should be informed?'); ?></li>
|
||||||
<li><?php echo $this->Html->link(__('Download as IOC', true), array('controller' => 'events', 'action' => 'downloadOpenIOCEvent', $this->request->data['Event']['id'])); ?> </li>
|
<li><?php echo $this->Form->postLink('Publish (no email)', array('action' => 'publish', $event['Event']['id']), null, 'Publish but do NOT send alert email? Only for minor changes!'); ?></li>
|
||||||
|
<?php else: ?>
|
||||||
|
<!-- ul><li>Alert already sent</li></ul -->
|
||||||
|
<?php endif; ?>
|
||||||
|
<li class="active"><a href="/events/contact/<?php echo $event['Event']['id'];?>">Contact Reporter</a></li>
|
||||||
|
<li><a href="/events/xml/download/<?php echo $event['Event']['id'];?>">Download as XML</a></li>
|
||||||
|
<li><a href="/events/downloadOpenIOCEvent/<?php echo $event['Event']['id'];?>">Download as IOC</a></li>
|
||||||
<li class="divider"></li>
|
<li class="divider"></li>
|
||||||
<li><?php echo $this->Html->link('List Events', array('controller' => 'events', 'action' => 'index')); ?></li>
|
<li><a href="/events/index">List Events</a></li>
|
||||||
<?php if ($isAclAdd): ?>
|
<?php if ($isAclAdd): ?>
|
||||||
<li><?php echo $this->Html->link('Add Event', array('controller' => 'events', 'action' => 'add')); ?></li>
|
<li><a href="/events/add">Add Event</a></li>
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -13,26 +13,19 @@ if ('true' == Configure::read('CyDefSIG.sync')) {
|
||||||
'options' => array($distributionLevels),
|
'options' => array($distributionLevels),
|
||||||
'label' => 'Distribution',
|
'label' => 'Distribution',
|
||||||
'selected' => '3',
|
'selected' => '3',
|
||||||
'after' => $this->Html->div('forminfo', '', array('id' => 'EventDistributionDiv')),
|
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
echo $this->Form->input('risk', array(
|
echo $this->Form->input('risk', array(
|
||||||
'after' => $this->Html->div('forminfo', '', array('id' => 'EventRiskDiv')),
|
|
||||||
'div' => 'input clear'
|
'div' => 'input clear'
|
||||||
));
|
));
|
||||||
echo $this->Form->input('analysis', array(
|
echo $this->Form->input('analysis', array(
|
||||||
'options' => array($analysisLevels),
|
'options' => array($analysisLevels),
|
||||||
'after' => $this->Html->div('forminfo', '', array('id' => 'EventAnalysisDiv'))
|
|
||||||
));
|
));
|
||||||
echo $this->Form->input('info', array(
|
echo $this->Form->input('info', array(
|
||||||
'div' => 'clear',
|
'div' => 'clear',
|
||||||
'class' => 'input-xxlarge'
|
'class' => 'input-xxlarge'
|
||||||
));
|
));
|
||||||
|
|
||||||
// link an onchange event to the form elements
|
|
||||||
$this->Js->get('#EventDistribution')->event('change', 'showFormInfo("#EventDistribution")');
|
|
||||||
$this->Js->get('#EventRisk')->event('change', 'showFormInfo("#EventRisk")');
|
|
||||||
$this->Js->get('#EventAnalysis')->event('change', 'showFormInfo("#EventAnalysis")');
|
|
||||||
?>
|
?>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
<?php
|
<?php
|
||||||
|
@ -42,17 +35,17 @@ echo $this->Form->end();
|
||||||
</div>
|
</div>
|
||||||
<div class="actions">
|
<div class="actions">
|
||||||
<ul class="nav nav-list">
|
<ul class="nav nav-list">
|
||||||
<li><?php echo $this->Html->link('View Event', array('action' => 'view', $this->request->data['Event']['id'])); ?> </li>
|
<li><a href="/events/view/<?php echo $this->request->data['Event']['id'];?>">View Event</a></li>
|
||||||
<?php if ($isSiteAdmin || $mayModify): ?>
|
<?php if ($isSiteAdmin || $mayModify): ?>
|
||||||
<li class="active"><?php echo $this->Html->link('Edit Event', array('action' => 'edit', $this->request->data['Event']['id'])); ?> </li>
|
<li class="active"><a href="/events/edit/<?php echo $this->request->data['Event']['id'];?>">Edit Event</a></li>
|
||||||
<li><?php echo $this->Form->postLink('Delete Event', array('action' => 'delete', $this->request->data['Event']['id']), null, __('Are you sure you want to delete # %s?', $this->request->data['Event']['id'])); ?></li>
|
<li><?php echo $this->Form->postLink('Delete Event', array('action' => 'delete', $this->request->data['Event']['id']), null, __('Are you sure you want to delete # %s?', $this->request->data['Event']['id'])); ?></li>
|
||||||
<li class="divider"></li>
|
<li class="divider"></li>
|
||||||
<li><?php echo $this->Html->link('Add Attribute', array('controller' => 'attributes', 'action' => 'add', $this->request->data['Event']['id']));?> </li>
|
<li><a href="/attributes/add/<?php echo $this->request->data['Event']['id'];?>">Add Attribute</a></li>
|
||||||
<li><?php echo $this->Html->link('Add Attachment', array('controller' => 'attributes', 'action' => 'add_attachment', $this->request->data['Event']['id']));?> </li>
|
<li><a href="/attributes/add_attachment/<?php echo $this->request->data['Event']['id'];?>">Add Attachment</a></li>
|
||||||
<li><?php echo $this->Html->link('Populate event from IOC', array('controller' => 'events', 'action' => 'addIOC', $this->request->data['Event']['id']));?> </li>
|
<li><a href="/events/addIOC/<?php echo $this->request->data['Event']['id'];?>">Populate from IOC</a></li>
|
||||||
<?php else: ?>
|
<?php else: ?>
|
||||||
<li><?php echo $this->Html->link('Propose Attribute', array('controller' => 'shadow_attributes', 'action' => 'add', $this->request->data['Event']['id']));?> </li>
|
<li><a href="/shadow_attributes/add/<?php echo $this->request->data['Event']['id'];?>">Propose Attribute</a></li>
|
||||||
<li><?php echo $this->Html->link('Propose Attachment', array('controller' => 'shadow_attributes', 'action' => 'add_attachment', $this->request->data['Event']['id']));?> </li>
|
<li><a href="/shadow_attributes/add_attachment/<?php echo $this->request->data['Event']['id'];?>">Propose Attachment</a></li>
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
<li class="divider"></li>
|
<li class="divider"></li>
|
||||||
<?php if ( 0 == $this->request->data['Event']['published'] && ($isAdmin || $mayPublish)): ?>
|
<?php if ( 0 == $this->request->data['Event']['published'] && ($isAdmin || $mayPublish)): ?>
|
||||||
|
@ -63,14 +56,13 @@ echo $this->Form->end();
|
||||||
<?php else: ?>
|
<?php else: ?>
|
||||||
<!-- ul><li>Alert already sent</li></ul -->
|
<!-- ul><li>Alert already sent</li></ul -->
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
<li><?php echo $this->Html->link(__('Contact reporter', true), array('action' => 'contact', $this->request->data['Event']['id'])); ?> </li>
|
<li><a href="/events/contact/<?php echo $this->request->data['Event']['id'];?>">Contact Reporter</a></li>
|
||||||
<li><?php echo $this->Html->link(__('Download as XML', true), array('action' => 'xml', 'download', $this->request->data['Event']['id'])); ?></li>
|
<li><a href="/events/xml/download/<?php echo $this->request->data['Event']['id'];?>">Download as XML</a></li>
|
||||||
<li><?php echo $this->Html->link(__('Download as IOC', true), array('action' => 'downloadOpenIOCEvent', $this->request->data['Event']['id'])); ?> </li>
|
<li><a href="/events/downloadOpenIOCEvent/<?php echo $this->request->data['Event']['id'];?>">Download as IOC</a></li>
|
||||||
|
|
||||||
<li class="divider"></li>
|
<li class="divider"></li>
|
||||||
<li><?php echo $this->Html->link('List Events', array('controller' => 'events', 'action' => 'index')); ?></li>
|
<li><a href="/events/index">List Events</a></li>
|
||||||
<?php if ($isAclAdd): ?>
|
<?php if ($isAclAdd): ?>
|
||||||
<li><?php echo $this->Html->link('Add Event', array('controller' => 'events', 'action' => 'add')); ?></li>
|
<li><a href="/events/add">Add Event</a></li>
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
@ -81,10 +73,13 @@ echo $this->Form->end();
|
||||||
//
|
//
|
||||||
var formInfoValues = new Array();
|
var formInfoValues = new Array();
|
||||||
<?php
|
<?php
|
||||||
foreach ($distributionDescriptions as $type => $def) {
|
if ('true' == $canEditDist) {
|
||||||
$info = isset($def['formdesc']) ? $def['formdesc'] : $def['desc'];
|
foreach ($distributionDescriptions as $type => $def) {
|
||||||
echo "formInfoValues['" . addslashes($type) . "'] = \"" . addslashes($info) . "\";\n"; // as we output JS code we need to add slashes
|
$info = isset($def['formdesc']) ? $def['formdesc'] : $def['desc'];
|
||||||
|
echo "formInfoValues['" . addslashes($type) . "'] = \"" . addslashes($info) . "\";\n"; // as we output JS code we need to add slashes
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach ($riskDescriptions as $type => $def) {
|
foreach ($riskDescriptions as $type => $def) {
|
||||||
$info = isset($def['formdesc']) ? $def['formdesc'] : $def['desc'];
|
$info = isset($def['formdesc']) ? $def['formdesc'] : $def['desc'];
|
||||||
echo "formInfoValues['" . addslashes($type) . "'] = \"" . addslashes($info) . "\";\n"; // as we output JS code we need to add slashes
|
echo "formInfoValues['" . addslashes($type) . "'] = \"" . addslashes($info) . "\";\n"; // as we output JS code we need to add slashes
|
||||||
|
@ -95,15 +90,21 @@ foreach ($analysisDescriptions as $type => $def) {
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
|
|
||||||
function showFormInfo(id) {
|
$(document).ready(function() {
|
||||||
idDiv = id+'Div';
|
|
||||||
// LATER use nice animations
|
$("#EventAnalysis, #EventRisk, #EventDistribution").on('mouseleave', function(e) {
|
||||||
//$(idDiv).hide('fast');
|
$('#'+e.currentTarget.id).popover('destroy');
|
||||||
// change the content
|
});
|
||||||
var value = $(id).val(); // get the selected value
|
|
||||||
$(idDiv).html(formInfoValues[value]); // search in a lookup table
|
$("#EventAnalysis, #EventRisk, #EventDistribution").on('mouseover', function(e) {
|
||||||
// show it again
|
var $e = $(e.target);
|
||||||
$(idDiv).fadeIn('slow');
|
if ($e.is('option')) {
|
||||||
|
$('#'+e.currentTarget.id).popover('destroy');
|
||||||
|
$('#'+e.currentTarget.id).popover({
|
||||||
|
trigger: 'manual',
|
||||||
|
placement: 'right',
|
||||||
|
content: formInfoValues[$e.val()],
|
||||||
|
}).popover('show');
|
||||||
}
|
}
|
||||||
|
|
||||||
// hide the formInfo things
|
// hide the formInfo things
|
||||||
|
|
|
@ -51,17 +51,17 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="actions">
|
<div class="actions">
|
||||||
<ul class="nav nav-list">
|
<ul class="nav nav-list">
|
||||||
<li><?php echo $this->Html->link('List Events', array('controller' => 'events', 'action' => 'index')); ?></li>
|
<li><a href="/events/index">List Events</a></li>
|
||||||
<?php if ($isAclAdd): ?>
|
<?php if ($isAclAdd): ?>
|
||||||
<li><?php echo $this->Html->link('Add Event', array('controller' => 'events', 'action' => 'add')); ?></li>
|
<li><a href="/events/add">Add Event</a></li>
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
<li class="divider"></li>
|
<li class="divider"></li>
|
||||||
<li><?php echo $this->Html->link('List Attributes', array('controller' => 'attributes', 'action' => 'index')); ?> </li>
|
<li><a href="/attributes/index">List Attributes</a></li>
|
||||||
<li><?php echo $this->Html->link('Search Attributes', array('controller' => 'attributes', 'action' => 'search')); ?> </li>
|
<li><a href="/attributes/search">Search Attributes</a></li>
|
||||||
<li class="divider"></li>
|
<li class="divider"></li>
|
||||||
<li class="active"><?php echo $this->Html->link('Export', array('controller' => 'events', 'action' => 'export')); ?> </li>
|
<li class="active"><a href="/events/export">Export</a></li>
|
||||||
<?php if ($isAclAuth): ?>
|
<?php if ($isAclAuth): ?>
|
||||||
<li><?php echo $this->Html->link('Automation', array('controller' => 'events', 'action' => 'automation')); ?></li>
|
<li><a href="/events/automation">Automation</a></li>
|
||||||
<?php endif;?>
|
<?php endif;?>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
|
@ -7,130 +7,169 @@
|
||||||
<div class="pagination">
|
<div class="pagination">
|
||||||
<ul>
|
<ul>
|
||||||
<?php
|
<?php
|
||||||
$this->Paginator->options(array(
|
$this->Paginator->options(array(
|
||||||
'update' => '.span12',
|
'update' => '.span12',
|
||||||
'evalScripts' => true,
|
'evalScripts' => true,
|
||||||
'before' => '$(".progress").show()',
|
'before' => '$(".progress").show()',
|
||||||
'complete' => '$(".progress").hide()',
|
'complete' => '$(".progress").hide()',
|
||||||
));
|
));
|
||||||
|
|
||||||
echo $this->Paginator->prev('« ' . __('previous'), array('tag' => 'li', 'escape' => false), null, array('tag' => 'li', 'class' => 'prev disabled', 'escape' => false, 'disabledTag' => 'span'));
|
echo $this->Paginator->prev('« ' . __('previous'), array('tag' => 'li', 'escape' => false), null, array('tag' => 'li', 'class' => 'prev disabled', 'escape' => false, 'disabledTag' => 'span'));
|
||||||
echo $this->Paginator->numbers(array('modulus' => 20, 'separator' => '', 'tag' => 'li', 'currentClass' => 'active', 'currentTag' => 'span'));
|
echo $this->Paginator->numbers(array('modulus' => 20, 'separator' => '', 'tag' => 'li', 'currentClass' => 'active', 'currentTag' => 'span'));
|
||||||
echo $this->Paginator->next(__('next') . ' »', array('tag' => 'li', 'escape' => false), null, array('tag' => 'li', 'class' => 'next disabled', 'escape' => false, 'disabledTag' => 'span'));
|
echo $this->Paginator->next(__('next') . ' »', array('tag' => 'li', 'escape' => false), null, array('tag' => 'li', 'class' => 'next disabled', 'escape' => false, 'disabledTag' => 'span'));
|
||||||
?>
|
?>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<?php echo $this->Form->create('', array('action' => 'index', 'style' => 'margin-bottom:0px')); ?>
|
|
||||||
<div class="input-prepend input-append" style="margin-bottom:0px;">
|
|
||||||
<div id = "searchcancel" class="add-on span" style="margin-left:0px; margin-top:25px">
|
|
||||||
<div><a href=# onClick='resetForm()'><div class="icon-remove" style = "margin-top:3px"></div></a></div>
|
|
||||||
</div>
|
|
||||||
<div id = "searchinfo" class="span" style="width:220px; margin-left:0px">
|
|
||||||
<?php
|
|
||||||
echo $this->Form->input('searchinfo', array('value' => $this->passedArgs['searchinfo'], 'label' => 'Info'));
|
|
||||||
?>
|
|
||||||
</div><div id = "searchorgc" class="span" style="margin-left:0px; width:220px">
|
|
||||||
<?php
|
|
||||||
echo $this->Form->input('searchorgc', array('value' => $this->passedArgs['searchorgc'], 'label' => 'Org'));
|
|
||||||
?>
|
|
||||||
</div><div id = "searchpublished" class="span" style="margin-left:0px; width:220px">
|
|
||||||
<?php
|
|
||||||
echo $this->Form->input('searchpublished', array('options' => array('0' => 'No', '1' => 'Yes', '2' => 'Any'), 'default' => 2, 'label' => 'Published'));
|
|
||||||
?>
|
|
||||||
</div><div id = "searchfrom" class="span" style="margin-left:0px; width:110px">
|
|
||||||
<?php
|
|
||||||
echo $this->Form->input('searchDatefrom', array('value' => $this->passedArgs['searchDatefrom'], 'label' => 'From', 'style' => 'width:96px; margin-top: 0px;', 'class' => 'datepicker'));
|
|
||||||
?>
|
|
||||||
</div><div id = "searchuntil" class="span" style="margin-left:0px; width:110px">
|
|
||||||
<?php
|
|
||||||
echo $this->Form->input('searchDateuntil', array('value' => $this->passedArgs['searchDateuntil'], 'label' => 'Until', 'style' => 'width:96px; margin-top: 0px;', 'class' => 'datepicker'));
|
|
||||||
?>
|
|
||||||
</div><div id = "searchbutton" class="span" style="margin-left:0px; margin-top:25px">
|
|
||||||
<?php
|
|
||||||
echo $this->Form->button('Go', array('class' => 'btn'));
|
|
||||||
?>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<?php
|
<?php
|
||||||
|
echo $this->Form->create('', array('action' => 'index', 'style' => 'margin-bottom:0px'));
|
||||||
// Let's output a small label of each filter
|
// Let's output a small label of each filter
|
||||||
$count = 0;
|
$count = 0;
|
||||||
?>
|
?>
|
||||||
<table><tr>
|
<table>
|
||||||
<?php
|
<tr>
|
||||||
foreach ($this->passedArgs as $k => $v) {
|
|
||||||
if ((substr($k, 0, 6) === 'search')) {
|
|
||||||
$searchTerm = substr($k, 6);
|
|
||||||
if ($searchTerm === 'published') {
|
|
||||||
switch ($v) {
|
|
||||||
case '0' :
|
|
||||||
$value = 'No';
|
|
||||||
break;
|
|
||||||
case '1' :
|
|
||||||
$value = 'Yes';
|
|
||||||
break;
|
|
||||||
case '2' :
|
|
||||||
continue 2;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if (!$v) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
$value = $v;
|
|
||||||
}
|
|
||||||
?>
|
|
||||||
<td class="<?php echo (($count < 1) ? 'searchLabelFirst' : 'searchLabel');?>"><?php echo $searchTerm; ?> : <?php echo $value; ?></td>
|
|
||||||
<?php
|
<?php
|
||||||
$count++;
|
foreach ($this->passedArgs as $k => $v) {
|
||||||
|
if ((substr($k, 0, 6) === 'search')) {
|
||||||
|
$searchTerm = substr($k, 6);
|
||||||
|
if ($searchTerm === 'published') {
|
||||||
|
switch ($v) {
|
||||||
|
case '0' :
|
||||||
|
$value = 'No';
|
||||||
|
break;
|
||||||
|
case '1' :
|
||||||
|
$value = 'Yes';
|
||||||
|
break;
|
||||||
|
case '2' :
|
||||||
|
continue 2;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (!$v) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
$value = $v;
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
<td class="<?php echo (($count < 1) ? 'searchLabelFirst' : 'searchLabel');?>">
|
||||||
|
<?php echo $searchTerm; ?> : <?php echo $value; ?>
|
||||||
|
</td>
|
||||||
|
<?php
|
||||||
|
$count++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
if ($count > 0) {
|
||||||
if ($count > 0) {
|
?>
|
||||||
?>
|
<td class="searchLabelCancel">
|
||||||
<td class="searchLabelCancel"><?php echo $this->Html->link('', array('controller' => 'events', 'action' => 'index'), array('class' => 'icon-remove', 'title' => 'Remove filters'));?></td>
|
<?php echo $this->Html->link('', array('controller' => 'events', 'action' => 'index'), array('class' => 'icon-remove', 'title' => 'Remove filters'));?>
|
||||||
<?php
|
</td>
|
||||||
}
|
<?php
|
||||||
?>
|
}
|
||||||
</tr></table>
|
?>
|
||||||
<?php
|
</tr>
|
||||||
echo $this->Form->end();
|
</table>
|
||||||
?>
|
<input type="submit" style="visibility:collapse;" />
|
||||||
<table class="table table-striped table-hover table-condensed">
|
<table class="table table-striped table-hover table-condensed">
|
||||||
<tr>
|
<tr>
|
||||||
<th><?php echo $this->Paginator->sort('published', 'Valid.');?><a href=# onClick='enableField("searchpublished")'><br /><div class="icon-search"></div></a></th>
|
<th class="filter">
|
||||||
|
<?php echo $this->Paginator->sort('published', 'Valid.');?>
|
||||||
|
<a onclick="$('#searchpublished').toggle();" class="icon-search"></a>
|
||||||
|
<span id="searchpublished"><br/>
|
||||||
|
<?php
|
||||||
|
// on change jquery will submit the form
|
||||||
|
echo $this->Form->input('searchpublished', array(
|
||||||
|
'options' => array('0' => 'No', '1' => 'Yes', '2' => 'Any'),
|
||||||
|
'default' => 2,
|
||||||
|
'label' => '',
|
||||||
|
'class' => 'input-mini',
|
||||||
|
'onchange' => "$('#EventIndexForm').submit()"
|
||||||
|
));
|
||||||
|
?>
|
||||||
|
</span>
|
||||||
|
</th>
|
||||||
<?php
|
<?php
|
||||||
if ('true' == Configure::read('CyDefSIG.showorg') || $isAdmin) {
|
if ('true' == Configure::read('CyDefSIG.showorg') || $isAdmin) {
|
||||||
if ($isSiteAdmin) { ?>
|
if ($isSiteAdmin) { ?>
|
||||||
<th><?php echo $this->Paginator->sort('org'); ?></th>
|
<th><?php echo $this->Paginator->sort('org'); ?></th>
|
||||||
<?php
|
<?php
|
||||||
} else { ?>
|
} else { ?>
|
||||||
<th><?php echo $this->Paginator->sort('org'); ?><a href=# onClick='enableField("searchorgc")'><br /><div class="icon-search"></div></a></th></th>
|
<th class="filter"><?php echo $this->Paginator->sort('org'); ?>
|
||||||
|
<a onclick="toggleField('#searchorg')" class="icon-search"></a>
|
||||||
|
</th>
|
||||||
<?php
|
<?php
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
<?php if ($isSiteAdmin): ?>
|
<?php if ($isSiteAdmin): ?>
|
||||||
<th><?php echo $this->Paginator->sort('owner org');?><a href=# onClick='enableField("searchorgc")'><br /><div class="icon-search"></div></a></th>
|
<th class="filter">
|
||||||
|
<?php echo $this->Paginator->sort('owner org');?>
|
||||||
|
<a onclick="toggleField('#searchorgc')" class="icon-search"></a>
|
||||||
|
<span id="searchorgc"><br/>
|
||||||
|
<?php
|
||||||
|
echo $this->Form->input('searchorgc', array(
|
||||||
|
'value' => $this->passedArgs['searchorgc'],
|
||||||
|
'label' => '',
|
||||||
|
'class' => 'input-mini'));
|
||||||
|
?>
|
||||||
|
</span>
|
||||||
|
</th>
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
<th><?php echo $this->Paginator->sort('id');?></th>
|
<th><?php echo $this->Paginator->sort('id');?></th>
|
||||||
<th><?php echo $this->Paginator->sort('attribute_count', '#Attr.');?></th>
|
<th><?php echo $this->Paginator->sort('attribute_count', '#Attr.');?></th>
|
||||||
<?php if ($isAdmin): ?>
|
<?php if ($isAdmin): ?>
|
||||||
<th><?php echo $this->Paginator->sort('user_id', 'Email');?></th>
|
<th><?php echo $this->Paginator->sort('user_id', 'Email');?></th>
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
<th><?php echo $this->Paginator->sort('date');?><a href=# onClick='enableDate()'><br /><div class="icon-search"></div></a></th>
|
<th class="filter">
|
||||||
|
<?php echo $this->Paginator->sort('date');?>
|
||||||
|
<a onclick="toggleField('#searchdate')" class="icon-search"></a>
|
||||||
|
<br/>
|
||||||
|
<div id="searchdate" class="input-append input-prepend">
|
||||||
|
<?php
|
||||||
|
echo $this->Form->input('searchDatefrom', array(
|
||||||
|
'value' => $this->passedArgs['searchDatefrom'],
|
||||||
|
'label' => false,
|
||||||
|
'div' => false,
|
||||||
|
'class' => 'span1 datepicker',
|
||||||
|
));
|
||||||
|
?>
|
||||||
|
<input type="submit" class="btn" value=">"/>
|
||||||
|
<?php
|
||||||
|
echo $this->Form->input('searchDateuntil', array(
|
||||||
|
'value' => $this->passedArgs['searchDateuntil'],
|
||||||
|
'label' => false,
|
||||||
|
'class' => 'span1 datepicker',
|
||||||
|
'div' => false
|
||||||
|
));
|
||||||
|
?>
|
||||||
|
</div>
|
||||||
|
</th>
|
||||||
<th title="<?php echo $eventDescriptions['risk']['desc'];?>">
|
<th title="<?php echo $eventDescriptions['risk']['desc'];?>">
|
||||||
<?php echo $this->Paginator->sort('risk');?>
|
<?php echo $this->Paginator->sort('risk');?>
|
||||||
</th>
|
</th>
|
||||||
<th title="<?php echo $eventDescriptions['analysis']['desc'];?>">
|
<th title="<?php echo $eventDescriptions['analysis']['desc'];?>">
|
||||||
<?php echo $this->Paginator->sort('analysis');?>
|
<?php echo $this->Paginator->sort('analysis');?>
|
||||||
</th>
|
</th>
|
||||||
<th><?php echo $this->Paginator->sort('info');?><a href=# onClick='enableField("searchinfo")'><br /><div class="icon-search"></div></a></th>
|
<th class="filter">
|
||||||
|
<?php echo $this->Paginator->sort('info');?>
|
||||||
|
<a onclick="toggleField('#searchinfo')" class="icon-search"></a>
|
||||||
|
<span id="searchinfo"><br/>
|
||||||
|
<?php
|
||||||
|
echo $this->Form->input('searchinfo', array(
|
||||||
|
'value' => $this->passedArgs['searchinfo'],
|
||||||
|
'label' => '',
|
||||||
|
'class' => 'input-large'));
|
||||||
|
?>
|
||||||
|
</span>
|
||||||
|
</th>
|
||||||
<?php if ('true' == Configure::read('CyDefSIG.sync')): ?>
|
<?php if ('true' == Configure::read('CyDefSIG.sync')): ?>
|
||||||
<th title="<?php echo $eventDescriptions['distribution']['desc'];?>">
|
<th title="<?php echo $eventDescriptions['distribution']['desc'];?>">
|
||||||
<?php echo $this->Paginator->sort('distribution');?>
|
<?php echo $this->Paginator->sort('distribution');?>
|
||||||
</th>
|
</th>
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
<th class="actions"><?php echo __('Actions');?></th>
|
<th class="actions">Actions</th>
|
||||||
|
|
||||||
</tr>
|
</tr>
|
||||||
|
<?php
|
||||||
|
echo $this->Form->end();
|
||||||
|
?>
|
||||||
<?php foreach ($events as $event):?>
|
<?php foreach ($events as $event):?>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="short" onclick="document.location ='<?php echo $this->Html->url(array('action' => 'view', $event['Event']['id']), true);?>';">
|
<td class="short" onclick="document.location ='<?php echo $this->Html->url(array('action' => 'view', $event['Event']['id']), true);?>';">
|
||||||
|
@ -224,52 +263,35 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="actions">
|
<div class="actions">
|
||||||
<ul class="nav nav-list">
|
<ul class="nav nav-list">
|
||||||
<li class="active"><?php echo $this->Html->link('List Events', array('controller' => 'events', 'action' => 'index')); ?></li>
|
<li class="active"><a href="/events/index">List Events</a></li>
|
||||||
<?php if ($isAclAdd): ?>
|
<?php if ($isAclAdd): ?>
|
||||||
<li><?php echo $this->Html->link('Add Event', array('controller' => 'events', 'action' => 'add')); ?></li>
|
<li><a href="/events/add">Add Event</a></li>
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
<li class="divider"></li>
|
<li class="divider"></li>
|
||||||
<li><?php echo $this->Html->link('List Attributes', array('controller' => 'attributes', 'action' => 'index')); ?> </li>
|
<li><a href="/attributes/index">List Attributes</a></li>
|
||||||
<li><?php echo $this->Html->link('Search Attributes', array('controller' => 'attributes', 'action' => 'search')); ?> </li>
|
<li><a href="/attributes/search">Search Attributes</a></li>
|
||||||
<li class="divider"></li>
|
<li class="divider"></li>
|
||||||
<li><?php echo $this->Html->link('Export', array('controller' => 'events', 'action' => 'export')); ?> </li>
|
<li><a href="/events/export">Export</a></li>
|
||||||
<?php if ($isAclAuth): ?>
|
<?php if ($isAclAuth): ?>
|
||||||
<li><?php echo $this->Html->link('Automation', array('controller' => 'events', 'action' => 'automation')); ?></li>
|
<li><a href="/events/automation">Automation</a></li>
|
||||||
<?php endif;?>
|
<?php endif;?>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
$(document).ready(disableAll());
|
$(document).ready( function () {
|
||||||
|
// onload hide all buttons
|
||||||
|
$('#searchinfo').hide();
|
||||||
|
$('#searchorgc').hide();
|
||||||
|
$('#searchdate').hide();
|
||||||
|
$('#searchpublished').hide();
|
||||||
|
|
||||||
function resetForm() {
|
});
|
||||||
document.getElementById('EventSearchinfo').value=null;
|
|
||||||
document.getElementById('EventSearchorgc').value=null;
|
function toggleField(field) {
|
||||||
document.getElementById('EventSearchpublished').value=2;
|
$(field).toggle();
|
||||||
disableAll();
|
$(field +" input").focus();
|
||||||
}
|
}
|
||||||
|
|
||||||
function disableAll() {
|
|
||||||
disableField('searchinfo');
|
|
||||||
disableField('searchorgc');
|
|
||||||
disableField('searchfrom');
|
|
||||||
disableField('searchuntil');
|
|
||||||
disableField('searchpublished');
|
|
||||||
disableField('searchbutton');
|
|
||||||
disableField('searchcancel');
|
|
||||||
}
|
|
||||||
|
|
||||||
function disableField(field) {
|
|
||||||
document.getElementById(field).style.display="none";
|
|
||||||
}
|
|
||||||
function enableField(field) {
|
|
||||||
document.getElementById(field).style.display="";
|
|
||||||
document.getElementById('searchbutton').style.display="";
|
|
||||||
document.getElementById('searchcancel').style.display="";
|
|
||||||
}
|
|
||||||
|
|
||||||
function enableDate() {
|
|
||||||
enableField('searchfrom');
|
|
||||||
enableField('searchuntil');
|
|
||||||
}
|
|
||||||
|
|
||||||
</script>
|
</script>
|
|
@ -2,19 +2,19 @@
|
||||||
$mayModify = (($isAclModify && $event['Event']['user_id'] == $me['id']) || ($isAclModifyOrg && $event['Event']['orgc'] == $me['org']));
|
$mayModify = (($isAclModify && $event['Event']['user_id'] == $me['id']) || ($isAclModifyOrg && $event['Event']['orgc'] == $me['org']));
|
||||||
$mayPublish = ($isAclPublish && $event['Event']['orgc'] == $me['org']);
|
$mayPublish = ($isAclPublish && $event['Event']['orgc'] == $me['org']);
|
||||||
?>
|
?>
|
||||||
<div class="actions" style="width:12%">
|
<div class="actions">
|
||||||
<ul class="nav nav-list">
|
<ul class="nav nav-list">
|
||||||
<li class="active"><?php echo $this->Html->link('View Event', array('action' => 'view', $event['Event']['id'])); ?> </li>
|
<li class="active"><a href="/events/view/<?php echo $event['Event']['id'];?>">View Event</a></li>
|
||||||
<?php if ($isSiteAdmin || $mayModify): ?>
|
<?php if ($isSiteAdmin || $mayModify): ?>
|
||||||
<li><?php echo $this->Html->link('Edit Event', array('action' => 'edit', $event['Event']['id'])); ?> </li>
|
<li><a href="/events/edit/<?php echo $event['Event']['id'];?>">Edit Event</a></li>
|
||||||
<li><?php echo $this->Form->postLink('Delete Event', array('action' => 'delete', $event['Event']['id']), null, __('Are you sure you want to delete # %s?', $event['Event']['id'])); ?></li>
|
<li><?php echo $this->Form->postLink('Delete Event', array('action' => 'delete', $event['Event']['id']), null, __('Are you sure you want to delete # %s?', $event['Event']['id'])); ?></li>
|
||||||
<li class="divider"></li>
|
<li class="divider"></li>
|
||||||
<li><?php echo $this->Html->link('Add Attribute', array('controller' => 'attributes', 'action' => 'add', $event['Event']['id']));?> </li>
|
<li><a href="/attributes/add/<?php echo $event['Event']['id'];?>">Add Attribute</a></li>
|
||||||
<li><?php echo $this->Html->link('Add Attachment', array('controller' => 'attributes', 'action' => 'add_attachment', $event['Event']['id']));?> </li>
|
<li><a href="/attributes/add_attachment/<?php echo $event['Event']['id'];?>">Add Attachment</a></li>
|
||||||
<li><?php echo $this->Html->link('Populate event from IOC', array('controller' => 'events', 'action' => 'addIOC', $event['Event']['id']));?> </li>
|
<li><a href="/events/addIOC/<?php echo $event['Event']['id'];?>">Populate from IOC</a></li>
|
||||||
<?php else: ?>
|
<?php else: ?>
|
||||||
<li><?php echo $this->Html->link('Propose Attribute', array('controller' => 'shadow_attributes', 'action' => 'add', $event['Event']['id']));?> </li>
|
<li><a href="/shadow_attributes/add/<?php echo $event['Event']['id'];?>">Propose Attribute</a></li>
|
||||||
<li><?php echo $this->Html->link('Propose Attachment', array('controller' => 'shadow_attributes', 'action' => 'add_attachment', $event['Event']['id']));?> </li>
|
<li><a href="/shadow_attributes/add_attachment/<?php echo $event['Event']['id'];?>">Propose Attachment</a></li>
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
<li class="divider"></li>
|
<li class="divider"></li>
|
||||||
<?php if ( 0 == $event['Event']['published'] && ($isAdmin || $mayPublish)): ?>
|
<?php if ( 0 == $event['Event']['published'] && ($isAdmin || $mayPublish)): ?>
|
||||||
|
@ -23,21 +23,19 @@ $mayPublish = ($isAclPublish && $event['Event']['orgc'] == $me['org']);
|
||||||
<?php else: ?>
|
<?php else: ?>
|
||||||
<!-- ul><li>Alert already sent</li></ul -->
|
<!-- ul><li>Alert already sent</li></ul -->
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
<li><?php echo $this->Html->link(__('Contact reporter', true), array('action' => 'contact', $event['Event']['id'])); ?> </li>
|
<li><a href="/events/contact/<?php echo $event['Event']['id'];?>">Contact Reporter</a></li>
|
||||||
<li><?php echo $this->Html->link(__('Download as XML', true), array('action' => 'xml', 'download', $event['Event']['id'])); ?></li>
|
<li><a href="/events/xml/download/<?php echo $event['Event']['id'];?>">Download as XML</a></li>
|
||||||
<li><?php echo $this->Html->link(__('Download as IOC', true), array('action' => 'downloadOpenIOCEvent', $event['Event']['id'])); ?> </li>
|
<li><a href="/events/downloadOpenIOCEvent/<?php echo $event['Event']['id'];?>">Download as IOC</a></li>
|
||||||
|
|
||||||
<li class="divider"></li>
|
<li class="divider"></li>
|
||||||
<li><?php echo $this->Html->link('List Events', array('controller' => 'events', 'action' => 'index')); ?></li>
|
<li><a href="/events/index">List Events</a></li>
|
||||||
<?php if ($isAclAdd): ?>
|
<?php if ($isAclAdd): ?>
|
||||||
<li><?php echo $this->Html->link('Add Event', array('controller' => 'events', 'action' => 'add')); ?></li>
|
<li><a href="/events/add">Add Event</a></li>
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div class="events view" style="width:83%">
|
<div class="events view">
|
||||||
|
|
||||||
<?php
|
<?php
|
||||||
if ('true' == Configure::read('CyDefSIG.showorg') || $isAdmin) {
|
if ('true' == Configure::read('CyDefSIG.showorg') || $isAdmin) {
|
||||||
|
@ -84,12 +82,12 @@ $mayPublish = ($isAclPublish && $event['Event']['orgc'] == $me['org']);
|
||||||
<?php echo h($event['Event']['date']); ?>
|
<?php echo h($event['Event']['date']); ?>
|
||||||
|
|
||||||
</dd>
|
</dd>
|
||||||
<dt<?php echo ' title="' . $eventDescriptions['risk']['desc'] . '"';?>>Risk</dt>
|
<dt title="<?php echo $eventDescriptions['risk']['desc'];?>">Risk</dt>
|
||||||
<dd>
|
<dd>
|
||||||
<?php echo h($event['Event']['risk']); ?>
|
<?php echo h($event['Event']['risk']); ?>
|
||||||
|
|
||||||
</dd>
|
</dd>
|
||||||
<dt<?php echo ' title="' . $eventDescriptions['analysis']['desc'] . '"';?>>Analysis</dt>
|
<dt title="<?php echo $eventDescriptions['analysis']['desc'];?>">Analysis</dt>
|
||||||
<dd>
|
<dd>
|
||||||
<?php echo h($analysisLevels[$event['Event']['analysis']]); ?>
|
<?php echo h($analysisLevels[$event['Event']['analysis']]); ?>
|
||||||
|
|
||||||
|
@ -105,7 +103,7 @@ $mayPublish = ($isAclPublish && $event['Event']['orgc'] == $me['org']);
|
||||||
|
|
||||||
</dd>
|
</dd>
|
||||||
<dt>Published</dt>
|
<dt>Published</dt>
|
||||||
<dd style = "color: red;">
|
<dd style="color: red;">
|
||||||
<b><?php echo ($event['Event']['published'] == 1 ? 'Yes' : 'No'); ?></b>
|
<b><?php echo ($event['Event']['published'] == 1 ? 'Yes' : 'No'); ?></b>
|
||||||
|
|
||||||
</dd>
|
</dd>
|
||||||
|
@ -155,16 +153,23 @@ if (!empty($event['Attribute'])):?>
|
||||||
if (count($attribute['ShadowAttribute'])) $extra .= 'highlight1';
|
if (count($attribute['ShadowAttribute'])) $extra .= 'highlight1';
|
||||||
?>
|
?>
|
||||||
<tr>
|
<tr>
|
||||||
<td class= "short <?php echo $extra; ?>" title="<?php if('' != $attribute['category']) echo $categoryDefinitions[$attribute['category']]['desc'];?>"><?php
|
<?php if($first): ?>
|
||||||
if ($first) {
|
<td class= "short <?php echo $extra; ?>" title="<?php if('' != $attribute['category']) echo $categoryDefinitions[$attribute['category']]['desc'];?>">
|
||||||
|
<?php
|
||||||
if ('' == $attribute['category']) echo '(no category)';
|
if ('' == $attribute['category']) echo '(no category)';
|
||||||
echo h($attribute['category']);
|
else echo h($attribute['category']);
|
||||||
} else {
|
?>
|
||||||
echo ' ';
|
</td>
|
||||||
}?></td>
|
<?php else: ?>
|
||||||
<td class="short <?php echo $extra; ?>" title="<?php
|
<td class= "short <?php echo $extra; ?>">
|
||||||
echo $typeDefinitions[$attribute['type']]['desc'];?>"><?php
|
|
||||||
echo h($attribute['type']);?></td>
|
</td>
|
||||||
|
<?php endif; ?>
|
||||||
|
<td class="short <?php echo $extra; ?>" title="<?php echo $typeDefinitions[$attribute['type']]['desc'];?>">
|
||||||
|
|
||||||
|
<?php echo h($attribute['type']);?>
|
||||||
|
|
||||||
|
</td>
|
||||||
<td class="<?php echo $extra; ?>"><?php
|
<td class="<?php echo $extra; ?>"><?php
|
||||||
$sigDisplay = $attribute['value'];
|
$sigDisplay = $attribute['value'];
|
||||||
if ('attachment' == $attribute['type'] || 'malware-sample' == $attribute['type'] ) {
|
if ('attachment' == $attribute['type'] || 'malware-sample' == $attribute['type'] ) {
|
||||||
|
@ -371,3 +376,13 @@ if (!empty($event['Attribute'])):?>
|
||||||
endif; ?>
|
endif; ?>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<script type="text/javascript">
|
||||||
|
// tooltips
|
||||||
|
$(document).ready(function () {
|
||||||
|
$("th, td, dt, div, span").tooltip({
|
||||||
|
'placement': 'top',
|
||||||
|
'container' : 'body',
|
||||||
|
delay: { show: 500, hide: 100 }
|
||||||
|
});
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
|
@ -20,7 +20,9 @@
|
||||||
* @license MIT License (http://www.opensource.org/licenses/mit-license.php)
|
* @license MIT License (http://www.opensource.org/licenses/mit-license.php)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
App::uses('Helper', 'View');
|
App::uses('UrlCacheAppHelper', 'UrlCache.View/Helper');
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Application helper
|
* Application helper
|
||||||
|
@ -30,12 +32,13 @@ App::uses('Helper', 'View');
|
||||||
*
|
*
|
||||||
* @package app.View.Helper
|
* @package app.View.Helper
|
||||||
*/
|
*/
|
||||||
class AppHelper extends Helper {
|
class AppHelper extends UrlCacheAppHelper {
|
||||||
|
|
||||||
public function url($url = null, $full = false) {
|
public function url($url = null, $full = false) {
|
||||||
if (is_array($url) && !isset($url['admin'])) {
|
if (is_array($url) && !isset($url['admin'])) {
|
||||||
$url['admin'] = false;
|
$url['admin'] = false;
|
||||||
}
|
}
|
||||||
return parent::url($url, $full);
|
return parent::url($url, $full);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -83,6 +83,13 @@ ul.nav li.dropdown:hover ul.dropdown-menu{
|
||||||
display: block;
|
display: block;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
th.filter {
|
||||||
|
white-space:nowrap;
|
||||||
|
}
|
||||||
|
th.filter a {
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
td.searchLabel{
|
td.searchLabel{
|
||||||
opacity: 50;
|
opacity: 50;
|
||||||
height: 20px;
|
height: 20px;
|
||||||
|
|
Loading…
Reference in New Issue