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); }
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; } }