Esempio n. 1
0
         $_REQUEST['conditions'] = get_request('conditions', array());
         if (!str_in_array($new_condition, $_REQUEST['conditions'])) {
             array_push($_REQUEST['conditions'], $new_condition);
         }
         unset($_REQUEST['new_condition']);
     }
 } else {
     if (inarr_isset(array('del_condition', 'g_conditionid'))) {
         $_REQUEST['conditions'] = get_request('conditions', array());
         foreach ($_REQUEST['g_conditionid'] as $val) {
             unset($_REQUEST['conditions'][$val]);
         }
     } else {
         if (inarr_isset(array('add_opcondition', 'new_opcondition'))) {
             $new_opcondition = $_REQUEST['new_opcondition'];
             if (validate_condition($new_opcondition['conditiontype'], $new_opcondition['value'])) {
                 $new_operation = get_request('new_operation', array());
                 if (!isset($new_operation['opconditions'])) {
                     $new_operation['opconditions'] = array();
                 }
                 if (!str_in_array($new_opcondition, $new_operation['opconditions'])) {
                     array_push($new_operation['opconditions'], $new_opcondition);
                 }
                 $_REQUEST['new_operation'] = $new_operation;
                 unset($_REQUEST['new_opcondition']);
             }
         } else {
             if (inarr_isset(array('del_opcondition', 'g_opconditionid'))) {
                 $new_operation = get_request('new_operation', array());
                 foreach ($_REQUEST['g_opconditionid'] as $val) {
                     unset($new_operation['opconditions'][$val]);
Esempio n. 2
0
function update_action($actionid, $name, $eventsource, $esc_period, $def_shortdata, $def_longdata, $recovery_msg, $r_shortdata, $r_longdata, $evaltype, $status, $conditions, $operations)
{
    if (!is_array($conditions) || count($conditions) == 0) {
        /*
        error(S_NO_CONDITIONS_DEFINED);
        return false;
        */
    } else {
        if (!check_permission_for_action_conditions($conditions)) {
            return false;
        }
        foreach ($conditions as $condition) {
            if (!validate_condition($condition['type'], $condition['value'])) {
                return false;
            }
        }
    }
    if (!is_array($operations) || count($operations) == 0) {
        error(S_NO_OPERATIONS_DEFINED);
        return false;
    }
    foreach ($operations as $operation) {
        if (!validate_operation($operation)) {
            return false;
        }
    }
    $result = DBexecute('UPDATE actions SET name=' . zbx_dbstr($name) . ',eventsource=' . $eventsource . ',esc_period=' . $esc_period . ',def_shortdata=' . zbx_dbstr($def_shortdata) . ',def_longdata=' . zbx_dbstr($def_longdata) . ',recovery_msg=' . $recovery_msg . ',r_shortdata=' . zbx_dbstr($r_shortdata) . ',r_longdata=' . zbx_dbstr($r_longdata) . ',evaltype=' . $evaltype . ',status=' . $status . ' WHERE actionid=' . $actionid);
    if ($result) {
        DBexecute('DELETE FROM conditions WHERE actionid=' . $actionid);
        $opers = get_operations_by_actionid($actionid);
        while ($operation = DBFetch($opers)) {
            DBexecute('DELETE FROM opconditions WHERE operationid=' . $operation['operationid']);
        }
        DBexecute('DELETE FROM operations WHERE actionid=' . $actionid);
        foreach ($operations as $operation) {
            if (!($result = add_action_operation($actionid, $operation))) {
                break;
            }
        }
        if ($result) {
            foreach ($conditions as $condition) {
                if (!($result = add_action_condition($actionid, $condition))) {
                    break;
                }
            }
        }
    }
    return $result;
}
Esempio n. 3
0
 /**
  * add conditions
  *
  * @param array $conditions multidimensional array with conditions data
  * @param array $conditions[0,...]['actionid']
  * @param array $conditions[0,...]['conditiontype']
  * @param array $conditions[0,...]['value']
  * @param array $conditions[0,...]['operator']
  * @return boolean
  */
 protected static function addConditions($conditions)
 {
     $conditions = zbx_toArray($conditions);
     $conditions_insert = array();
     if (!check_permission_for_action_conditions($conditions)) {
         self::exception(ZBX_API_ERROR_PERMISSIONS, S_NO_PERMISSIONS);
     }
     foreach ($conditions as $cnum => $condition) {
         if (!validate_condition($condition['conditiontype'], $condition['value'])) {
             self::exception(ZBX_API_ERROR_PARAMETERS, S_INCORRECT_PARAMETER_USED_FOR_CONDITIONS);
         }
         $conditions_insert[] = $condition;
     }
     DB::insert('conditions', $conditions_insert);
     return true;
 }