aboutsummaryrefslogtreecommitdiffstats
path: root/src/SimpleHandlers.cpp
diff options
context:
space:
mode:
authorNiklas Halle <niklas@niklashalle.net>2020-08-28 21:00:23 +0200
committerNiklas Halle <niklas@niklashalle.net>2020-08-28 21:00:23 +0200
commitb5e66e3aa9c468660cb4f3d6ab0e224c97d23723 (patch)
tree33a1f3adea52a2abd7404ff9c35c4803599b4ac8 /src/SimpleHandlers.cpp
parent7a03c9340b6b53c2505c7cd26fa3aede0cf14603 (diff)
downloadn_core-b5e66e3aa9c468660cb4f3d6ab0e224c97d23723.tar.gz
n_core-b5e66e3aa9c468660cb4f3d6ab0e224c97d23723.zip
add (rudimentary, non session based) pin veryfication for stop command
Diffstat (limited to 'src/SimpleHandlers.cpp')
-rw-r--r--src/SimpleHandlers.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/SimpleHandlers.cpp b/src/SimpleHandlers.cpp
index e4ce4ac..408aeeb 100644
--- a/src/SimpleHandlers.cpp
+++ b/src/SimpleHandlers.cpp
@@ -1,6 +1,9 @@
#include "SimpleHandlers.hpp"
+
#include "Response.hpp"
+#include <fstream>
+
using namespace Response;
Handler::json Handler::klingerHandler(std::string const &arguments, std::string const &session, void *payload) {
@@ -55,6 +58,16 @@ Handler::json Handler::helpHandler(std::string const &arguments, std::string con
Handler::json Handler::stopHandler(std::string const &arguments, std::string const &session, void *payload) {
auto app = (crow::SimpleApp *) payload;
+
+ auto args = tokenizeArguments(arguments);
+
+ int admin_pin;
+ std::ifstream infile("/root/.n_admin_pin");
+
+ if (args.empty() || !(infile >> admin_pin) || admin_pin != std::stoi(args.at(0))) {
+ return simple_response("Needs PIN!", session, true);
+ }
+
app->stop();
std::vector<json> annotations;