Exemplo n.º 1
0
    $scripts_wdgt->addItem($frmScr);
} else {
    $form = new CForm();
    $form->setName('frm_scripts');
    $form->setAttribute('id', 'scripts');
    $form->addVar('action', '1');
    $numrows = new CDiv();
    $numrows->setAttribute('name', 'numrows');
    $scripts_wdgt->addHeader(S_SCRIPTS_BIG);
    $scripts_wdgt->addHeader($numrows);
    $table = new CTableInfo(S_NO_SCRIPTS_DEFINED);
    $table->setHeader(array(new CCheckBox('all_scripts', null, "checkAll('" . $form->getName() . "','all_scripts','scripts');"), make_sorting_header(S_NAME, 'name'), make_sorting_header(S_COMMAND, 'command'), S_USER_GROUP, S_HOST_GROUP, S_HOST_ACCESS));
    $sortfield = getPageSortField('name');
    $sortorder = getPageSortOrder();
    $options = array('output' => API_OUTPUT_EXTEND, 'editable' => 1, 'select_groups' => API_OUTPUT_EXTEND);
    $scripts = CScript::get($options);
    // sorting
    order_result($scripts, $sortfield, $sortorder);
    // PAGING UPPER
    $paging = getPagingLine($scripts);
    $scripts_wdgt->addItem($paging);
    //---------
    foreach ($scripts as $snum => $script) {
        $scriptid = $script['scriptid'];
        $user_group_name = S_ALL_S;
        if ($script['usrgrpid'] > 0) {
            $user_group = CUserGroup::get(array('usrgrpids' => $script['usrgrpid'], 'extendoutput' => 1));
            $user_group = reset($user_group);
            $user_group_name = $user_group['name'];
        }
        $host_group_name = S_ALL_S;
Exemplo n.º 2
0
 public static function getScriptsByHosts($hostids)
 {
     zbx_value2array($hostids);
     $obj_params = array('hostids' => $hostids, 'preservekeys' => 1);
     $hosts_read_only = CHost::get($obj_params);
     $hosts_read_only = zbx_objectValues($hosts_read_only, 'hostid');
     $obj_params = array('editable' => 1, 'hostids' => $hostids, 'preservekeys' => 1);
     $hosts_read_write = CHost::get($obj_params);
     $hosts_read_write = zbx_objectValues($hosts_read_write, 'hostid');
     // initialize array
     $scripts_by_host = array();
     foreach ($hostids as $id => $hostid) {
         $scripts_by_host[$hostid] = array();
     }
     //-----
     $options = array('hostids' => $hostids, 'output' => API_OUTPUT_EXTEND, 'preservekeys' => 1);
     $groups = CHostGroup::get($options);
     $obj_params = array('groupids' => zbx_objectValues($groups, 'groupid'), 'sortfield' => 'name', 'output' => API_OUTPUT_EXTEND, 'preservekeys' => 1);
     $scripts = CScript::get($obj_params);
     foreach ($scripts as $num => $script) {
         $add_to_hosts = array();
         $hostids = zbx_objectValues($groups[$script['groupid']]['hosts'], 'hostid');
         if (PERM_READ_WRITE == $script['host_access']) {
             if ($script['groupid'] > 0) {
                 $add_to_hosts = zbx_uint_array_intersect($hosts_read_write, $hostids);
             } else {
                 $add_to_hosts = $hosts_read_write;
             }
         } else {
             if (PERM_READ_ONLY == $script['host_access']) {
                 if ($script['groupid'] > 0) {
                     $add_to_hosts = zbx_uint_array_intersect($hosts_read_only, $hostids);
                 } else {
                     $add_to_hosts = $hosts_read_only;
                 }
             }
         }
         foreach ($add_to_hosts as $id => $hostid) {
             $scripts_by_host[$hostid][] = $script;
         }
     }
     //SDII(count($scripts_by_host));
     return $scripts_by_host;
 }