%PDF- %PDF-
| Direktori : /var/www/projetos/suporte.iigd.com.br/ajax/ |
| Current File : /var/www/projetos/suporte.iigd.com.br/ajax/actorinformation.php |
<?php
/**
* ---------------------------------------------------------------------
*
* GLPI - Gestionnaire Libre de Parc Informatique
*
* http://glpi-project.org
*
* @copyright 2015-2024 Teclib' and contributors.
* @copyright 2003-2014 by the INDEPNET Development Team.
* @licence https://www.gnu.org/licenses/gpl-3.0.html
*
* ---------------------------------------------------------------------
*
* LICENSE
*
* This file is part of GLPI.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*
* ---------------------------------------------------------------------
*/
// Direct access to file
if (strpos($_SERVER['PHP_SELF'], "actorinformation.php")) {
$AJAX_INCLUDE = 1;
include('../inc/includes.php');
header("Content-Type: text/html; charset=UTF-8");
Html::header_nocache();
}
Session::checkLoginUser();
// save value and force boolval for security of $_REQUEST['only_number]
$only_number = boolval($_REQUEST['only_number'] ?? false);
// check if only one actor key is set
$actor_keys = preg_grep('/^(users|groups|suppliers)_id_(.*)$/', array_keys($_REQUEST));
if (count($actor_keys) !== 1) {
// Unexpected request
return;
}
$actor_key = reset($actor_keys);
$actor_id = (int)$_REQUEST[$actor_key];
// check if user is allowed to see the item (only if not current connected user)
if ($actor_id != Session::getLoginUserID()) {
$itemtype = getItemtypeForForeignKeyField($actor_key);
$item = new $itemtype();
if (!$item->getFromDB($actor_id) || !$item->canView()) {
// Unable to get item or no rights to see the item
return;
}
}
// compute field searchoption number value according to the type of actor
switch ($actor_key) {
case 'users_id_requester':
$field = 4;
$method = 'countActiveObjectsForUser';
break;
case 'users_id_observer':
$field = 66;
$method = 'countActiveObjectsForObserverUser';
break;
case 'users_id_assign':
$field = 5;
$method = 'countActiveObjectsForTech';
break;
case 'groups_id_requester':
$field = 71;
$method = 'countActiveObjectsForRequesterGroup';
break;
case 'groups_id_observer':
$field = 65;
$method = 'countActiveObjectsForObserverGroup';
break;
case 'groups_id_assign':
$field = 8;
$method = 'countActiveObjectsForTechGroup';
break;
case 'suppliers_id_assign':
$field = 6;
$method = 'countActiveObjectsForSupplier';
break;
default:
// Unexpected request
return;
}
$options2 = [
'criteria' => [
[
'field' => $field,
'searchtype' => 'equals',
'value' => $actor_id,
'link' => 'AND',
],
[
'field' => 12, // status
'searchtype' => 'equals',
'value' => 'notold',
'link' => 'AND',
],
],
'reset' => 'reset',
];
$ticket = new Ticket();
$url = $ticket->getSearchURL() . "?" . Toolbox::append_params($options2, '&');
$nb = $ticket->{$method}($actor_id);
if ($only_number) {
echo "<a href='$url'>" . $nb . "</a>";
} else {
echo " <a href='$url' title=\"" . __s('Processing') . "\">(";
printf(__('%1$s: %2$s'), __('Processing'), $nb);
echo ")</a>";
}