$newCondition['value'] = null; } } } } $validateConditions = $conditions; if (isset($newCondition['value'])) { $newConditionValues = zbx_toArray($newCondition['value']); foreach ($newConditionValues as $newValue) { $condition = $newCondition; $condition['value'] = $newValue; $validateConditions[] = $condition; } } if ($validateConditions) { CAction::validateConditions($validateConditions); } $_REQUEST['conditions'] = $validateConditions; } } catch (APIException $e) { show_error_message(_('Cannot add action condition')); error($e->getMessage()); } } elseif (isset($_REQUEST['add_opcondition']) && isset($_REQUEST['new_opcondition'])) { $new_opcondition = $_REQUEST['new_opcondition']; try { CAction::validateOperationConditions($new_opcondition); $new_operation = get_request('new_operation', array()); if (!isset($new_operation['opconditions'])) { $new_operation['opconditions'] = array(); }
add_audit(!isset($_REQUEST['actionid']) ? AUDIT_ACTION_ADD : AUDIT_ACTION_UPDATE, AUDIT_RESOURCE_ACTION, _('Name') . ': ' . $_REQUEST['name']); unset($_REQUEST['form']); } } elseif (isset($_REQUEST['delete']) && isset($_REQUEST['actionid'])) { if (!count(get_accessible_nodes_by_user($USER_DETAILS, PERM_READ_WRITE, PERM_RES_IDS_ARRAY))) { access_deny(); } $result = API::Action()->delete($_REQUEST['actionid']); show_messages($result, _('Action deleted'), _('Cannot delete action')); if ($result) { unset($_REQUEST['form'], $_REQUEST['actionid']); } } elseif (isset($_REQUEST['add_condition']) && isset($_REQUEST['new_condition'])) { $new_condition = $_REQUEST['new_condition']; try { CAction::validateConditions($new_condition); $_REQUEST['conditions'] = get_request('conditions', array()); $exists = false; foreach ($_REQUEST['conditions'] as $condition) { if ($new_condition['conditiontype'] === $condition['conditiontype'] && $new_condition['operator'] === $condition['operator'] && (!isset($new_condition['value']) || $new_condition['value'] === $condition['value'])) { $exists = true; break; } } if (!$exists) { array_push($_REQUEST['conditions'], $new_condition); } } catch (APIException $e) { error($e->getMessage()); } } elseif (isset($_REQUEST['add_opcondition']) && isset($_REQUEST['new_opcondition'])) {