prewikka/master: Sources and Targets expansion link fixes

[email protected] Tue, 12 Jan 2010 17:28:33 +0100 (CET)
Newsgroups gmane.comp.security.ids.prelude.cvs
Message-ID <[email protected]>
commit e55a5ffc484838c0af4c6c10499047869fbd1169
Author: Yoann Vandoorselaere <[email protected]>
Date:   Tue Jan 12 17:19:34 2010 +0100

    Sources and Targets expansion link fixes
    
    The link used to expand a list of sources/target was always broken. The link
    now point to the detailed view for CorrelationAlert, or the detailed event
    for alert.
    
    Additionally, this drop _fetchInfoFromLinkedMessage(), which was used to gather
    information for very old Correlator version whose events version didn't set
    sources and targets information.


========================================

 prewikka/views/alertlisting.py |   36 +++++++++++++++---------------------
 1 files changed, 15 insertions(+), 21 deletions(-)

========================================

diff --git a/prewikka/views/alertlisting.py b/prewikka/views/alertlisting.py
index 01acb9b..7ab1e01 100644
--- a/prewikka/views/alertlisting.py
+++ b/prewikka/views/alertlisting.py
@@ -525,7 +525,7 @@ class ListedAlert(ListedMessage):
 
         return None
 
-    def _setMessageSource(self, message):
+    def _setMessageSource(self, message, ident):
         total = 0
         index = 0
         for source in message["alert.source"]:
@@ -549,7 +549,12 @@ class ListedAlert(ListedMessage):
         self["aggregated_source_total"] += total
         self["aggregated_source_hidden"] += (total - index)
 
-    def _setMessageTarget(self, message):
+        if message["alert.correlation_alert.name"]:
+            self["aggregated_source_expand"] = self["sub_alert_display"]
+        else:
+            self["aggregated_source_expand"] = self.createMessageLink(ident, "alert_summary")
+
+    def _setMessageTarget(self, message, ident):
         index = 0
         total = 0
 
@@ -582,6 +587,12 @@ class ListedAlert(ListedMessage):
         self["aggregated_target_total"] += total
         self["aggregated_target_hidden"] += (total - index)
 
+        if message["alert.correlation_alert.name"]:
+            self["aggregated_target_expand"] = self["sub_alert_display"]
+        else:
+            self["aggregated_source_expand"] = self.createMessageLink(ident, "alert_summary")
+
+
     def _setMessageClassificationReferences(self, dataset, message):
         dataset["classification_references"] = [ ]
         for ref in message["alert.classification.reference"]:
@@ -612,18 +623,6 @@ class ListedAlert(ListedMessage):
         self._setMessageClassificationReferences(dataset, message)
         dataset["classification"] = self.createInlineFilteredField("alert.classification.text", message["alert.classification.text"], "classification")
 
-    def _fetchInfoFromLinkedMessage(self, criteria, source, target):
-        result = self.env.idmef_db.getAlertIdents(criteria)
-        for ident in result:
-            idmef = self.env.idmef_db.getAlert(ident)
-
-            if not source:
-                self._setMessageSource(idmef)
-
-            if not target:
-                self._setMessageTarget(idmef)
-
-
     def _setMessageAlertIdentInfo(self, message, alert, ident):
         fetch_classification_info = fetch_source_info = fetch_target_info = True
 
@@ -656,11 +655,6 @@ class ListedAlert(ListedMessage):
 
             criteria.append("(alert.messageid = '%s' && alert.analyzer.analyzerid = '%s')" % (utils.escape_criteria(alertident["alertident"]), utils.escape_criteria(analyzerid)))
 
-        source = message["alert.source"]
-        target = message["alert.target"]
-        if not source or not target:
-            self._fetchInfoFromLinkedMessage(" || ".join(criteria), source, target)
-
         self["sub_alert_number"] = i
         self["sub_alert_name"] = alert["name"]
         self["sub_alert_link"] = self.createMessageLink(ident, "alert_summary")
@@ -718,10 +712,10 @@ class ListedAlert(ListedMessage):
             self._setMessageAlertIdentInfo(message, message["alert.tool_alert"], ident)
 
         if not self["source"]:
-            self._setMessageSource(message)
+            self._setMessageSource(message, ident)
 
         if not self["target"]:
-            self._setMessageTarget(message)
+            self._setMessageTarget(message, ident)
 
     def setMessageDirectionGeneric(self, direction, object, value, allow_empty_value=True):
         self._initDirectionIfNeeded(direction)
_______________________________________________
Prelude-cvslog site list
[email protected]
http://lists.prelude-ids.org/mailman/listinfo/prelude-cvslog