Пример #1
0
                            $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'])) {