Esempio n. 1
0
    Html::back();
} else {
    if (isset($_POST["purge"])) {
        $nn->check($_POST['id'], PURGE);
        $nn->delete($_POST, 1);
        Event::log($_POST["id"], "networkname", 5, "inventory", sprintf(__('%s purges an item'), $_SESSION["glpiname"]));
        if ($node = getItemForItemtype($nn->fields["itemtype"])) {
            if ($node->can($nn->fields["items_id"], READ)) {
                Html::redirect($node->getLinkURL());
            }
        }
        $nn->redirectToList();
    } else {
        if (isset($_POST["update"])) {
            $nn->check($_POST['id'], UPDATE);
            $nn->update($_POST);
            Event::log($_POST["id"], "networkname", 4, "inventory", sprintf(__('%s updates an item'), $_SESSION["glpiname"]));
            Html::back();
        } else {
            if (isset($_POST["unaffect"])) {
                $nn->check($_POST['id'], UPDATE);
                $nn->unaffectAddressByID($_POST['id']);
                Event::log($_POST["id"], "networkname", 4, "inventory", sprintf(__('%s updates an item'), $_SESSION["glpiname"]));
                if ($node = getItemForItemtype($nn->fields["itemtype"])) {
                    if ($node->can($nn->fields["items_id"], READ)) {
                        Html::redirect($node->getLinkURL());
                    }
                }
                $nn->redirectToList();
            } else {
                if (isset($_POST['assign_address'])) {
Esempio n. 2
0
 /**
  * \brief update all related elements after adding or updating an element
  *
  * splitInputForElements() prepare the data for adding or updating NetworkPortInstantiation and
  * NetworkName. This method will update NetworkPortInstantiation and NetworkName. I must be call
  * after NetworkPort::add or NetworkPort::update otherwise, the networkport ID will not be known
  * and the dependencies won't have a valid items_id field.
  *
  * @since version 0.84
  *
  * @param $history   (default 1)
  *
  * @see splitInputForElements() for preparing the input
  **/
 function updateDependencies($history = 1)
 {
     $instantiation = $this->getInstantiation();
     if ($instantiation !== false && count($this->input_for_instantiation) > 0) {
         $this->input_for_instantiation['networkports_id'] = $this->getID();
         if ($instantiation->isNewID($instantiation->getID())) {
             $instantiation->add($this->input_for_instantiation, $history);
         } else {
             $instantiation->update($this->input_for_instantiation, $history);
         }
     }
     unset($this->input_for_instantiation);
     if (count($this->input_for_NetworkName) > 0 && !isset($_POST['several'])) {
         // Check to see if the NetworkName is empty
         $empty_networkName = empty($this->input_for_NetworkName['name']) && empty($this->input_for_NetworkName['fqdns_id']);
         if ($empty_networkName && is_array($this->input_for_NetworkName['_ipaddresses'])) {
             foreach ($this->input_for_NetworkName['_ipaddresses'] as $ip_address) {
                 if (!empty($ip_address)) {
                     $empty_networkName = false;
                     break;
                 }
             }
         }
         $network_name = new NetworkName();
         if (isset($this->input_for_NetworkName['id'])) {
             if ($empty_networkName) {
                 // If the NetworkName is empty, then delete it !
                 $network_name->delete($this->input_for_NetworkName, $history);
             } else {
                 // Else, update it
                 $network_name->update($this->input_for_NetworkName, $history);
             }
         } else {
             if (!$empty_networkName) {
                 // Only create a NetworkName if it is not empty
                 $this->input_for_NetworkName['itemtype'] = 'NetworkPort';
                 $this->input_for_NetworkName['items_id'] = $this->getID();
                 $network_name->add($this->input_for_NetworkName, $history);
             }
         }
     }
     unset($this->input_for_NetworkName);
     if (count($this->input_for_NetworkPortConnect) > 0) {
         if (isset($this->input_for_NetworkPortConnect['networkports_id_1']) && isset($this->input_for_NetworkPortConnect['networkports_id_2']) && !empty($this->input_for_NetworkPortConnect['networkports_id_2'])) {
             $nn = new NetworkPort_NetworkPort();
             $nn->add($this->input_for_NetworkPortConnect);
         }
     }
     unset($this->input_for_NetworkPortConnect);
 }
 /**
  * Import IPs
  *
  * @param $p_ips IPs code to import
  * @param $networkequipments_id id of network equipment
  *
  * @return errors string to be alimented if import ko / '' if ok
  **/
 function internalPorts($a_ips, $networkequipments_id, $mac, $networkname_name)
 {
     $networkPort = new NetworkPort();
     $iPAddress = new IPAddress();
     $pfUnmanaged = new PluginFusioninventoryUnmanaged();
     $networkName = new NetworkName();
     // Get agregated ports
     $a_networkPortAggregates = current($networkPort->find("`itemtype`='NetworkEquipment'\n                       AND `items_id`='" . $networkequipments_id . "'\n                       AND `instantiation_type`='NetworkPortAggregate'\n                       AND `logical_number` = '0'", '', 1));
     $a_ips_DB = array();
     $networkports_id = 0;
     if (isset($a_networkPortAggregates['id'])) {
         $a_networkPortAggregates['mac'] = $mac;
         $networkPort->update($a_networkPortAggregates);
         $networkports_id = $a_networkPortAggregates['id'];
     } else {
         $input = array();
         $input['itemtype'] = 'NetworkEquipment';
         $input['items_id'] = $networkequipments_id;
         $input['instantiation_type'] = 'NetworkPortAggregate';
         $input['name'] = 'general';
         $input['mac'] = $mac;
         $networkports_id = $networkPort->add($input);
     }
     // Get networkname
     $a_networknames_find = current($networkName->find("`items_id`='" . $networkports_id . "'\n                                                         AND `itemtype`='NetworkPort'", "", 1));
     $networknames_id = 0;
     if (isset($a_networknames_find['id'])) {
         $networknames_id = $a_networknames_find['id'];
         $a_networknames_find['name'] = $networkname_name;
         $networkName->update($a_networknames_find);
     } else {
         $input = array();
         $input['items_id'] = $networkports_id;
         $input['itemtype'] = 'NetworkPort';
         $input['name'] = $networkname_name;
         $networknames_id = $networkName->add($input);
     }
     $a_ips_fromDB = $iPAddress->find("`itemtype`='NetworkName'\n                                    AND `items_id`='" . $networknames_id . "'");
     foreach ($a_ips_fromDB as $data) {
         $a_ips_DB[$data['id']] = $data['name'];
     }
     foreach ($a_ips as $key => $ip) {
         foreach ($a_ips_DB as $keydb => $ipdb) {
             if ($ip == $ipdb) {
                 unset($a_ips[$key]);
                 unset($a_ips_DB[$keydb]);
                 break;
             }
         }
     }
     if (count($a_ips) == 0 and count($a_ips_DB) == 0) {
         // Nothing to do
     } else {
         if (count($a_ips_DB) != 0 && count($a_ips) != 0) {
             // Delete IPs in DB
             foreach ($a_ips_DB as $idtmp => $ip) {
                 $iPAddress->delete(array('id' => $idtmp));
             }
         }
         if (count($a_ips) != 0) {
             foreach ($a_ips as $ip) {
                 if ($ip != '127.0.0.1') {
                     $input = array();
                     $input['entities_id'] = 0;
                     $input['itemtype'] = 'NetworkName';
                     $input['items_id'] = $networknames_id;
                     $input['name'] = $ip;
                     $iPAddress->add($input);
                     // Search in unmanaged device if device with IP (LLDP) is yet added, in this case,
                     // we get id of this unmanaged device
                     $a_manageds = $pfUnmanaged->find("`ip`='" . $ip . "'", "", 1);
                     if (count($a_manageds) > 0) {
                         $datas = current($a_unmanageds);
                         $this->unmanagedCDP = $datas['id'];
                     }
                 }
             }
         }
     }
 }