Esempio n. 1
0
 function setRequest()
 {
     if ($this->parentGroup == Null) {
         $parent_gid = xmlrpc_get_convergence_parent_group_id($this->id);
         /* Get parent group with root context @see #2240
            Needed to get parent name for package edition */
         $parent_group = new Group($parent_gid, True, False, True);
         $this->setParentGroup($parent_group);
     }
     $this->request = new Request();
     /* Create dyngroup based on parent group's name */
     $subReqModule = 'dyngroup';
     $subReqCriterion = 'groupname';
     $subReqValue = $this->parentGroup->name;
     $subReqValue2 = '';
     $subReqOperator = '=';
     $subReq = new SubRequest($subReqModule, $subReqCriterion, $subReqValue, $subReqValue2, $subReqOperator);
     /* Add subrequest */
     $this->request->addSub($subReq);
     /* Create convergence groups subrequest */
     $subReqModule = in_array('glpi', $_SESSION['modulesList']) ? 'glpi' : 'inventory';
     $subReqCriterion = 'Installed software (specific vendor and version)';
     if (in_array('inventory', $_SESSION['modulesList'])) {
         $subReqCriterion = 'Software/Company:ProductName:ProductVersion';
     }
     $Qvendor = $this->package->Qvendor ? str_replace(',', '*', $this->package->Qvendor) : '*';
     $Qsoftware = $this->package->Qsoftware ? str_replace(',', '*', $this->package->Qsoftware) : '*';
     $Qversion = $this->package->Qversion ? str_replace(',', '*', $this->package->Qversion) : '*';
     $subReqValue = sprintf('>%s, %s, %s<', $Qvendor, $Qsoftware, $Qversion);
     $subReqValue2 = '';
     $subReqOperator = '=';
     $subReq = new SubRequest($subReqModule, $subReqCriterion, $subReqValue, $subReqValue2, $subReqOperator);
     /* Add convergence subrequest to main request */
     $this->request->addSub($subReq);
     /* Set request with root context @see #2240
      * second param is True
      * Needed for package edition */
     parent::setRequest($this->request->toS(), True);
 }
Esempio n. 2
0
 function setRequest()
 {
     if ($this->parentGroup == Null) {
         $parent_gid = xmlrpc_get_convergence_parent_group_id($this->id);
         /* Get parent group with root context @see #2240
            Needed to get parent name for package edition */
         $parent_group = new Group($parent_gid, True, False, True);
         $this->setParentGroup($parent_group);
     }
     $request = array();
     /* Create convergence groups subrequest */
     $subReqModule = in_array('glpi', $_SESSION['modulesList']) ? 'glpi' : 'inventory';
     $subReqCriterion = 'Installed software (specific vendor and version)';
     if (in_array('inventory', $_SESSION['modulesList'])) {
         $subReqCriterion = 'Software/Company:ProductName:ProductVersion';
     }
     // Arrays are for bundles (multiple convergence criterions)
     if (!is_array($this->package->Qvendor)) {
         $this->package->Qvendor = array($this->package->Qvendor);
         $this->package->Qsoftware = array($this->package->Qsoftware);
         $this->package->Qversion = array($this->package->Qversion);
     }
     $i = 0;
     for ($i = 0; $i < count($this->package->Qvendor); $i++) {
         $Qvendor = $this->package->Qvendor[$i] ? str_replace(',', '*', $this->package->Qvendor[$i]) : '*';
         $Qsoftware = $this->package->Qsoftware[$i] ? str_replace(',', '*', $this->package->Qsoftware[$i]) : '*';
         $Qversion = $this->package->Qversion[$i] ? str_replace(',', '*', $this->package->Qversion[$i]) : '*';
         $request[] = sprintf("%d==%s::%s==>%s, %s, %s<", $i + 1, $subReqModule, $subReqCriterion, $Qvendor, $Qsoftware, $Qversion);
     }
     // Adding parent group condition in last
     $request[] = $i + 1 . '==dyngroup::groupname==' . $this->parentGroup->name;
     $request = implode('||', $request);
     parent::setRequest($request, True);
 }