reformatted, cleaned

This commit is contained in:
2021-12-10 11:50:51 +01:00
parent 0cde20881a
commit a4e71a8992
4 changed files with 275 additions and 328 deletions

195
hook.php
View File

@@ -1,124 +1,125 @@
<?php <?php
/* /*
------------------------------------------------------------------------- -------------------------------------------------------------------------
Remote Spport (VNC) Remote Spport (VNC)
Copyright (C) 2021 by Alessandro Carloni Copyright (C) 2021 by Alessandro Carloni
https://github.com/Kaya84/RemoteSupport https://github.com/Kaya84/RemoteSupport
------------------------------------------------------------------------- -------------------------------------------------------------------------
LICENSE LICENSE
This file is part of Camera Input. This file is part of Camera Input.
Camera Input is free software; you can redistribute it and/or modify Camera Input is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or the Free Software Foundation; either version 2 of the License, or
(at your option) any later version. (at your option) any later version.
Camera Input is distributed in the hope that it will be useful, Camera Input is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details. GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with Camera Input. If not, see <http://www.gnu.org/licenses/>. along with Camera Input. If not, see <http://www.gnu.org/licenses/>.
-------------------------------------------------------------------------- --------------------------------------------------------------------------
*/ */
function plugin_remotesupport_install() function plugin_remotesupport_install()
{ {
global $DB; global $DB;
Toolbox::logInFile("remotsupport","Installing plugin"); Toolbox::logInFile("remotsupport", "Installing plugin");
$state_online = [ $state_online = [
'name' => 'Online', 'name' => 'Online',
'entities_id' => 0, 'entities_id' => 0,
'is_recursive' => 0, 'is_recursive' => 0,
'comment' => '', 'comment' => '',
'states_id' => 0, 'states_id' => 0,
'completename' => 'Online', 'completename' => 'Online',
'level' => 1, 'level' => 1,
'ancestors_cache' => '[]', 'ancestors_cache' => '[]',
'sons_cache' => 'NULL', 'sons_cache' => 'NULL',
'is_visible_computer' => 1, 'is_visible_computer' => 1,
'is_visible_monitor' => 0, 'is_visible_monitor' => 0,
'is_visible_networkequipment' => 0, 'is_visible_networkequipment' => 0,
'is_visible_peripheral' => 0, 'is_visible_peripheral' => 0,
'is_visible_phone' => 0, 'is_visible_phone' => 0,
'is_visible_printer' => 0, 'is_visible_printer' => 0,
'is_visible_softwareversion' => 0, 'is_visible_softwareversion' => 0,
'is_visible_softwarelicense' => 0, 'is_visible_softwarelicense' => 0,
'is_visible_line' => 0, 'is_visible_line' => 0,
'is_visible_certificate' => 0, 'is_visible_certificate' => 0,
'is_visible_rack' => 0, 'is_visible_rack' => 0,
'is_visible_passivedcequipment' => 0, 'is_visible_passivedcequipment' => 0,
'is_visible_enclosure' => 0, 'is_visible_enclosure' => 0,
'is_visible_pdu' => 0, 'is_visible_pdu' => 0,
'is_visible_cluster' => 0, 'is_visible_cluster' => 0,
'is_visible_contract' => 0, 'is_visible_contract' => 0,
'is_visible_appliance' => 0]; 'is_visible_appliance' => 0];
$ret = $DB->insert( $ret = $DB->insert(
'glpi_states', $state_online 'glpi_states', $state_online
); );
$state_offline = $state_online; $state_offline = $state_online;
$state_offline["name"] = 'Offline'; $state_offline["name"] = 'Offline';
$state_offline["completename"] = 'Offline'; $state_offline["completename"] = 'Offline';
$ret = $DB->insert( $ret = $DB->insert(
'glpi_states', $state_offline 'glpi_states', $state_offline
); );
return true; return true;
} }
function plugin_remotesupport_uninstall(){ function plugin_remotesupport_uninstall()
global $DB; {
global $DB;
Toolbox::logInFile("remotsupport","Uninstalling plugin"); Toolbox::logInFile("remotsupport", "Uninstalling plugin");
CronTask::Unregister('remotesupport'); CronTask::Unregister('remotesupport');
$req = $DB->request('glpi_states', ['FIELDS' => ['glpi_states' => ['id', 'name']]], [ 'OR' => [ 'name' => 'Online', 'name' => 'Offline']]); $req = $DB->request('glpi_states', ['FIELDS' => ['glpi_states' => ['id', 'name']]], ['OR' => ['name' => 'Online', 'name' => 'Offline']]);
$ret = $req->next(); $ret = $req->next();
$states_ids[$ret['name']] = $ret['id']; $states_ids[$ret['name']] = $ret['id'];
$ret = $req->next(); $ret = $req->next();
$states_ids[$ret['name']] = $ret['id']; $states_ids[$ret['name']] = $ret['id'];
$DB->query('UPDATE glpi_computers SET states_id=NULL WHERE id='.$states_ids["Offline"]); $DB->query('UPDATE glpi_computers SET states_id=NULL WHERE id=' . $states_ids["Offline"]);
$DB->query('UPDATE glpi_computers SET states_id=NULL WHERE id='.$states_ids["Online"]); $DB->query('UPDATE glpi_computers SET states_id=NULL WHERE id=' . $states_ids["Online"]);
$DB->query('DELETE FROM glpi_states WHERE id='.$states_ids["Offline"]); $DB->query('DELETE FROM glpi_states WHERE id=' . $states_ids["Offline"]);
$DB->query('DELETE FROM glpi_states WHERE id='.$states_ids["Online"]); $DB->query('DELETE FROM glpi_states WHERE id=' . $states_ids["Online"]);
return true; return true;
} }
function plugin_remotesupport_postinit() { function plugin_remotesupport_postinit()
global $CFG_GLPI, $DB; {
global $CFG_GLPI, $DB;
if(isset($_GET['id']) && $_GET['id'] != 0 && isset($_GET['_itemtype']) && $_GET['_itemtype'] == "Ticket"){ if (isset($_GET['id']) && $_GET['id'] != 0 && isset($_GET['_itemtype']) && $_GET['_itemtype'] == "Ticket") {
$id = $_GET['id']; $id = $_GET['id'];
//mysql> select * from glpi_tickets_users where tickets_id = 2 and type = 1; //mysql> select * from glpi_tickets_users where tickets_id = 2 and type = 1;
$req = $DB->request(['FROM' => 'glpi_tickets_users', 'WHERE' => ['tickets_id' => $id, 'type' => 1]]); $req = $DB->request(['FROM' => 'glpi_tickets_users', 'WHERE' => ['tickets_id' => $id, 'type' => 1]]);
//NB: Estraggo unicamente il primo richiedente //NB: Estraggo unicamente il primo richiedente
$row = $req->next(); $row = $req->next();
$requester = $row['users_id']; $requester = $row['users_id'];
// select id, name, users_id from glpi_computers where users_id = 178; // select id, name, users_id from glpi_computers where users_id = 178;
if ($row['users_id'] != 0) { if ($row['users_id'] != 0) {
$req2 = $DB->request(['FROM' => 'glpi_computers', 'WHERE' => ['users_id' => $requester, 'is_deleted' => 0]]); $req2 = $DB->request(['FROM' => 'glpi_computers', 'WHERE' => ['users_id' => $requester, 'is_deleted' => 0]]);
$url = ""; $url = "";
while ($row2 = $req2->next()){ while ($row2 = $req2->next()) {
//$url .= "<li class=\"document\" onclick=\"location.href='vnc://" . $row2['name'] ."'\"$ //$url .= "<li class=\"document\" onclick=\"location.href='vnc://" . $row2['name'] ."'\"$
$url .= "<li class=\"document\" onclick=\"location.href='vnc://" . $row2['name'] ."'\"><i class=\"fa fa-laptop-medical\"></i>" . $row2['name'] . "</li>"; $url .= "<li class=\"document\" onclick=\"location.href='vnc://" . $row2['name'] . "'\"><i class=\"fa fa-laptop-medical\"></i>" . $row2['name'] . "</li>";
} }
if ($url != ""){ if ($url != "") {
echo "<div><ul class=\"timeline_choices\"><h2>Remote support : </h2>"; echo "<div><ul class=\"timeline_choices\"><h2>Remote support : </h2>";
echo $url; echo $url;
echo "</ul></div>"; echo "</ul></div>";
} }
} }
} }
} }
?>

View File

@@ -1,81 +1,39 @@
<?php <?php
/* include "../../../inc/includes.php";
------------------------------------------------------------------------
FusionInventory
Copyright (C) 2010-2011 by the FusionInventory Development Team.
http://www.fusioninventory.org/ http://forge.fusioninventory.org/ declare (ticks = 1);
------------------------------------------------------------------------
LICENSE global $DB, $agents;
This file is part of FusionInventory project. $check_arr = [];
$comps = [];
$pfInventoryComputerComputer = new PluginFusioninventoryInventoryComputerComputer();
foreach (getAllDataFromTable(PluginFusioninventoryAgent::getTable()) as $a) {
FusionInventory is free software: you can redistribute it and/or modify $check = [];
it under the terms of the GNU Affero General Public License as published by $a_computerextend = $pfInventoryComputerComputer->hasAutomaticInventory($a["computers_id"]);
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
FusionInventory is distributed in the hope that it will be useful, $check["url"] = "http://" . $a_computerextend["remote_addr"] . ":62354/status";
but WITHOUT ANY WARRANTY; without even the implied warranty of $check["id"] = $a["id"];
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the $check["computers_id"] = $a["computers_id"];
GNU Affero General Public License for more details. $check["status"] = "unknown";
You should have received a copy of the GNU Affero General Public License
along with FusionInventory. If not, see <http://www.gnu.org/licenses/>.
------------------------------------------------------------------------
@package FusionInventory
@author Walid Nouh
@co-author
@copyright Copyright (c) 2010-2011 FusionInventory team
@license AGPL License 3.0 or (at your option) any later version
http://www.gnu.org/licenses/agpl-3.0-standalone.html
@link http://www.fusioninventory.org/
@link http://forge.fusioninventory.org/projects/fusioninventory-for-glpi/
@since 2010
------------------------------------------------------------------------
*/
include ("../../../inc/includes.php");
declare(ticks=1);
global $DB,$agents;
$check_arr = [];
$comps = [];
$pfInventoryComputerComputer = new PluginFusioninventoryInventoryComputerComputer();
foreach (getAllDataFromTable(PluginFusioninventoryAgent::getTable()) as $a) {
$check = [];
$a_computerextend = $pfInventoryComputerComputer->hasAutomaticInventory($a["computers_id"]);
$check["url"] = "http://".$a_computerextend["remote_addr"].":62354/status";
$check["id"] = $a["id"];
$check["computers_id"] = $a["computers_id"];
$check["status"] = "unknown";
$check_arr[] = $check;
$comps[$a["computers_id"]] = $check;
//print_r($agent->getAgentStatusURLs());
}
$check_arr[] = $check;
$comps[$a["computers_id"]] = $check;
//print_r($agent->getAgentStatusURLs());
}
$descriptorspec = array( $descriptorspec = array(
0 => array("pipe", "r"), // stdin is a pipe that the child will read from 0 => array("pipe", "r"), // stdin is a pipe that the child will read from
1 => array("pipe", "w"), // stdout is a pipe that the child will write to 1 => array("pipe", "w"), // stdout is a pipe that the child will write to
2 => array("file", "/tmp/error-output.txt", "a") // stderr is a file to write to 2 => array("file", "/tmp/error-output.txt", "a"), // stderr is a file to write to
); );
$cwd = '/tmp'; $cwd = '/tmp';
$env = array('debug' => 'false'); $env = array('debug' => 'false');
$process = proc_open(__DIR__.'/check_status', $descriptorspec, $pipes, $cwd, $env); $process = proc_open(__DIR__ . '/check_status', $descriptorspec, $pipes, $cwd, $env);
if (is_resource($process)) { if (is_resource($process)) {
// $pipes now looks like this: // $pipes now looks like this:
@@ -96,7 +54,7 @@ if (is_resource($process)) {
echo "command returned $return_value\n"; echo "command returned $return_value\n";
} }
$req = $DB->request('glpi_states', ['FIELDS' => ['glpi_states' => ['id', 'name']]], [ 'OR' => [ 'name' => 'Online', 'name' => 'Offline']]); $req = $DB->request('glpi_states', ['FIELDS' => ['glpi_states' => ['id', 'name']]], ['OR' => ['name' => 'Online', 'name' => 'Offline']]);
$ret = $req->next(); $ret = $req->next();
$states_ids[$ret['name']] = $ret['id']; $states_ids[$ret['name']] = $ret['id'];
@@ -104,27 +62,24 @@ $ret = $req->next();
$states_ids[$ret['name']] = $ret['id']; $states_ids[$ret['name']] = $ret['id'];
print_r($states_ids); print_r($states_ids);
$DB->update("glpi_computers", [
'states_id' => $states_ids["Offline"]],
$DB->update("glpi_computers", [ ['1' => '1']
'states_id' => $states_ids["Offline"] ] , );
[ '1' => '1' ]
);
foreach ($checked as $s) { foreach ($checked as $s) {
echo $s->computers_id." "; echo $s->computers_id . " ";
$comp = new Computer(); $comp = new Computer();
$comp->getFromDB($s->computers_id); $comp->getFromDB($s->computers_id);
$comp->fields["states_id"] = $states_ids["Online"]; $comp->fields["states_id"] = $states_ids["Online"];
$DB->update("glpi_computers", [ $DB->update("glpi_computers", [
'states_id' => $comp->fields["states_id"] ], 'states_id' => $comp->fields["states_id"]],
[ 'id' => $s->computers_id ] ['id' => $s->computers_id]
); );
echo $comp->fields["contact"]."\n"; echo $comp->fields["contact"] . "\n";
} }
// print_r($a_computerextend); // print_r($a_computerextend);
exit(0); exit(0);

View File

@@ -1,140 +1,141 @@
<?php <?php
if (!defined('GLPI_ROOT')) { if (!defined('GLPI_ROOT')) {
die("Sorry. You can't access directly to this file"); die("Sorry. You can't access directly to this file");
} }
class PluginRemotesupportRemotesupport extends CommonDBTM
{
public static function showInfo($item)
{
$fi_path = Plugin::getWebDir('fusioninventory');
class PluginRemotesupportRemotesupport extends CommonDBTM { // Manage locks pictures
static function showInfo($item) { PluginFusioninventoryLock::showLockIcon('Computer');
$fi_path = Plugin::getWebDir('fusioninventory'); $pfInventoryComputerComputer = new PluginFusioninventoryInventoryComputerComputer();
$a_computerextend = $pfInventoryComputerComputer->hasAutomaticInventory($item->getID());
if (empty($a_computerextend)) {
return true;
}
// Manage locks pictures echo '<table class="tab_glpi" width="100%">';
PluginFusioninventoryLock::showLockIcon('Computer'); echo '<tr>';
echo '<th>' . __('Remote Support') . '</th>';
echo '</tr>';
echo '<tr class="tab_bg_1">';
echo '<td>';
$pfInventoryComputerComputer = new PluginFusioninventoryInventoryComputerComputer(); $url = "<a target=\"_blank\" href=\"https://" . $_SERVER['SERVER_ADDR'] . "/vnc.html?path=vnc%2F" . $a_computerextend['remote_addr'] . "&autoconnect=true&resize=scale&reconnect=true&show_dot=true\"><li class=\"document\"><i class=\"fa fa-laptop-medical\"></i>" . $a_computerextend['remote_addr'] . "</li></a>";
$a_computerextend = $pfInventoryComputerComputer->hasAutomaticInventory($item->getID());
if (empty($a_computerextend)) {
return true;
}
echo '<table class="tab_glpi" width="100%">'; if ($url != "") {
echo '<tr>';
echo '<th>'.__('Remote Support').'</th>';
echo '</tr>';
echo '<tr class="tab_bg_1">';
echo '<td>';
$url = "<a target=\"_blank\" href=\"https://" . $_SERVER['SERVER_ADDR']. "/vnc.html?path=vnc%2F". $a_computerextend['remote_addr'] ."&autoconnect=true&resize=scale&reconnect=true&show_dot=true\"><li class=\"document\"><i class=\"fa fa-laptop-medical\"></i>" . $a_computerextend['remote_addr'] . "</li></a>";
if ($url != ""){
echo "<div><ul class=\"timeline_choices\"><h2>VNC connect : </h2>"; echo "<div><ul class=\"timeline_choices\"><h2>VNC connect : </h2>";
echo $url; echo $url;
echo "</ul></div>"; echo "</ul></div>";
} }
echo '</td>'; echo '</td>';
echo '</tr>'; echo '</tr>';
echo '</table>'; echo '</table>';
} }
static function getStatesIds() { public static function getStatesIds()
global $DB; {
global $DB;
$states_ids = []; $states_ids = [];
$req = $DB->request('glpi_states', ['FIELDS' => ['glpi_states' => ['id', 'name']]], [ 'OR' => [ 'name' => 'Online', 'name' => 'Offline']]); $req = $DB->request('glpi_states', ['FIELDS' => ['glpi_states' => ['id', 'name']]], ['OR' => ['name' => 'Online', 'name' => 'Offline']]);
$ret = $req->next(); $ret = $req->next();
$states_ids[$ret['name']] = $ret['id']; $states_ids[$ret['name']] = $ret['id'];
$ret = $req->next(); $ret = $req->next();
$states_ids[$ret['name']] = $ret['id']; $states_ids[$ret['name']] = $ret['id'];
return $states_ids; return $states_ids;
} }
static function cronRemotesupport($task) { public static function cronRemotesupport($task)
global $DB; {
global $DB;
Toolbox::logInFile("remotsupport","Starting search of agents\n");
Toolbox::logInFile("remotsupport", "Starting search of agents\n");
$check_arr = []; $check_arr = [];
$comps = []; $comps = [];
$pfInventoryComputerComputer = new PluginFusioninventoryInventoryComputerComputer(); $pfInventoryComputerComputer = new PluginFusioninventoryInventoryComputerComputer();
foreach (getAllDataFromTable(PluginFusioninventoryAgent::getTable()) as $a) { foreach (getAllDataFromTable(PluginFusioninventoryAgent::getTable()) as $a) {
$check = []; $check = [];
$a_computerextend = $pfInventoryComputerComputer->hasAutomaticInventory($a["computers_id"]); $a_computerextend = $pfInventoryComputerComputer->hasAutomaticInventory($a["computers_id"]);
$check["url"] = "http://".$a_computerextend["remote_addr"].":62354/status"; $check["url"] = "http://" . $a_computerextend["remote_addr"] . ":62354/status";
$check["id"] = $a["id"]; $check["id"] = $a["id"];
$check["computers_id"] = $a["computers_id"]; $check["computers_id"] = $a["computers_id"];
$check["status"] = "unknown"; $check["status"] = "unknown";
$check_arr[] = $check; $check_arr[] = $check;
$comps[$a["computers_id"]] = $check; $comps[$a["computers_id"]] = $check;
//print_r($agent->getAgentStatusURLs()); //print_r($agent->getAgentStatusURLs());
} }
$descriptorspec = array( $descriptorspec = array(
0 => array("pipe", "r"), // stdin is a pipe that the child will read from 0 => array("pipe", "r"), // stdin is a pipe that the child will read from
1 => array("pipe", "w"), // stdout is a pipe that the child will write to 1 => array("pipe", "w"), // stdout is a pipe that the child will write to
2 => array("file", "/tmp/error-output.txt", "a") // stderr is a file to write to 2 => array("file", "/tmp/error-output.txt", "a"), // stderr is a file to write to
); );
$cwd = '/tmp'; $cwd = '/tmp';
$env = array('debug' => 'false'); $env = array('debug' => 'false');
$process = proc_open(__DIR__.'/../bin/check_status', $descriptorspec, $pipes, $cwd, $env); $process = proc_open(__DIR__ . '/../bin/check_status', $descriptorspec, $pipes, $cwd, $env);
if (is_resource($process)) { if (is_resource($process)) {
// $pipes now looks like this: // $pipes now looks like this:
// 0 => writeable handle connected to child stdin // 0 => writeable handle connected to child stdin
// 1 => readable handle connected to child stdout // 1 => readable handle connected to child stdout
// Any error output will be appended to /tmp/error-output.txt // Any error output will be appended to /tmp/error-output.txt
fwrite($pipes[0], json_encode($check_arr)); fwrite($pipes[0], json_encode($check_arr));
fclose($pipes[0]); fclose($pipes[0]);
$checked = json_decode(stream_get_contents($pipes[1])); $checked = json_decode(stream_get_contents($pipes[1]));
fclose($pipes[1]); fclose($pipes[1]);
// It is important that you close any pipes before calling // It is important that you close any pipes before calling
// proc_close in order to avoid a deadlock // proc_close in order to avoid a deadlock
$return_value = proc_close($process); $return_value = proc_close($process);
Toolbox::logInFile("remotsupport","command returned $return_value\n"); Toolbox::logInFile("remotsupport", "command returned $return_value\n");
} }
$stids = self::getStatesIds(); $stids = self::getStatesIds();
$DB->update("glpi_computers", [ $DB->update("glpi_computers", [
'states_id' => $stids["Offline"] ] , 'states_id' => $stids["Offline"]],
[ '1' => '1' ] ['1' => '1']
); );
foreach ($checked as $s) {
foreach ($checked as $s) { $comp = new Computer();
$comp->getFromDB($s->computers_id);
$comp->fields["states_id"] = $stids["Online"];
$DB->update("glpi_computers", [
'states_id' => $comp->fields["states_id"]],
['id' => $s->computers_id]
);
Toolbox::logInFile("remotsupport", $s->computers_id . " " . $comp->fields["contact"] . "\n");
$comp = new Computer(); }
$comp->getFromDB($s->computers_id);
$comp->fields["states_id"] = $stids["Online"];
$DB->update("glpi_computers", [
'states_id' => $comp->fields["states_id"] ],
[ 'id' => $s->computers_id ]
);
Toolbox::logInFile("remotsupport",$s->computers_id." ".$comp->fields["contact"]."\n");
} return 0;
}
return 0; public static function cronInfo($name)
} {
return [
static function cronInfo($name) {
return [
'description' => "Agent search remotesupport"]; 'description' => "Agent search remotesupport"];
} }
} }

View File

@@ -1,25 +1,25 @@
<?php <?php
/* /*
------------------------------------------------------------------------- -------------------------------------------------------------------------
Remote Spport (VNC) Remote Spport (VNC)
Copyright (C) 2021 by Alessandro Carloni Copyright (C) 2021 by Alessandro Carloni
https://github.com/Kaya84/RemoteSupport https://github.com/Kaya84/RemoteSupport
------------------------------------------------------------------------- -------------------------------------------------------------------------
LICENSE LICENSE
This file is part of Camera Input. This file is part of Camera Input.
Camera Input is free software; you can redistribute it and/or modify Camera Input is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or the Free Software Foundation; either version 2 of the License, or
(at your option) any later version. (at your option) any later version.
Camera Input is distributed in the hope that it will be useful, Camera Input is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details. GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with Camera Input. If not, see <http://www.gnu.org/licenses/>. along with Camera Input. If not, see <http://www.gnu.org/licenses/>.
-------------------------------------------------------------------------- --------------------------------------------------------------------------
*/ */
define('PLUGIN_REMOTESUPPORT_VERSION', '0.0.1'); define('PLUGIN_REMOTESUPPORT_VERSION', '0.0.1');
define('PLUGIN_REMOTESUPPORT_MIN_GLPI', '9.5.0'); define('PLUGIN_REMOTESUPPORT_MIN_GLPI', '9.5.0');
@@ -28,48 +28,38 @@ define("PLUGIN_REMOTESUPPORT_DIR", GLPI_ROOT . "/plugins/remotesupport");
function plugin_init_remotesupport() function plugin_init_remotesupport()
{ {
global $PLUGIN_HOOKS; global $PLUGIN_HOOKS;
$PLUGIN_HOOKS['csrf_compliant']['remotesupport'] = true; $PLUGIN_HOOKS['csrf_compliant']['remotesupport'] = true;
if (Plugin::isPluginActive('remotesupport')) { if (Plugin::isPluginActive('remotesupport')) {
// $PLUGIN_HOOKS['add_javascript']['remotesupport'][] = 'js/support.js'; $PLUGIN_HOOKS['autoinventory_information']['remotesupport'] = array(
'Computer' => array('PluginRemotesupportRemotesupport', 'showInfo'),
);
$PLUGIN_HOOKS['autoinventory_information']['remotesupport'] = array( CronTask::Register('PluginRemotesupportRemotesupport', 'remotesupport', 300,
'Computer' => array('PluginRemotesupportRemotesupport', 'showInfo') ['mode' => 2, 'allowmode' => 3, 'logs_lifetime' => 30,
); 'comment' => 'Remotesupport crontab search agents']);
CronTask::Register('PluginRemotesupportRemotesupport', 'remotesupport', 300, $PLUGIN_HOOKS['menu']['remotesupport'] = true;
['mode'=>2, 'allowmode'=>3, 'logs_lifetime'=>30, $PLUGIN_HOOKS['post_init']['remotesupport'] = 'plugin_remotesupport_postinit';
'comment'=> 'Remotesupport crontab search agents']);
}
// Add Config Page
// Plugin::registerClass('PluginRemotesupportConfig', ['addtabon' => 'Config']);
// $PLUGIN_HOOKS["menu_toadd"]['remotesupport'] = ['tools' => 'PluginRemotesupportMenu'];
// $PLUGIN_HOOKS['config_page']['remotesupport'] = 'front/index.php';
$PLUGIN_HOOKS['menu']['remotesupport'] = true;
$PLUGIN_HOOKS['post_init']['remotesupport'] = 'plugin_remotesupport_postinit';
}
} }
function plugin_version_remotesupport() function plugin_version_remotesupport()
{ {
return [ return [
'name' => __('Remote Support Input', 'remotesupport'), 'name' => __('Remote Support Input', 'remotesupport'),
'version' => PLUGIN_REMOTESUPPORT_VERSION, 'version' => PLUGIN_REMOTESUPPORT_VERSION,
'author' => 'Alessandro Carloni', 'author' => 'Alessandro Carloni',
'license' => 'GPLv2', 'license' => 'GPLv2',
'homepage' =>'https://github.com/Kaya84/', 'homepage' => 'https://github.com/Kaya84/',
'requirements' => [ 'requirements' => [
'glpi' => [ 'glpi' => [
'min' => PLUGIN_REMOTESUPPORT_MIN_GLPI, 'min' => PLUGIN_REMOTESUPPORT_MIN_GLPI,
'max' => PLUGIN_REMOTESUPPORT_MAX_GLPI 'max' => PLUGIN_REMOTESUPPORT_MAX_GLPI,
] ],
] ],
]; ];
} }