diff --git a/src/server/WebBackend.cpp b/src/server/WebBackend.cpp index 0b71c5e..b8302f2 100644 --- a/src/server/WebBackend.cpp +++ b/src/server/WebBackend.cpp @@ -23,6 +23,7 @@ #include "library/sysadm-users.h" #include "library/sysadm-servicemanager.h" #include "library/sysadm-firewall.h" +#include "library/sysadm-moused.h" #define DEBUG 0 //#define SCLISTDELIM QString("::::") //SysCache List Delimiter @@ -82,7 +83,7 @@ RestOutputStruct::ExitCode WebSocket::AvailableSubsystems(bool allaccess, QJsonO // - Generic system information out->insert("sysadm/systemmanager","read/write"); - // - PC-BSD Updater + // - PC-BSD/TrueOS Updater if(QFile::exists("/usr/local/bin/pc-updatemanager")){ out->insert("sysadm/update", "read/write"); } @@ -94,6 +95,11 @@ RestOutputStruct::ExitCode WebSocket::AvailableSubsystems(bool allaccess, QJsonO // - Firewall Manager out->insert("sysadm/firewall","read/write"); + // - moused + if(QFile::exists("/usr/sbin/moused")){ + out->insert("sysadm/moused", "read/write"); + } + return RestOutputStruct::OK; } @@ -149,6 +155,8 @@ RestOutputStruct::ExitCode WebSocket::EvaluateBackendRequest(const RestInputStru return EvaluateSysadmServiceRequest(IN.args, out); }else if(namesp=="sysadm" && name=="firewall"){ return EvaluateSysadmFirewallRequest(IN.args, out); + }else if(namesp=="sysadm" && name=="moused"){ + return EvaluateSysadmMousedRequest(IN.args, out); }else{ return RestOutputStruct::BADREQUEST; } @@ -1211,3 +1219,26 @@ RestOutputStruct::ExitCode WebSocket::EvaluateSysadmFirewallRequest(const QJsonV } return (ok ? RestOutputStruct::OK : RestOutputStruct::BADREQUEST); } + +RestOutputStruct::ExitCode WebSocket::EvaluateSysadmMousedRequest(const QJsonValue in_args, QJsonObject *out){ + QString action = in_args.toObject().value("action").toString(); + QJsonObject outobj; + if(action == "list_devices"){ + outobj = sysadm::moused::listDevices(); + }else if(action == "list_device_options"){ + + }else if(action == "read_device_options"){ + + }else if(action == "set_device_options"){ + + } + + //check return structure for validity + if(!outobj.keys().isEmpty()){ + out->insert(action, outobj); + return RestOutputStruct::OK; + }else{ + return RestOutputStruct::BADREQUEST; + } + +} diff --git a/src/server/WebSocket.h b/src/server/WebSocket.h index 53a4750..c39e29a 100644 --- a/src/server/WebSocket.h +++ b/src/server/WebSocket.h @@ -96,6 +96,8 @@ private: RestOutputStruct::ExitCode EvaluateSysadmServiceRequest(const QJsonValue in_args, QJsonObject *out); // -- sysadm Firewall Manager API RestOutputStruct::ExitCode EvaluateSysadmFirewallRequest(const QJsonValue in_args, QJsonObject *out); + // -- sysadm moused API + RestOutputStruct::ExitCode EvaluateSysadmMousedRequest(const QJsonValue in_args, QJsonObject *out); private slots: void sendReply(QString msg); diff --git a/src/server/library/library.pri b/src/server/library/library.pri index 10cba3f..63c1ac5 100644 --- a/src/server/library/library.pri +++ b/src/server/library/library.pri @@ -15,7 +15,8 @@ HEADERS += $${PWD}/sysadm-global.h \ $${PWD}/sysadm-update.h \ $${PWD}/sysadm-users.h \ $${PWD}/sysadm-zfs.h \ - $${PWD}/sysadm-pkg.h + $${PWD}/sysadm-pkg.h \ + $${PWD}/sysadm-moused.h SOURCES += $${PWD}/NetDevice.cpp \ $${PWD}/sysadm-general.cpp \ @@ -31,4 +32,5 @@ SOURCES += $${PWD}/NetDevice.cpp \ $${PWD}/sysadm-update.cpp \ $${PWD}/sysadm-users.cpp \ $${PWD}/sysadm-zfs.cpp \ - $${PWD}/sysadm-pkg.cpp + $${PWD}/sysadm-pkg.cpp \ + $${PWD}/sysadm-moused.cpp