Example #1
0
    $_REQUEST['form'] = 'clone';
} else {
    if (isset($_REQUEST['save'])) {
        $objects = get_request('hosts', array());
        $hosts = CHost::get(array('hostids' => $objects, 'output' => API_OUTPUT_SHORTEN));
        $templates = CTemplate::get(array('templateids' => $objects, 'output' => API_OUTPUT_SHORTEN));
        if (isset($_REQUEST['groupid'])) {
            DBstart();
            $old_group = CHostGroup::get(array('groupids' => $_REQUEST['groupid'], 'output' => API_OUTPUT_EXTEND));
            $old_group = reset($old_group);
            $result = CHostGroup::update(array('groupid' => $_REQUEST['groupid'], 'name' => $_REQUEST['gname']));
            if ($result) {
                $options = array('groupids' => $result['groupids'], 'output' => API_OUTPUT_EXTEND);
                $groups = CHostGroup::get($options);
                $data = array('hosts' => $hosts, 'templates' => $templates, 'groups' => $groups);
                $result = CHostGroup::massUpdate($data);
            }
            $result = DBend($result);
            if ($result) {
                $group = reset($groups);
                add_audit_ext(AUDIT_ACTION_UPDATE, AUDIT_RESOURCE_HOST_GROUP, $group['groupid'], $group['name'], 'groups', array('name' => $old_group['name']), array('name' => $group['name']));
            }
            $msg_ok = S_GROUP_UPDATED;
            $msg_fail = S_CANNOT_UPDATE_GROUP;
        } else {
            if (!count(get_accessible_nodes_by_user($USER_DETAILS, PERM_READ_WRITE, PERM_RES_IDS_ARRAY))) {
                access_deny();
            }
            DBstart();
            $result = CHostgroup::create(array('name' => $_REQUEST['gname']));
            if ($result) {