From b5e66e3aa9c468660cb4f3d6ab0e224c97d23723 Mon Sep 17 00:00:00 2001 From: Niklas Halle Date: Fri, 28 Aug 2020 21:00:23 +0200 Subject: add (rudimentary, non session based) pin veryfication for stop command --- src/SimpleHandlers.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'src/SimpleHandlers.cpp') 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 + 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 annotations; -- cgit v1.2.3-54-g00ecf