Example #1
0
 /**
  * 
  * @param type $sType
  * @param type $sNameMacro
  * @param type $iIdObject
  * @return type
  */
 public static function validate($sType, $sNameMacro, $iIdObject, $iHostId = null)
 {
     $tables = array();
     $conditions = array();
     $objectId = 0;
     $errors = array();
     $bSuccess = true;
     $resultError = _("Object already exists");
     $sMessage = '';
     $db = Di::getDefault()->get('db_centreon');
     if (!in_array($sType, array('host', 'hosttemplate', 'service', 'servicetemplate'))) {
         return;
     }
     if ($sType == 'host' || $sType == 'hosttemplate') {
         $sElement = 'host_macro_id';
         $query = 'SELECT host_macro_id FROM cfg_customvariables_hosts WHERE host_macro_name = :host_macro_name' . ' AND host_host_id = :host_host_id';
         $stmt = $db->prepare($query);
         $macroName = '$_HOST' . $sNameMacro . '$';
         $stmt->bindParam(':host_macro_name', $macroName, \PDO::PARAM_STR);
         $stmt->bindParam(':host_host_id', $iIdObject, \PDO::PARAM_INT);
     } elseif ($sType == 'servicetemplate') {
         $sElement = 'svc_macro_id';
         $query = 'SELECT svc_macro_id FROM cfg_customvariables_services WHERE svc_macro_name = :svc_macro_name' . ' AND svc_svc_id = :svc_svc_id';
         $stmt = $db->prepare($query);
         $macroName = '$_SERVICE' . $sNameMacro . '$';
         $stmt->bindParam(':svc_macro_name', $macroName, \PDO::PARAM_STR);
         $stmt->bindParam(':svc_svc_id', $iIdObject, \PDO::PARAM_INT);
     } else {
         $sElement = 'svc_macro_id';
         $query = 'SELECT svc_macro_id FROM cfg_customvariables_services join cfg_hosts_services_relations on service_service_id = svc_svc_id' . ' WHERE svc_macro_name = :svc_macro_name' . ' AND svc_svc_id = :svc_svc_id ';
         $stmt = $db->prepare($query);
         $macroName = '$_SERVICE' . $sNameMacro . '$';
         $stmt->bindParam(':svc_macro_name', $macroName, \PDO::PARAM_STR);
         $stmt->bindParam(':svc_svc_id', $iIdObject, \PDO::PARAM_INT);
     }
     $stmt->execute();
     $result = $stmt->fetchAll(\PDO::FETCH_ASSOC);
     if (count($result) > 0) {
         $iIdReturned = $result[0][$sElement];
         $bSuccess = false;
         $sMessage = $resultError;
     }
     if ($bSuccess === false) {
         $errors[] = $sMessage;
     }
     $params['characters'] = self::$forbidenCHar;
     $res = ForbiddenChar::validate($sNameMacro, $params);
     if (!$res['success']) {
         $errors[] = 'Macro name : ' . $res['error'];
     }
     // If we got error, we throw Exception
     if (count($errors) > 0) {
         self::raiseValidationException($errors);
     }
 }
Example #2
0
 /**
  * 
  * @method post
  * @route /validator/forbiddenchar
  */
 public function forbiddenCharAction()
 {
     $params = $this->getParams('post');
     $jsonResponse = ForbiddenChar::validate($params['value']);
     return $jsonResponse['success'];
 }