diff options
author | Niklas Halle <niklas@niklashalle.net> | 2020-08-28 21:00:23 +0200 |
---|---|---|
committer | Niklas Halle <niklas@niklashalle.net> | 2020-08-28 21:00:23 +0200 |
commit | b5e66e3aa9c468660cb4f3d6ab0e224c97d23723 (patch) | |
tree | 33a1f3adea52a2abd7404ff9c35c4803599b4ac8 /src/SimpleHandlers.cpp | |
parent | 7a03c9340b6b53c2505c7cd26fa3aede0cf14603 (diff) | |
download | n_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.cpp | 13 |
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; |