Esempio n. 1
0
 protected function applyQueryFilterOptions($tableName, $tableAlias, array $options, array $sqlParts)
 {
     if (CWebUser::getType() != USER_TYPE_SUPER_ADMIN) {
         // if services with specific trigger IDs were requested, return only the ones accessible to the current user.
         if ($options['filter']['triggerid']) {
             $accessibleTriggers = API::Trigger()->get(array('output' => array('triggerid'), 'triggerids' => $options['filter']['triggerid']));
             $options['filter']['triggerid'] = zbx_objectValues($accessibleTriggers, 'triggerid');
         } else {
             $sqlParts = $this->addPermissionFilter($sqlParts);
         }
     }
     $sqlParts = parent::applyQueryFilterOptions($tableName, $tableAlias, $options, $sqlParts);
     // parentids
     if ($options['parentids'] !== null) {
         $sqlParts['from'][] = 'services_links slp';
         $sqlParts['where'][] = $this->fieldId('serviceid') . '=slp.servicedownid AND slp.soft=0';
         $sqlParts['where'][] = dbConditionInt('slp.serviceupid', (array) $options['parentids']);
     }
     // childids
     if ($options['childids'] !== null) {
         $sqlParts['from'][] = 'services_links slc';
         $sqlParts['where'][] = $this->fieldId('serviceid') . '=slc.serviceupid AND slc.soft=0';
         $sqlParts['where'][] = dbConditionInt('slc.servicedownid', (array) $options['childids']);
     }
     return $sqlParts;
 }
 protected function applyQueryFilterOptions($tableName, $tableAlias, array $options, array $sqlParts)
 {
     $sqlParts = parent::applyQueryFilterOptions($tableName, $tableAlias, $options, $sqlParts);
     // screen ids
     if ($options['screenids'] !== null) {
         zbx_value2array($options['screenids']);
         $sqlParts = $this->addQuerySelect($this->fieldId('screenid'), $sqlParts);
         $sqlParts['where'][] = dbConditionInt($this->fieldId('screenid'), $options['screenids']);
     }
     return $sqlParts;
 }