本文整理汇总了PHP中CommonDBTM::canEdit方法的典型用法代码示例。如果您正苦于以下问题:PHP CommonDBTM::canEdit方法的具体用法?PHP CommonDBTM::canEdit怎么用?PHP CommonDBTM::canEdit使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CommonDBTM
的用法示例。
在下文中一共展示了CommonDBTM::canEdit方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: processMassiveActionsForOneItemtype
/**
* @see CommonDBTM::processMassiveActionsForOneItemtype()
**/
static function processMassiveActionsForOneItemtype(MassiveAction $ma, CommonDBTM $item, array $ids)
{
switch ($ma->getAction()) {
case 'sendmail':
foreach ($ids as $id) {
if ($item->canEdit($id)) {
if ($item->sendMailById($id)) {
$ma->itemDone($item->getType(), $id, MassiveAction::ACTION_OK);
} else {
$ma->itemDone($item->getType(), $id, MassiveAction::ACTION_KO);
}
} else {
$ma->itemDone($item->getType(), $id, MassiveAction::ACTION_NORIGHT);
}
}
return;
}
parent::processMassiveActionsForOneItemtype($ma, $item, $ids);
}
示例2: showForItem
/**
* Show ports for an item
*
* @param $item CommonDBTM object
* @param $withtemplate integer withtemplate param (default '')
**/
static function showForItem(CommonDBTM $item, $withtemplate = '')
{
global $DB, $CFG_GLPI;
$rand = mt_rand();
$itemtype = $item->getType();
$items_id = $item->getField('id');
if (!NetworkEquipment::canView() || !$item->can($items_id, READ)) {
return false;
}
$netport = new self();
$netport->item = $item;
if ($itemtype == 'NetworkPort') {
$canedit = false;
} else {
$canedit = $item->canEdit($items_id);
}
$showmassiveactions = false;
if ($withtemplate != 2) {
$showmassiveactions = $canedit;
}
// Show Add Form
if ($canedit && (empty($withtemplate) || $withtemplate != 2)) {
echo "\n<form method='get' action='" . $netport->getFormURL() . "'>\n";
echo "<input type='hidden' name='items_id' value='" . $item->getID() . "'>\n";
echo "<input type='hidden' name='itemtype' value='" . $item->getType() . "'>\n";
echo "<div class='firstbloc'><table class='tab_cadre_fixe'>\n";
echo "<tr class='tab_bg_2'><td class='center'>\n";
_e('Network port type to be added');
echo " ";
$instantiations = array();
foreach (self::getNetworkPortInstantiations() as $inst_type) {
if (call_user_func(array($inst_type, 'canCreate'))) {
$instantiations[$inst_type] = call_user_func(array($inst_type, 'getTypeName'));
}
}
Dropdown::showFromArray('instantiation_type', $instantiations, array('value' => 'NetworkPortEthernet'));
echo "</td>\n";
echo "<td class='tab_bg_2 center' width='50%'>";
_e('Add several ports');
echo " <input type='checkbox' name='several' value='1'></td>\n";
echo "<td>\n";
echo "<input type='submit' name='create' value=\"" . _sx('button', 'Add') . "\" class='submit'>\n";
echo "</td></tr></table></div>\n";
Html::closeForm();
}
if ($showmassiveactions) {
$checkbox_column = true;
Html::openMassiveActionsForm('mass' . __CLASS__ . $rand);
} else {
$checkbox_column = false;
}
$is_active_network_port = false;
Session::initNavigateListItems('NetworkPort', sprintf(__('%1$s = %2$s'), $item->getTypeName(1), $item->getName()));
if ($itemtype == 'NetworkPort') {
$porttypes = array('NetworkPortAlias', 'NetworkPortAggregate');
} else {
$porttypes = self::getNetworkPortInstantiations();
// Manage NetworkportMigration
$porttypes[] = '';
}
$display_options = self::getDisplayOptions($itemtype);
$table = new HTMLTableMain();
$number_port = self::countForItem($item);
$table_options = array('canedit' => $canedit, 'display_options' => &$display_options);
// Make table name and add the correct show/hide parameters
$table_name = sprintf(__('%1$s: %2$d'), self::getTypeName($number_port), $number_port);
// Add the link to the modal to display the options ...
$table_namelink = self::getDisplayOptionsLink($itemtype);
$table_name = sprintf(__('%1$s - %2$s'), $table_name, $table_namelink);
$table->setTitle($table_name);
$c_main = $table->addHeader('main', self::getTypeName(Session::getPluralNumber()));
if ($display_options['dynamic_import'] && $item->isDynamic()) {
$table_options['display_isDynamic'] = true;
} else {
$table_options['display_isDynamic'] = false;
}
if ($display_options['characteristics']) {
$c_instant = $table->addHeader('Instantiation', __('Characteristics'));
$c_instant->setHTMLClass('center');
}
if ($display_options['internet']) {
$options = array('names' => 'NetworkName', 'aliases' => 'NetworkAlias', 'ipaddresses' => 'IPAddress', 'ipnetworks' => 'IPNetwork');
$table_options['dont_display'] = array();
foreach ($options as $option => $itemtype_for_option) {
if (!$display_options[$option]) {
$table_options['dont_display'][$itemtype_for_option] = true;
}
}
$c_network = $table->addHeader('Internet', __('Internet information'));
$c_network->setHTMLClass('center');
} else {
$c_network = NULL;
}
foreach ($porttypes as $portType) {
//.........这里部分代码省略.........
示例3: processMassiveActionsForOneItemtype
//.........这里部分代码省略.........
$ic = new Infocom();
$link_entity_type = -1;
/// Specific entity item
if ($searchopt[$index]["table"] == "glpi_suppliers") {
$ent = new Supplier();
if ($ent->getFromDB($input[$input["field"]])) {
$link_entity_type = $ent->fields["entities_id"];
}
}
foreach ($ids as $key) {
if ($item->getFromDB($key)) {
if ($link_entity_type < 0 || $link_entity_type == $item->getEntityID() || $ent->fields["is_recursive"] && in_array($link_entity_type, getAncestorsOf("glpi_entities", $item->getEntityID()))) {
$input2["items_id"] = $key;
$input2["itemtype"] = $item->getType();
if ($ic->can(-1, CREATE, $input2)) {
// Add infocom if not exists
if (!$ic->getFromDBforDevice($item->getType(), $key)) {
$input2["items_id"] = $key;
$input2["itemtype"] = $item->getType();
unset($ic->fields);
$ic->add($input2);
$ic->getFromDBforDevice($item->getType(), $key);
}
$id = $ic->fields["id"];
unset($ic->fields);
if ($ic->update(array('id' => $id, $input["field"] => $input[$input["field"]]))) {
$ma->itemDone($item->getType(), $key, MassiveAction::ACTION_OK);
} else {
$ma->itemDone($item->getType(), $key, MassiveAction::ACTION_KO);
$ma->addMessage($item->getErrorMessage(ERROR_ON_ACTION));
}
} else {
$ma->itemDone($item->getType(), $key, MassiveAction::ACTION_NORIGHT);
$ma->addMessage($item->getErrorMessage(ERROR_RIGHT));
}
} else {
$ma->itemDone($item->getType(), $key, MassiveAction::ACTION_KO);
$ma->addMessage($item->getErrorMessage(ERROR_COMPAT));
}
} else {
$ma->itemDone($item->getType(), $key, MassiveAction::ACTION_KO);
$ma->addMessage($item->getErrorMessage(ERROR_NOT_FOUND));
}
}
} else {
/// Not infocoms
$link_entity_type = array();
/// Specific entity item
$itemtable = getTableForItemType($item->getType());
$itemtype2 = getItemTypeForTable($searchopt[$index]["table"]);
if ($item2 = getItemForItemtype($itemtype2)) {
if ($index != 80 && $searchopt[$index]["table"] != $itemtable && $item2->isEntityAssign() && $item->isEntityAssign()) {
if ($item2->getFromDB($input[$input["field"]])) {
if (isset($item2->fields["entities_id"]) && $item2->fields["entities_id"] >= 0) {
if (isset($item2->fields["is_recursive"]) && $item2->fields["is_recursive"]) {
$link_entity_type = getSonsOf("glpi_entities", $item2->fields["entities_id"]);
} else {
$link_entity_type[] = $item2->fields["entities_id"];
}
}
}
}
}
foreach ($ids as $key) {
if ($item->canEdit($key) && $item->canMassiveAction($action, $input['field'], $input[$input["field"]])) {
if (count($link_entity_type) == 0 || in_array($item->fields["entities_id"], $link_entity_type)) {
if ($item->update(array('id' => $key, $input["field"] => $input[$input["field"]]))) {
$ma->itemDone($item->getType(), $key, MassiveAction::ACTION_OK);
} else {
$ma->itemDone($item->getType(), $key, MassiveAction::ACTION_KO);
$ma->addMessage($item->getErrorMessage(ERROR_ON_ACTION));
}
} else {
$ma->itemDone($item->getType(), $key, MassiveAction::ACTION_KO);
$ma->addMessage($item->getErrorMessage(ERROR_COMPAT));
}
} else {
$ma->itemDone($item->getType(), $key, MassiveAction::ACTION_NORIGHT);
$ma->addMessage($item->getErrorMessage(ERROR_RIGHT));
}
}
}
}
break;
case 'add_transfer_list':
$itemtype = $item->getType();
if (!isset($_SESSION['glpitransfer_list'])) {
$_SESSION['glpitransfer_list'] = array();
}
if (!isset($_SESSION['glpitransfer_list'][$itemtype])) {
$_SESSION['glpitransfer_list'][$itemtype] = array();
}
foreach ($ids as $id) {
$_SESSION['glpitransfer_list'][$itemtype][$id] = $id;
$ma->itemDone($item->getType(), $id, MassiveAction::ACTION_OK);
}
$ma->setRedirect($CFG_GLPI['root_doc'] . '/front/transfer.action.php');
break;
}
}
示例4: showForItem
/**
* Prints a direct connection to a computer
*
* @param $item CommonDBTM object: the Monitor/Phone/Peripheral/Printer
* @param $withtemplate integer withtemplate param (default '')
*
* @return nothing (print out a table)
**/
static function showForItem(CommonDBTM $item, $withtemplate = '')
{
// Prints a direct connection to a computer
global $DB;
$comp = new Computer();
$ID = $item->getField('id');
if (!$item->can($ID, READ)) {
return false;
}
$canedit = $item->canEdit($ID);
$rand = mt_rand();
// Is global connection ?
$global = $item->getField('is_global');
$used = array();
$compids = array();
$crit = array('FIELDS' => array('id', 'computers_id', 'is_dynamic'), 'itemtype' => $item->getType(), 'items_id' => $ID, 'is_deleted' => 0);
foreach ($DB->request('glpi_computers_items', $crit) as $data) {
$compids[$data['id']] = $data['computers_id'];
$dynamic[$data['id']] = $data['is_dynamic'];
$used['Computer'][] = $data['computers_id'];
}
$number = count($compids);
if ($canedit && ($global || !$number)) {
echo "<div class='firstbloc'>";
echo "<form name='computeritem_form{$rand}' id='computeritem_form{$rand}' method='post'\n action='" . Toolbox::getItemTypeFormURL(__CLASS__) . "'>";
echo "<table class='tab_cadre_fixe'>";
echo "<tr class='tab_bg_2'><th colspan='2'>" . __('Connect a computer') . "</th></tr>";
echo "<tr class='tab_bg_1'><td class='right'>";
echo "<input type='hidden' name='items_id' value='{$ID}'>";
echo "<input type='hidden' name='itemtype' value='" . $item->getType() . "'>";
if ($item->isRecursive()) {
self::dropdownConnect('Computer', $item->getType(), "computers_id", getSonsOf("glpi_entities", $item->getEntityID()), 0, $used);
} else {
self::dropdownConnect('Computer', $item->getType(), "computers_id", $item->getEntityID(), 0, $used);
}
echo "</td><td class='center'>";
echo "<input type='submit' name='add' value=\"" . _sx('button', 'Connect') . "\" class='submit'>";
echo "</td></tr>";
echo "</table>";
Html::closeForm();
echo "</div>";
}
echo "<div class='spaced'>";
if ($canedit && $number) {
Html::openMassiveActionsForm('mass' . __CLASS__ . $rand);
$massiveactionparams = array('num_displayed' => $number, 'specific_actions' => array('purge' => _x('button', 'Disconnect')), 'container' => 'mass' . __CLASS__ . $rand);
Html::showMassiveActions($massiveactionparams);
}
echo "<table class='tab_cadre_fixehov'>";
if ($number > 0) {
$header_begin = "<tr>";
$header_top = '';
$header_bottom = '';
$header_end = '';
if ($canedit) {
$header_top .= "<th width='10'>" . Html::getCheckAllAsCheckbox('mass' . __CLASS__ . $rand);
$header_top .= "</th>";
$header_bottom .= "<th width='10'>" . Html::getCheckAllAsCheckbox('mass' . __CLASS__ . $rand);
$header_bottom .= "</th>";
}
$header_end .= "<th>" . __('Name') . "</th>";
if (Plugin::haveImport()) {
$header_end .= "<th>" . __('Automatic inventory') . "</th>";
}
$header_end .= "<th>" . __('Entity') . "</th>";
$header_end .= "<th>" . __('Serial number') . "</th>";
$header_end .= "<th>" . __('Inventory number') . "</th>";
$header_end .= "</tr>";
echo $header_begin . $header_top . $header_end;
foreach ($compids as $key => $compid) {
$comp->getFromDB($compid);
echo "<tr class='tab_bg_1'>";
if ($canedit) {
echo "<td width='10'>";
Html::showMassiveActionCheckBox(__CLASS__, $key);
echo "</td>";
}
echo "<td " . ($comp->getField('is_deleted') ? "class='tab_bg_2_2'" : "") . ">" . $comp->getLink() . "</td>";
if (Plugin::haveImport()) {
echo "<td>" . Dropdown::getYesNo($dynamic[$key]) . "</td>";
}
echo "<td class='center'>" . Dropdown::getDropdownName("glpi_entities", $comp->getField('entities_id'));
echo "</td>";
echo "<td class='center'>" . $comp->getField('serial') . "</td>";
echo "<td class='center'>" . $comp->getField('otherserial') . "</td>";
echo "</tr>";
}
echo $header_begin . $header_bottom . $header_end;
} else {
echo "<tr><td class='tab_bg_1 b'><i>" . __('Not connected') . "</i>";
echo "</td></tr>";
}
//.........这里部分代码省略.........