Example #1
0
 public static function getFilters($type = "event_query", $rid = "new")
 {
     $data = array("event_query" => array("eventmanagementActions", "sf_admin/event/filters"), "netflow_query" => array("netflowActions", "sf_admin/log_firewall/filters"), "log_query" => array("loganalysisActions", "sf_admin/log_search/filters"));
     $isReporting = is_numeric($rid);
     $specialActions = false;
     if (!$isReporting) {
         // The report id is not provided, let's work online.
         $context = sfContext::getInstance();
         $filters = $context->getUser()->getAttributeHolder()->getAll($data[$type][1]);
         if (strstr($context->getActionName(), "pdf") || strstr($context->getActionName(), "run") || $context->getActionName() == "getCustomLog") {
             $specialActions = true;
         }
     } else {
         if (!self::$filters) {
             $report = PdfReportsPeer::retrieveByPk($rid);
             $query = $report->getByName($type, BasePeer::TYPE_FIELDNAME);
             $tmp = explode("&", $query);
             foreach ($tmp as $pair) {
                 $key = str_replace("_value", "", strtok($pair, "="));
                 self::$filters[$key] = strtok("=");
             }
         }
     }
     if ($isReporting || $specialActions) {
         $filters = self::$filters;
         foreach ($filters as $key => $item) {
             if (is_string($item) && !trim($item) || $item === false) {
                 $filters[$key] = "";
             }
         }
     }
     return $filters;
 }
 public static function updateSession($step = false, $key = "parser/wizard", $data = null, $datastore = null, $process = null)
 {
     $context = sfContext::getInstance();
     $session = $context->getUser()->getAttributeHolder()->getAll($key);
     $add = $context->getRequest()->getParameter("add");
     $actionInstance = $context->getActionStack()->getLastEntry()->getActionInstance();
     $attribute_holder = $actionInstance->getVarHolder()->getAll();
     // Put xml data
     if ($key == "parser/wizard") {
         if (!isset($session["skip"])) {
             $session["skip"] = array();
         }
         if (isset($attribute_holder["init"]) && $datastore) {
             $session["datastore"] = $process["parses"][0]["datastore"];
         }
         if ($context->getRequest()->getMethod() === sfRequest::POST) {
             $post = $context->getRequest()->getParameterHolder()->getAll();
             $empty = true;
             // Is empty post?
             if (isset($post["edit"][2])) {
                 foreach ($post["edit"][2] as $k => $value) {
                     if ($k == "id") {
                         continue;
                     }
                     if (trim($value)) {
                         $empty = false;
                         break;
                     }
                 }
             } else {
                 $post["edit"][2] = array();
                 if (isset($_FILES["edit"])) {
                     $empty = false;
                 }
             }
             if ($step === false) {
                 $step = $attribute_holder["step"];
             }
             // Put post data
             if ($add === "true") {
                 // Is a duplicate?
                 $duplicate = false;
                 if (isset($session[$step])) {
                     foreach ($session[$step] as $item) {
                         $cnt = 0;
                         foreach ($post["edit"][2] as $k => $v) {
                             if (isset($item["fields"][$k]) && $v == $item["fields"][$k]) {
                                 $cnt++;
                             }
                             if ($cnt == sizeof($post["edit"][2])) {
                                 $duplicate = true;
                                 break;
                             }
                         }
                     }
                 }
                 if (!$empty && !$duplicate) {
                     $session[$step][] = array();
                     $sk = max(array_keys($session[$step]));
                     foreach ($post["edit"][2] as $k => $value) {
                         $session[$step][$sk]["fields"][$k] = $value;
                     }
                 }
             } else {
                 if (isset($post["edit"][2])) {
                     foreach ($post["edit"][2] as $k => $value) {
                         if ($k != "associated_widgets") {
                             $session[$step]["fields"][$k] = $value;
                         } else {
                             $session = PdfReportsPeer::updateWidgets($value);
                         }
                     }
                 }
                 if (isset($_FILES["edit"])) {
                     $session[$step]["file"] = true;
                     foreach ($_FILES["edit"] as $k => $value) {
                         if ($k == "error") {
                             if ($value[2][key($value[2])] != 0) {
                                 $tmp_data = afAuthenticDatamaker::decode($post["af_formcfg"]);
                                 $field_data = $tmp_data["validators"]["edit[2][file]"];
                                 if ($value[2][key($value[2])] == 4) {
                                     if (array_key_exists("immValidatorRequired", $field_data) || array_key_exists("sfValidatorFile", $field_data) && $field_data["sfValidatorFile"]["params"]["required"] === "true") {
                                         return 4;
                                     } else {
                                         return 0;
                                     }
                                 }
                                 return $value[2][key($value[2])];
                             }
                         }
                         if ($k == "type" || $k == "error") {
                             continue;
                         }
                         if ($k == "tmp_name") {
                             $tmp_dir = sfConfig::get('app_tmp_dir') ? sfConfig::get('app_tmp_dir') : '/usr/www/tmp/';
                             $tx = substr($value[2][key($value[2])], strrpos($value[2][key($value[2])], "/") + 1);
                             copy($value[2][key($value[2])], $tmp_dir . $tx);
                             $txval = $tmp_dir . $tx;
                         } else {
                             $txval = $value[2][key($value[2])];
                         }
                         $k = "file_" . $k;
                         $session[$step]["fields"][$k] = $txval;
                     }
                 }
             }
         }
     }
     $context->getUser()->getAttributeHolder()->removeNamespace($key);
     $context->getUser()->getAttributeHolder()->add($session, $key);
     return true;
 }