/** * @since version 0.84 (before in entitydata.class) * * @param $entity Entity object **/ static function showHelpdeskOptions(Entity $entity) { global $CFG_GLPI; $ID = $entity->getField('id'); if (!$entity->can($ID, READ) || !Session::haveRightsOr(self::$rightname, array(self::READHELPDESK, self::UPDATEHELPDESK))) { return false; } $canedit = Session::haveRight(self::$rightname, self::UPDATEHELPDESK) && Session::haveAccessToEntity($ID); echo "<div class='spaced'>"; if ($canedit) { echo "<form method='post' name=form action='" . Toolbox::getItemTypeFormURL(__CLASS__) . "'>"; } echo "<table class='tab_cadre_fixe'>"; echo "<tr class='tab_bg_1'><td colspan='2'>" . _n('Ticket template', 'Ticket templates', 1) . "</td>"; echo "<td colspan='2'>"; $toadd = array(); if ($ID != 0) { $toadd = array(self::CONFIG_PARENT => __('Inheritance of the parent entity')); } $options = array('value' => $entity->fields["tickettemplates_id"], 'entity' => $ID, 'toadd' => $toadd); TicketTemplate::dropdown($options); if ($entity->fields["tickettemplates_id"] == self::CONFIG_PARENT && $ID != 0) { echo "<font class='green'> "; $tt = new TicketTemplate(); $tid = self::getUsedConfig('tickettemplates_id', $ID, '', 0); if (!$tid) { echo Dropdown::EMPTY_VALUE; } else { if ($tt->getFromDB($tid)) { echo $tt->getLink(); } } echo "</font>"; } echo "</td></tr>"; echo "<tr class='tab_bg_1'><td colspan='2'>" . __('Calendar') . "</td>"; echo "<td colspan='2'>"; $options = array('value' => $entity->fields["calendars_id"], 'emptylabel' => __('24/7')); if ($ID != 0) { $options['toadd'] = array(self::CONFIG_PARENT => __('Inheritance of the parent entity')); } Calendar::dropdown($options); if ($entity->fields["calendars_id"] == self::CONFIG_PARENT && $ID != 0) { echo "<font class='green'> "; $calendar = new Calendar(); $cid = self::getUsedConfig('calendars_id', $ID, '', 0); if (!$cid) { _e('24/7'); } else { if ($calendar->getFromDB($cid)) { echo $calendar->getLink(); } } echo "</font>"; } echo "</td></tr>"; echo "<tr class='tab_bg_1'><td colspan='2'>" . __('Tickets default type') . "</td>"; echo "<td colspan='2'>"; $toadd = array(); if ($ID != 0) { $toadd = array(self::CONFIG_PARENT => __('Inheritance of the parent entity')); } Ticket::dropdownType('tickettype', array('value' => $entity->fields["tickettype"], 'toadd' => $toadd)); if ($entity->fields['tickettype'] == self::CONFIG_PARENT && $ID != 0) { echo "<font class='green'> "; echo Ticket::getTicketTypeName(self::getUsedConfig('tickettype', $ID, '', Ticket::INCIDENT_TYPE)); echo "</font>"; } echo "</td></tr>"; echo "<tr class='tab_bg_1'><td colspan='2'>" . __('Automatic assignment of tickets') . "</td>"; echo "<td colspan='2'>"; $autoassign = self::getAutoAssignMode(); if ($ID == 0) { unset($autoassign[self::CONFIG_PARENT]); } Dropdown::showFromArray('auto_assign_mode', $autoassign, array('value' => $entity->fields["auto_assign_mode"])); if ($entity->fields['auto_assign_mode'] == self::CONFIG_PARENT && $ID != 0) { $auto_assign_mode = self::getUsedConfig('auto_assign_mode', $entity->fields['entities_id']); echo "<font class='green'> "; echo $autoassign[$auto_assign_mode]; echo "</font>"; } echo "</td></tr>"; echo "<tr><th colspan='4'>" . __('Automatic closing configuration') . "</th></tr>"; echo "<tr class='tab_bg_1'>" . "<td colspan='2'>" . __('Automatic closing of solved tickets after') . "</td>"; echo "<td colspan='2'>"; $autoclose = array(self::CONFIG_PARENT => __('Inheritance of the parent entity'), self::CONFIG_NEVER => __('Never'), 0 => __('Immediatly')); if ($ID == 0) { unset($autoclose[self::CONFIG_PARENT]); } Dropdown::showNumber('autoclose_delay', array('value' => $entity->fields['autoclose_delay'], 'min' => 1, 'max' => 99, 'step' => 1, 'toadd' => $autoclose, 'unit' => 'day')); if ($entity->fields['autoclose_delay'] == self::CONFIG_PARENT && $ID != 0) { $autoclose_mode = self::getUsedConfig('autoclose_delay', $entity->fields['entities_id'], '', self::CONFIG_NEVER); echo "<br><font class='green'> "; if ($autoclose_mode >= 0) { printf(_n('%d day', '%d days', $autoclose_mode), $autoclose_mode); } else { echo $autoclose[$autoclose_mode]; } echo "</font>"; } echo "</td></tr>"; echo "<tr><th colspan='4'>" . __('Configuring the satisfaction survey') . "</th></tr>"; echo "<tr class='tab_bg_1'>" . "<td colspan='2'>" . __('Configuring the satisfaction survey') . "</td>"; echo "<td colspan='2'>"; /// no inquest case = rate 0 $typeinquest = array(self::CONFIG_PARENT => __('Inheritance of the parent entity'), 1 => __('Internal survey'), 2 => __('External survey')); // No inherit from parent for root entity if ($ID == 0) { unset($typeinquest[self::CONFIG_PARENT]); if ($entity->fields['inquest_config'] == self::CONFIG_PARENT) { $entity->fields['inquest_config'] = 1; } } $rand = Dropdown::showFromArray('inquest_config', $typeinquest, $options = array('value' => $entity->fields['inquest_config'])); echo "</td></tr>\n"; // Do not display for root entity in inherit case if ($entity->fields['inquest_config'] == self::CONFIG_PARENT && $ID != 0) { $inquestconfig = self::getUsedConfig('inquest_config', $entity->fields['entities_id']); $inquestrate = self::getUsedConfig('inquest_config', $entity->fields['entities_id'], 'inquest_rate'); echo "<tr class='tab_bg_1'><td colspan='4' class='green center'>"; if ($inquestrate == 0) { _e('Disabled'); } else { echo $typeinquest[$inquestconfig] . '<br>'; $inqconf = self::getUsedConfig('inquest_config', $entity->fields['entities_id'], 'inquest_delay'); printf(_n('%d day', '%d days', $inqconf), $inqconf); echo "<br>"; //TRANS: %d is the percentage. %% to display % printf(__('%d%%'), $inquestrate); if ($inquestconfig == 2) { echo "<br>"; echo self::getUsedConfig('inquest_config', $entity->fields['entities_id'], 'inquest_URL'); } } echo "</td></tr>\n"; } echo "<tr class='tab_bg_1'><td colspan='4'>"; $_POST = array('inquest_config' => $entity->fields['inquest_config'], 'entities_id' => $ID); $params = array('inquest_config' => '__VALUE__', 'entities_id' => $ID); echo "<div id='inquestconfig'>"; include GLPI_ROOT . '/ajax/ticketsatisfaction.php'; echo "</div>\n"; echo "</td></tr>"; if ($canedit) { echo "<tr class='tab_bg_2'>"; echo "<td class='center' colspan='4'>"; echo "<input type='hidden' name='id' value='" . $entity->fields["id"] . "'>"; echo "<input type='submit' name='update' value=\"" . _sx('button', 'Save') . "\"\n class='submit'>"; echo "</td></tr>"; echo "</table>"; Html::closeForm(); } else { echo "</table>"; } echo "</div>"; Ajax::updateItemOnSelectEvent("dropdown_inquest_config{$rand}", "inquestconfig", $CFG_GLPI["root_doc"] . "/ajax/ticketsatisfaction.php", $params); }
/** * Show users of an entity * * @param $entity Entity object **/ static function showForEntity(Entity $entity) { global $DB; $ID = $entity->getField('id'); if (!$entity->can($ID, READ)) { return false; } $canedit = $entity->canEdit($ID); $canshowuser = User::canView(); $nb_per_line = 3; $rand = mt_rand(); if ($canedit) { $headerspan = $nb_per_line * 2; } else { $headerspan = $nb_per_line; } if ($canedit) { echo "<div class='firstbloc'>"; echo "<form name='entityuser_form{$rand}' id='entityuser_form{$rand}' method='post' action='"; echo Toolbox::getItemTypeFormURL(__CLASS__) . "'>"; echo "<table class='tab_cadre_fixe'>"; echo "<tr class='tab_bg_1'><th colspan='6'>" . __('Add an authorization to a user') . "</tr>"; echo "<tr class='tab_bg_1'><td class='tab_bg_2 center'>" . __('User') . " "; echo "<input type='hidden' name='entities_id' value='{$ID}'>"; User::dropdown(array('right' => 'all')); echo "</td><td class='tab_bg_2 center'>" . self::getTypeName(1) . "</td><td>"; Profile::dropdownUnder(array('value' => Profile::getDefault())); echo "</td><td class='tab_bg_2 center'>" . __('Recursive') . "</td><td>"; Dropdown::showYesNo("is_recursive", 0); echo "</td><td class='tab_bg_2 center'>"; echo "<input type='submit' name='add' value=\"" . _sx('button', 'Add') . "\" class='submit'>"; echo "</td></tr>"; echo "</table>"; Html::closeForm(); echo "</div>"; } $query = "SELECT DISTINCT `glpi_profiles`.`id`, `glpi_profiles`.`name`\n FROM `glpi_profiles_users`\n LEFT JOIN `glpi_profiles`\n ON (`glpi_profiles_users`.`profiles_id` = `glpi_profiles`.`id`)\n LEFT JOIN `glpi_users` ON (`glpi_users`.`id` = `glpi_profiles_users`.`users_id`)\n WHERE `glpi_profiles_users`.`entities_id` = '{$ID}'\n AND `glpi_users`.`is_deleted` = '0'"; $result = $DB->query($query); $nb = $DB->numrows($result); echo "<div class='spaced'>"; if ($canedit && $nb) { Html::openMassiveActionsForm('mass' . __CLASS__ . $rand); $massiveactionparams = array('container' => 'mass' . __CLASS__ . $rand, 'specific_actions' => array('purge' => _x('button', 'Delete permanently'))); Html::showMassiveActions($massiveactionparams); } echo "<table class='tab_cadre_fixehov'>"; echo "<thead><tr>"; echo "<th class='noHover' colspan='{$headerspan}'>"; printf(__('%1$s (%2$s)'), _n('User', 'Users', Session::getPluralNumber()), __('D=Dynamic, R=Recursive')); echo "</th></tr></thead>"; if ($nb) { Session::initNavigateListItems('User', sprintf(__('%1$s = %2$s'), Entity::getTypeName(1), $entity->getName())); while ($data = $DB->fetch_assoc($result)) { echo "<tbody><tr class='noHover'>"; $reduce_header = 0; if ($canedit && $nb) { echo "<th width='10'>"; echo Html::checkAllAsCheckbox("profile" . $data['id'] . "_{$rand}"); echo "</th>"; $reduce_header++; } echo "<th colspan='" . ($headerspan - $reduce_header) . "'>"; printf(__('%1$s: %2$s'), __('Profile'), $data["name"]); echo "</th></tr></tbody>"; echo "<tbody id='profile" . $data['id'] . "_{$rand}'>"; $query = "SELECT `glpi_users`.*,\n `glpi_profiles_users`.`id` AS linkID,\n `glpi_profiles_users`.`is_recursive`,\n `glpi_profiles_users`.`is_dynamic`\n FROM `glpi_profiles_users`\n LEFT JOIN `glpi_users`\n ON (`glpi_users`.`id` = `glpi_profiles_users`.`users_id`)\n WHERE `glpi_profiles_users`.`entities_id` = '{$ID}'\n AND `glpi_users`.`is_deleted` = '0'\n AND `glpi_profiles_users`.`profiles_id` = '" . $data['id'] . "'\n ORDER BY `glpi_profiles_users`.`profiles_id`,\n `glpi_users`.`name`,\n `glpi_users`.`realname`,\n `glpi_users`.`firstname`"; $result2 = $DB->query($query); if ($DB->numrows($result2) > 0) { $i = 0; while ($data2 = $DB->fetch_assoc($result2)) { Session::addToNavigateListItems('User', $data2["id"]); if ($i % $nb_per_line == 0) { if ($i != 0) { echo "</tr>"; } echo "<tr class='tab_bg_1'>"; } if ($canedit) { echo "<td width='10'>"; Html::showMassiveActionCheckBox(__CLASS__, $data2["linkID"]); echo "</td>"; } $username = formatUserName($data2["id"], $data2["name"], $data2["realname"], $data2["firstname"], $canshowuser); if ($data2["is_dynamic"] || $data2["is_recursive"]) { $username = sprintf(__('%1$s %2$s'), $username, "<span class='b'>("); if ($data2["is_dynamic"]) { $username = sprintf(__('%1$s%2$s'), $username, __('D')); } if ($data2["is_dynamic"] && $data2["is_recursive"]) { $username = sprintf(__('%1$s%2$s'), $username, ", "); } if ($data2["is_recursive"]) { $username = sprintf(__('%1$s%2$s'), $username, __('R')); } $username = sprintf(__('%1$s%2$s'), $username, ")</span>"); } echo "<td>" . $username . "</td>"; $i++; } while ($i % $nb_per_line != 0) { echo "<td> </td>"; if ($canedit) { echo "<td> </td>"; } $i++; } echo "</tr>"; echo "</tbody>"; } else { echo "<tr colspan='{$headerspan}'>" . __('Item not found') . "</tr>"; } } } echo "</table>"; if ($canedit && $nb) { $massiveactionparams['ontop'] = false; Html::showMassiveActions($massiveactionparams); Html::closeForm(); } echo "</div>"; }
static function showNotificationOptions(Entity $entity) { $con_spotted = false; $ID = $entity->getField('id'); if (!$entity->can($ID, 'r')) { return false; } // Notification right applied $canedit = Session::haveRight('notification', 'w') && Session::haveAccessToEntity($ID); // Get data $entitynotification = new PluginAdditionalalertsOcsAlert(); if (!$entitynotification->getFromDBbyEntity($ID)) { $entitynotification->getEmpty(); } if ($canedit) { echo "<form method='post' name=form action='" . Toolbox::getItemTypeFormURL(__CLASS__) . "'>"; } echo "<table class='tab_cadre_fixe'>"; echo "<tr class='tab_bg_1'><td>" . __('New imported computers from OCS-NG', 'additionalalerts') . "</td><td>"; $default_value = $entitynotification->fields['use_newocs_alert']; Alert::dropdownYesNo(array('name' => "use_newocs_alert", 'value' => $default_value, 'inherit_global' => 1)); echo "</td></tr>"; echo "<tr class='tab_bg_1'><td >" . __('OCS-NG Synchronization alerts', 'additionalalerts') . "</td><td>"; Alert::dropdownIntegerNever('delay_ocs', $entitynotification->fields["delay_ocs"], array('max' => 99, 'inherit_global' => 1)); echo " " . _n('Day', 'Days', 2) . "</td>"; echo "</tr>"; if ($canedit) { echo "<tr>"; echo "<td class='tab_bg_2 center' colspan='4'>"; echo "<input type='hidden' name='entities_id' value='{$ID}'>"; if ($entitynotification->fields["id"]) { echo "<input type='hidden' name='id' value=\"" . $entitynotification->fields["id"] . "\">"; echo "<input type='submit' name='update' value=\"" . _sx('button', 'Save') . "\" class='submit' >"; } else { echo "<input type='submit' name='add' value=\"" . _sx('button', 'Save') . "\" class='submit' >"; } echo "</td></tr>"; echo "</table>"; Html::closeForm(); } else { echo "</table>"; } }
/** * Show users of an entity * * @param $entity Entity object **/ static function showForEntity(Entity $entity) { global $DB, $CFG_GLPI, $LANG; $ID = $entity->getField('id'); if (!$entity->can($ID, "r")) { return false; } $canedit = $entity->can($ID, "w"); $canshowuser = haveRight("user", "r"); $nb_per_line = 3; $rand = mt_rand(); if ($canedit) { echo "<form name='entityuser_form{$rand}' id='entityuser_form{$rand}' method='post' action='"; echo getItemTypeFormURL(__CLASS__) . "'>"; $headerspan = $nb_per_line * 2; } else { $headerspan = $nb_per_line; } if ($canedit) { echo "<div class='firstbloc'>"; echo "<table class='tab_cadre_fixe'>"; echo "<tr class='tab_bg_1'><th colspan='5'>" . $LANG['setup'][605] . "</tr>"; echo "<tr><td class='tab_bg_2 center'>" . $LANG['common'][34] . " : "; echo "<input type='hidden' name='entities_id' value='{$ID}'>"; User::dropdown(array('right' => 'all')); echo "</td><td class='tab_bg_2 center'>" . $LANG['profiles'][22] . " : "; Profile::dropdownUnder(array('value' => Profile::getDefault())); echo "</td><td class='tab_bg_2 center'>" . $LANG['profiles'][28] . " : "; Dropdown::showYesNo("is_recursive", 0); echo "</td><td class='tab_bg_2 center'>"; echo "<input type='submit' name='add' value=\"" . $LANG['buttons'][8] . "\" class='submit'>"; echo "</td></tr>"; echo "</table></div>"; } echo "<div class='spaced'>"; echo "<table class='tab_cadre_fixehov'>"; echo "<tr><th colspan='{$headerspan}'>" . $LANG['Menu'][14] . " (D=" . $LANG['profiles'][29] . ", R=" . $LANG['profiles'][28] . ")</th></tr>"; $query = "SELECT DISTINCT `glpi_profiles`.`id`, `glpi_profiles`.`name`\n FROM `glpi_profiles_users`\n LEFT JOIN `glpi_profiles`\n ON (`glpi_profiles_users`.`profiles_id` = `glpi_profiles`.`id`)\n LEFT JOIN `glpi_users` ON (`glpi_users`.`id` = `glpi_profiles_users`.`users_id`)\n WHERE `glpi_profiles_users`.`entities_id` = '{$ID}'\n AND `glpi_users`.`is_deleted` = '0'"; $result = $DB->query($query); if ($DB->numrows($result) > 0) { initNavigateListItems('User', $LANG['entity'][0] . " = " . $entity->fields['name']); while ($data = $DB->fetch_array($result)) { echo "<tr><th colspan='{$headerspan}'>" . $LANG['profiles'][22] . " : " . $data["name"]; echo "</th></tr>"; $query = "SELECT `glpi_users`.*,\n `glpi_profiles_users`.`id` AS linkID,\n `glpi_profiles_users`.`is_recursive`,\n `glpi_profiles_users`.`is_dynamic`\n FROM `glpi_profiles_users`\n LEFT JOIN `glpi_users`\n ON (`glpi_users`.`id` = `glpi_profiles_users`.`users_id`)\n WHERE `glpi_profiles_users`.`entities_id` = '{$ID}'\n AND `glpi_users`.`is_deleted` = '0'\n AND `glpi_profiles_users`.`profiles_id` = '" . $data['id'] . "'\n ORDER BY `glpi_profiles_users`.`profiles_id`,\n `glpi_users`.`name`,\n `glpi_users`.`realname`,\n `glpi_users`.`firstname`"; $result2 = $DB->query($query); if ($DB->numrows($result2) > 0) { $i = 0; while ($data2 = $DB->fetch_array($result2)) { addToNavigateListItems('User', $data2["id"]); if ($i % $nb_per_line == 0) { if ($i != 0) { echo "</tr>"; } echo "<tr class='tab_bg_1'>"; } if ($canedit) { echo "<td width='10'>"; echo "<input type='checkbox' name='item[" . $data2["linkID"] . "]' value='1'>"; echo "</td>"; } echo "<td>"; echo formatUserName($data2["id"], $data2["name"], $data2["realname"], $data2["firstname"], $canshowuser); if ($data2["is_dynamic"] || $data2["is_recursive"]) { echo "<strong> ("; if ($data2["is_dynamic"]) { echo "D"; } if ($data2["is_dynamic"] && $data2["is_recursive"]) { echo ", "; } if ($data2["is_recursive"]) { echo "R"; } echo ")</strong>"; } echo "</td>"; $i++; } while ($i % $nb_per_line != 0) { echo "<td> </td>"; if ($canedit) { echo "<td> </td>"; } $i++; } echo "</tr>"; } else { echo "<tr colspan='{$headerspan}'>" . $LANG['common'][54] . "</tr>"; } } } echo "</table>"; if ($canedit) { openArrowMassive("entityuser_form{$rand}", true); closeArrowMassive('delete', $LANG['buttons'][6]); echo "</form>"; } echo "</div>"; }
static function showHelpdeskOptions(Entity $entity) { global $LANG, $CFG_GLPI; $ID = $entity->getField('id'); if (!$entity->can($ID, 'r') || !haveRight('entity_helpdesk', 'r')) { return false; } $canedit = haveRight('entity_helpdesk', 'w') && haveAccessToEntity($ID); // Get data $entdata = new EntityData(); if (!$entdata->getFromDB($ID)) { $entdata->getEmpty(); } echo "<div class='spaced'>"; if ($canedit) { echo "<form method='post' name=form action='" . getItemTypeFormURL(__CLASS__) . "'>"; } echo "<table class='tab_cadre_fixe'>"; echo "<tr class='tab_bg_1'><td colspan='2'>" . $LANG['buttons'][15] . " : </td>"; echo "<td colspan='2'>"; $options = array('value' => $entdata->fields["calendars_id"], 'emptylabel' => $LANG['common'][102]); if ($ID == 0) { $options['emptylabel'] = $LANG['sla'][10]; } Dropdown::show('Calendar', $options); if ($entdata->fields["calendars_id"] == 0) { $calendar = new Calendar(); if ($calendar->getFromDB(self::getUsedConfig('calendars_id', $ID))) { echo " - " . $calendar->getLink(); } } echo "</td></tr>"; echo "<tr class='tab_bg_1'><td colspan='2'>" . $LANG['entity'][28] . " : </td>"; echo "<td colspan='2'>"; $toadd = array(); if ($ID != 0) { $toadd = array(0 => $LANG['common'][102]); } Ticket::dropdownType('tickettype', $entdata->fields["tickettype"], $toadd); if ($entdata->fields["calendars_id"] == 0) { $calendar = new Calendar(); if ($calendar->getFromDB(self::getUsedConfig('calendars_id', $ID))) { echo " - " . $calendar->getLink(); } } echo "</td></tr>"; echo "<tr class='tab_bg_1'><td colspan='2'>" . $LANG['setup'][52] . " : </td>"; echo "<td colspan='2'>"; $autoassign = array(-1 => $LANG['setup'][731], NO_AUTO_ASSIGN => $LANG['choice'][0], AUTO_ASSIGN_HARDWARE_CATEGORY => $LANG['setup'][51], AUTO_ASSIGN_CATEGORY_HARDWARE => $LANG['setup'][50]); Dropdown::showFromArray('auto_assign_mode', $autoassign, array('value' => $entdata->fields["auto_assign_mode"])); echo "</td></tr>"; echo "<tr><th colspan='4'>" . $LANG['entity'][17] . "</th></tr>"; echo "<tr class='tab_bg_1'><td colspan='2'>" . $LANG['entity'][18] . " : </td>"; echo "<td colspan='2'>"; Dropdown::showInteger('autoclose_delay', $entdata->fields['autoclose_delay'], 0, 99, 1, array(-1 => $LANG['setup'][731], -10 => $LANG['setup'][307])); /* Alert::dropdownIntegerNever('autoclose_delay', $entdata->fields['autoclose_delay'], array('max' => 99, 'inherit_global' => 1, 'never_value' => -10,)); */ echo " " . $LANG['stats'][31] . "</td></tr>"; echo "<tr><th colspan='4'>" . $LANG['entity'][19] . "</th></tr>"; echo "<tr class='tab_bg_1'><td colspan='2'>" . $LANG['entity'][19] . " : </td>"; echo "<td colspan='2'>"; /// no inquest case = rate 0 $typeinquest = array(0 => $LANG['common'][102], 1 => $LANG['satisfaction'][9], 2 => $LANG['satisfaction'][10]); // No inherit from parent for root entity if ($entdata->fields['entities_id'] == 0) { unset($typeinquest[0]); if ($entdata->fields['inquest_config'] == 0) { $entdata->fields['inquest_config'] = 1; } } $rand = Dropdown::showFromArray('inquest_config', $typeinquest, $options = array('value' => $entdata->fields['inquest_config'])); echo "</td></tr>\n"; // Do not display for root entity in inherit case if ($entdata->fields['inquest_config'] == 0 && $entdata->fields['entities_id'] != 0) { $inquestconfig = self::getUsedConfig('inquest_config', $entdata->fields['entities_id']); $inquestrate = self::getUsedConfig('inquest_config', $entdata->fields['entities_id'], 'inquest_rate'); echo "<tr><td colspan='4' class='green center'>" . $LANG['common'][102] . " : "; if ($inquestrate == 0) { echo $LANG['crontask'][31]; } else { echo $typeinquest[$inquestconfig]; echo " - " . self::getUsedConfig('inquest_config', $entdata->fields['entities_id'], 'inquest_delay'); echo " " . $LANG['stats'][31] . " - "; echo $inquestrate . "%"; if ($inquestconfig == 2) { echo " - " . self::getUsedConfig('inquest_config', $entdata->fields['entities_id'], 'inquest_URL'); } } echo "</td></tr>\n"; } echo "<tr class='tab_bg_1'><td colspan='4'>"; $_REQUEST = array('inquest_config' => $entdata->fields['inquest_config'], 'entities_id' => $ID); $params = array('inquest_config' => '__VALUE__', 'entities_id' => $ID); echo "<div id='inquestconfig'>"; include GLPI_ROOT . '/ajax/ticketsatisfaction.php'; echo "</div>\n"; echo "</td></tr>"; if ($canedit) { echo "<tr>"; echo "<td class='tab_bg_2 center' colspan='4'>"; echo "<input type='hidden' name='entities_id' value='{$ID}'>"; if ($entdata->fields["id"]) { echo "<input type='hidden' name='id' value='" . $entdata->fields["id"] . "'>"; echo "<input type='submit' name='update' value=\"" . $LANG['buttons'][7] . "\"\n class='submit'>"; } else { echo "<input type='submit' name='add' value=\"" . $LANG['buttons'][7] . "\" class='submit'>"; } echo "</td></tr>"; echo "</table></form>"; } else { echo "</table>"; } echo "</div>"; ajaxUpdateItemOnSelectEvent("dropdown_inquest_config{$rand}", "inquestconfig", $CFG_GLPI["root_doc"] . "/ajax/ticketsatisfaction.php", $params); }
/** * Entity right check */ public function testEntity() { global $DB; $DB->connect(); $ent0 = $this->sharedFixture['entity'][0]; $ent1 = $this->sharedFixture['entity'][1]; $ent2 = $this->sharedFixture['entity'][2]; $ent3 = $this->sharedFixture['entity'][3]; $ent4 = $this->sharedFixture['entity'][4]; $entity = new Entity(); $this->assertTrue(Session::changeActiveEntities("all")); $this->assertTrue($entity->can(0, READ), "Fail: can't read root entity"); $this->assertTrue($entity->can($ent0, READ), "Fail: can't read entity 0"); $this->assertTrue($entity->can($ent1, READ), "Fail: can't read entity 1"); $this->assertTrue($entity->can($ent2, READ), "Fail: can't read entity 2"); $this->assertTrue($entity->can($ent3, READ), "Fail: can't read entity 2.1"); $this->assertTrue($entity->can($ent4, READ), "Fail: can't read entity 2.2"); $this->assertTrue($entity->canEdit(0), "Fail: can't write root entity"); $this->assertTrue($entity->canEdit($ent0), "Fail: can't write entity 0"); $this->assertTrue($entity->canEdit($ent1), "Fail: can't write entity 1"); $this->assertTrue($entity->canEdit($ent2), "Fail: can't write entity 2"); $this->assertTrue($entity->canEdit($ent3), "Fail: can't write entity 2.1"); $this->assertTrue($entity->canEdit($ent4), "Fail: can't write entity 2.2"); $input = array('entities_id' => $ent1); $this->assertTrue($entity->can(-1, CREATE, $input), "Fail: can create entity in root"); $input = array('entities_id' => $ent2); $this->assertTrue($entity->can(-1, CREATE, $input), "Fail: can't create entity in 2"); $input = array('entities_id' => $ent3); $this->assertTrue($entity->can(-1, CREATE, $input), "Fail: can't create entity in 2.1"); $input = array('entities_id' => 99999); $this->assertFalse($entity->can(-1, CREATE, $input), "Fail: can create entity in not existing entity"); $input = array('entities_id' => -1); $this->assertFalse($entity->can(-1, CREATE, $input), "Fail: can create entity in not existing entity"); $this->assertTrue(Session::changeActiveEntities($ent2, true)); $this->assertTrue($entity->can(0, READ), "Fail: can't read root entity"); $this->assertTrue($entity->can($ent0, READ), "Fail: can't read entity 0"); $this->assertFalse($entity->can($ent1, READ), "Fail: can read entity 1"); $this->assertTrue($entity->can($ent2, READ), "Fail: can't read entity 2"); $this->assertTrue($entity->can($ent3, READ), "Fail: can't read entity 2.1"); $this->assertTrue($entity->can($ent4, READ), "Fail: can't read entity 2.2"); $this->assertFalse($entity->can(99999, READ), "Fail: can read not existing entity"); $this->assertFalse($entity->canEdit(0), "Fail: can write root entity"); $this->assertFalse($entity->canEdit($ent0), "Fail: can write entity 0"); $this->assertFalse($entity->canEdit($ent1), "Fail: can write entity 1"); $this->assertTrue($entity->canEdit($ent2), "Fail: can't write entity 2"); $this->assertTrue($entity->canEdit($ent3), "Fail: can't write entity 2.1"); $this->assertTrue($entity->canEdit($ent4), "Fail: can't write entity 2.2"); $this->assertFalse($entity->canEdit(99999), "Fail: can write not existing entity"); $input = array('entities_id' => $ent1); $this->assertFalse($entity->can(-1, CREATE, $input), "Fail: can create entity in root"); $input = array('entities_id' => $ent2); $this->assertTrue($entity->can(-1, CREATE, $input), "Fail: can't create entity in 2"); $input = array('entities_id' => $ent3); $this->assertTrue($entity->can(-1, CREATE, $input), "Fail: can't create entity in 2.1"); $input = array('entities_id' => 99999); $this->assertFalse($entity->can(-1, CREATE, $input), "Fail: can create entity in not existing entity"); $input = array('entities_id' => -1); $this->assertFalse($entity->can(-1, CREATE, $input), "Fail: can create entity in not existing entity"); $this->assertTrue(Session::changeActiveEntities($ent2, false)); $input = array('entities_id' => $ent1); $this->assertFalse($entity->can(-1, CREATE, $input), "Fail: can create entity in root"); $input = array('entities_id' => $ent2); // next should be false (or not).... but check is done on glpiactiveprofile // will require to save current state in session - this is probably acceptable // this allow creation when no child defined yet (no way to select tree in this case) $this->assertTrue($entity->can(-1, CREATE, $input), "Fail: can't create entity in 2"); $input = array('entities_id' => $ent3); $this->assertFalse($entity->can(-1, CREATE, $input), "Fail: can create entity in 2.1"); }
static function showNotificationOptions(Entity $entity) { $con_spotted = false; $ID = $entity->getField('id'); if (!$entity->can($ID, 'r')) { return false; } // Notification right applied $canedit = Session::haveRight('notification', 'w') && Session::haveAccessToEntity($ID); // Get data $entitynotification = new PluginAdditionalalertsInfocomAlert(); if (!$entitynotification->getFromDBbyEntity($ID)) { $entitynotification->getEmpty(); } if ($canedit) { echo "<form method='post' name=form action='" . Toolbox::getItemTypeFormURL(__CLASS__) . "'>"; } echo "<table class='tab_cadre_fixe'>"; echo "<tr><th colspan='2'>" . __('Alarms options') . "</th></tr>"; echo "<tr class='tab_bg_1'><td>" . PluginAdditionalalertsInfocomAlert::getTypeName(2) . "</td><td>"; $default_value = $entitynotification->fields['use_infocom_alert']; Alert::dropdownYesNo(array('name' => "use_infocom_alert", 'value' => $default_value, 'inherit_global' => 1)); echo "</td></tr>"; if ($canedit) { echo "<tr>"; echo "<td class='tab_bg_2 center' colspan='4'>"; echo "<input type='hidden' name='entities_id' value='{$ID}'>"; if ($entitynotification->fields["id"]) { echo "<input type='hidden' name='id' value=\"" . $entitynotification->fields["id"] . "\">"; echo "<input type='submit' name='update' value=\"" . _sx('button', 'Save') . "\" class='submit' >"; } else { echo "<input type='submit' name='add' value=\"" . _sx('button', 'Save') . "\" class='submit' >"; } echo "</td></tr>"; echo "</table>"; Html::closeForm(); } else { echo "</table>"; } }