summaryrefslogtreecommitdiffstats
path: root/modules-available/rebootcontrol/api.inc.php
diff options
context:
space:
mode:
Diffstat (limited to 'modules-available/rebootcontrol/api.inc.php')
-rw-r--r--modules-available/rebootcontrol/api.inc.php36
1 files changed, 36 insertions, 0 deletions
diff --git a/modules-available/rebootcontrol/api.inc.php b/modules-available/rebootcontrol/api.inc.php
new file mode 100644
index 00000000..77687f8e
--- /dev/null
+++ b/modules-available/rebootcontrol/api.inc.php
@@ -0,0 +1,36 @@
+<?php
+/*
+ Needed POST-Parameters:
+ 'token' -- for authentification
+ 'action' -- which action should be performed (shutdown or reboot)
+ 'clients' -- which are to reboot/shutdown (json encoded array!)
+ 'timer' -- (optional) when to perform action in minutes (default value is 0)
+*/
+
+$ips = json_decode(Request::post('clients'));
+$minutes = Request::post('timer', 0, 'int');
+
+$clients = array();
+foreach ($ips as $client) {
+ $clients[] = array("ip" => $client);
+}
+
+if (Request::post('token') == Property::get("rebootcontrol_APIPOSTKEY")) {
+ if (Request::isPost()) {
+ if (Request::post('action') == 'shutdown') {
+ $shutdown = true;
+ $task = Taskmanager::submit("RemoteReboot", array("clients" => $clients, "shutdown" => $shutdown, "minutes" => $minutes));
+ echo $task["id"];
+ } else if (Request::post('action') == 'reboot') {
+ $shutdown = false;
+ $task = Taskmanager::submit("RemoteReboot", array("clients" => $clients, "shutdown" => $shutdown, "minutes" => $minutes));
+ echo $task["id"];
+ } else {
+ echo "Only action=shutdown and action=reboot available.";
+ }
+ } else {
+ echo "Only POST Method available.";
+ }
+} else {
+ echo "Not authorized";
+} \ No newline at end of file