Ejemplo n.º 1
0
 static function methodAddAppliance($params, $protocol)
 {
     global $DB;
     // TODO : add more fields
     if (isset($params['help'])) {
         return array('help' => 'bool,optional', 'name' => 'string', 'entities_id' => 'integer,optional', 'is_helpdesk_visible' => 'bool,optional', 'is_recursive' => 'bool,optional', 'comment' => 'string,optional', 'externalid' => 'string,optional', 'plugin_appliances_appliancetypes_id' => 'integer,optional', 'plugin_appliances_appliancetypes_name' => 'string,optional');
     }
     if (!Session::getLoginUserID()) {
         return PluginWebservicesMethodCommon::Error($protocol, WEBSERVICES_ERROR_NOTAUTHENTICATED);
     }
     if (!isset($params['name'])) {
         return PluginWebservicesMethodCommon::Error($protocol, WEBSERVICES_ERROR_MISSINGPARAMETER);
     }
     if (isset($params['is_helpdesk_visible']) && !is_numeric($params['is_helpdesk_visible'])) {
         return PluginWebservicesMethodCommon::Error($protocol, WEBSERVICES_ERROR_BADPARAMETER, '', 'is_helpdesk_visible');
     }
     if (isset($params['is_recursive']) && !is_numeric($params['is_recursive'])) {
         return PluginWebservicesMethodCommon::Error($protocol, WEBSERVICES_ERROR_BADPARAMETER, '', 'is_recursive');
     }
     $input = array();
     $input['name'] = addslashes($params['name']);
     if (isset($params['entities_id'])) {
         $input['entities_id'] = intval($params['entities_id']);
     } else {
         $input['entities_id'] = $_SESSION["glpiactive_entity"];
     }
     if (isset($params['is_recursive'])) {
         // TODO check if canUnrecurs
         $input['is_recursive'] = $params['is_recursive'] ? 1 : 0;
     }
     if (isset($params['externalid']) && !empty($params['externalid'])) {
         $input['externalid'] = addslashes($params['externalid']);
     }
     if (isset($params['plugin_appliances_appliancetypes_name'])) {
         $type = new PluginAppliancesApplianceType();
         $input2 = array();
         $input2['entities_id'] = $input['entities_id'];
         $input2['is_recursive'] = $input['is_recursive'];
         $input2['name'] = addslashes($params['plugin_appliances_appliancetypes_name']);
         $input['plugin_appliances_appliancetypes_id'] = $type->import($input2);
     } else {
         if (isset($params['plugin_appliances_appliancetypes_id'])) {
             // TODO check if this id exists and is readable and is available in appliance entity
             $input['plugin_appliances_appliancetypes_id'] = intval($params['plugin_appliances_appliancetypes_id']);
         }
     }
     if (isset($params['is_helpdesk_visible'])) {
         $input['is_helpdesk_visible'] = $params['is_helpdesk_visible'] ? 1 : 0;
     }
     // Old field name for compatibility
     if (isset($params['notes'])) {
         $input['notepad'] = addslashes($params['notes']);
     }
     foreach (array('comment', 'notepad', 'serial', 'otherserial') as $field) {
         if (isset($params[$field])) {
             $input[$field] = addslashes($params[$field]);
         }
     }
     $appliance = new self();
     if (!$appliance->can(-1, 'w', $input)) {
         return PluginWebservicesMethodCommon::Error($protocol, WEBSERVICES_ERROR_NOTALLOWED);
     }
     $id = $appliance->add($input);
     if ($id) {
         // Return the newly created object
         return $appliance->methodGetAppliance(array('id' => $id), $protocol);
     }
     return PluginWebservicesMethodCommon::Error($protocol, WEBSERVICES_ERROR_FAILED);
 }
Ejemplo n.º 2
0
function plugin_appliances_MassiveActionsProcess($data)
{
    global $DB;
    switch ($data['action']) {
        case "plugin_appliances_add_item":
            if (in_array($data['itemtype'], PluginAppliancesAppliance::getTypes())) {
                $PluginItem = new PluginAppliancesAppliance_Item();
                foreach ($data["item"] as $key => $val) {
                    if ($val == 1) {
                        $input = array('plugin_appliances_appliances_id' => $data['plugin_appliances_appliances_id'], 'items_id' => $key, 'itemtype' => $data['itemtype']);
                        if ($PluginItem->can(-1, 'w', $input)) {
                            $PluginItem->add($input);
                        }
                    }
                }
            }
            break;
        case "plugin_appliances_install":
            if (in_array($data['itemtype'], PluginAppliancesAppliance::getTypes())) {
                $PluginItem = new PluginAppliancesAppliance_Item();
                foreach ($data["item"] as $key => $val) {
                    if ($val == 1) {
                        $input = array('plugin_appliances_appliances_id' => $key, 'items_id' => $data["item_item"], 'itemtype' => $data['itemtype']);
                        if ($PluginItem->can(-1, 'w', $input)) {
                            $newid = $PluginItem->add($input);
                        }
                    }
                }
            }
            break;
        case "plugin_appliances_desinstall":
            if (in_array($data['itemtype'], PluginAppliancesAppliance::getTypes())) {
                foreach ($data["item"] as $key => $val) {
                    if ($val == 1) {
                        $query = "DELETE\n                            FROM `glpi_plugin_appliances_appliances_items`\n                            WHERE `itemtype` = '" . $data['itemtype'] . "'\n                                  AND `items_id` = '" . $data['item_item'] . "'\n                                  AND `plugin_appliances_appliances_id` = '" . $key . "'";
                        $DB->query($query);
                    }
                }
            }
            break;
        case "plugin_appliances_transfert":
            if ($data['itemtype'] == 'PluginAppliancesAppliance') {
                foreach ($data["item"] as $key => $val) {
                    if ($val == 1) {
                        $appliance = new PluginAppliancesAppliance();
                        $appliance->getFromDB($key);
                        $type = PluginAppliancesApplianceType::transfer($appliance->fields["plugin_appliances_appliancetypes_id"], $data['entities_id']);
                        $values["id"] = $key;
                        $values["plugin_appliances_appliancetypes_id"] = $type;
                        $values["entities_id"] = $data['entities_id'];
                        $appliance->update($values);
                    }
                }
            }
            break;
    }
}