added syslog errors

This commit is contained in:
wt committed 2024-07-03 10:49:56 +07:00
1 parent b3736a5124
commit fb961af71c
9 files changed
+65

No files matched your search

+6
View File
@@ -2,6 +2,7 @@
#include "../colors.h"
#include "../includes.hpp"
#include <jwt-cpp/jwt.h>
#include <syslog.h>
// function for authorization users
void auth(const httplib::Request &request, httplib::Response &response) {
@@ -9,16 +10,19 @@ void auth(const httplib::Request &request, httplib::Response &response) {
response.set_header("Access-Control-Allow-Origin", "*");
if (request.body.empty()) {
response.set_content(AUTH_REQUIRED_STRING, JSON_TYPE);
syslog(LOG_ERR, "no body in auth request");
return;
}
nlohmann::json json_body = nlohmann::json::parse(request.body);
if (json_body["username"] == nullptr) {
response.set_content(AUTH_REQUIRED_STRING, JSON_TYPE);
syslog(LOG_ERR, "no username in auth request");
return;
}
if (json_body["password"] == nullptr) {
response.set_content(AUTH_REQUIRED_STRING, JSON_TYPE);
syslog(LOG_ERR, "no password in auth request");
return;
}
const std::string request_username = json_body["username"];
@@ -37,6 +41,7 @@ void auth(const httplib::Request &request, httplib::Response &response) {
}
if (userid.empty()) {
response.set_content(STRING403, JSON_TYPE);
syslog(LOG_ERR, "auth request rejected");
return;
}
@@ -48,5 +53,6 @@ void auth(const httplib::Request &request, httplib::Response &response) {
std::stringstream response_json;
response_json << R"({"token":")" << token << "\"}";
syslog(LOG_INFO, "auth request success");
response.set_content(response_json.str(), JSON_TYPE);
}
+2
View File
@@ -1,6 +1,7 @@
#include "auth.hpp"
#include <jwt-cpp/jwt.h>
#include "../includes.hpp"
#include <syslog.h>
// function for verify tokens
bool verify_auth(const std::string &token) {
@@ -17,6 +18,7 @@ bool verify_auth(const std::string &token) {
return true;
} catch (const std::system_error &e) {
std::cout << "Verification error: " << e.what() << std::endl;
syslog(LOG_ERR, "token verification error");
return false;
}
catch (...) {
+5
View File
@@ -2,6 +2,7 @@
#include "../colors.h"
#include "../includes.hpp"
#include "../auth/auth.hpp"
#include <syslog.h>
// function for access or reject authorization
void user_access(const httplib::Request &request, httplib::Response &response) {
@@ -9,17 +10,21 @@ void user_access(const httplib::Request &request, httplib::Response &response) {
response.set_header("Access-Control-Allow-Origin", "*");
if (request.body.empty()) {
response.set_content(ACCESS_REQUIRED_STRING, JSON_TYPE);
syslog(LOG_ERR, "access request body is emty");
return;
}
nlohmann::json json_body = nlohmann::json::parse(request.body);
if (json_body["token"] == nullptr) {
response.set_content(ACCESS_REQUIRED_STRING, JSON_TYPE);
syslog(LOG_ERR, "no token in acces request");
return;
}
if (!verify_auth(json_body["token"])) {
response.set_content(R"({"access":"reject"})", JSON_TYPE);
syslog(LOG_ERR, "access rejected");
return;
}
response.set_content(R"({"access":"success"})", JSON_TYPE);
syslog(LOG_INFO, "access success");
}
+9
View File
@@ -24,6 +24,7 @@ void add_user(const httplib::Request &request, httplib::Response &response) {
if (request.body.empty()) {
response.set_content(ADD_USER_REQUIRED_STRING,
JSON_TYPE);
syslog(LOG_ERR, "add user request body is empty");
return;
}
nlohmann::json json_body = nlohmann::json::parse(request.body);
@@ -31,20 +32,24 @@ void add_user(const httplib::Request &request, httplib::Response &response) {
if (json_body["token"] == nullptr) {
response.set_content(ADD_USER_REQUIRED_STRING,
JSON_TYPE);
syslog(LOG_ERR, "no token in add user request");
return;
}
if (!verify_auth(json_body["token"])) {
response.set_content(STRING403, JSON_TYPE);
syslog(LOG_ERR, "access reject in add user request");
return;
}
if (json_body["username"] == nullptr) {
response.set_content(ADD_USER_REQUIRED_STRING,
JSON_TYPE);
syslog(LOG_ERR, "no username in add user request");
return;
}
if (json_body["password"] == nullptr) {
response.set_content(ADD_USER_REQUIRED_STRING,
JSON_TYPE);
syslog(LOG_ERR, "no password in add user request");
return;
}
@@ -52,6 +57,7 @@ void add_user(const httplib::Request &request, httplib::Response &response) {
std::string userid = decoded_token.get_payload_json()["userId"].to_str();
if (userid.empty()) {
response.set_content(STRING403, JSON_TYPE);
syslog(LOG_ERR, "access reject in add user request");
return;
}
@@ -67,10 +73,12 @@ void add_user(const httplib::Request &request, httplib::Response &response) {
}
if (response_user_data == nullptr) {
response.set_content(STRING403, JSON_TYPE);
syslog(LOG_ERR, "access reject in add user request");
return;
}
if (response_user_data["is_superuser"] != "1") {
response.set_content(STRING403, JSON_TYPE);
syslog(LOG_ERR, "access reject in add user request");
return;
}
@@ -80,6 +88,7 @@ void add_user(const httplib::Request &request, httplib::Response &response) {
for (nlohmann::json user: all_users) {
if ((user["username"] == username)) {
response.set_content(R"({"status":"user already exists"})", JSON_TYPE);
syslog(LOG_ERR, "user already exists in add user request");
return;
}
}
+12
View File
@@ -14,6 +14,7 @@ void change_password(const httplib::Request &request, httplib::Response &respons
CHANGE_PASSWORD_REQUIRED_STRING,
JSON_TYPE
);
syslog(LOG_ERR, "body is empty in change password request");
return;
}
nlohmann::json json_body = nlohmann::json::parse(request.body);
@@ -23,21 +24,25 @@ void change_password(const httplib::Request &request, httplib::Response &respons
CHANGE_PASSWORD_REQUIRED_STRING,
JSON_TYPE
);
syslog(LOG_ERR, "no token in change password request");
return;
}
if ((json_body["userid"] == nullptr) && (json_body["old_password"] == nullptr)) {
response.set_content(
CHANGE_PASSWORD_REQUIRED_STRING,
JSON_TYPE);
syslog(LOG_ERR, "no old password is change password request");
return;
}
if (json_body["new_password"] == nullptr) {
response.set_content(CHANGE_PASSWORD_REQUIRED_STRING,
JSON_TYPE);
syslog(LOG_ERR, "no new password in change password request");
return;
}
if (!verify_auth(json_body["token"])) {
response.set_content(STRING403, JSON_TYPE);
syslog(LOG_ERR, "access reject in change password request");
return;
}
@@ -50,6 +55,7 @@ void change_password(const httplib::Request &request, httplib::Response &respons
std::string userid = decoded_token.get_payload_json()["userId"].to_str();
if (userid.empty()) {
response.set_content(STRING403, JSON_TYPE);
syslog(LOG_ERR, "access reject in change password request");
return;
}
@@ -68,10 +74,12 @@ void change_password(const httplib::Request &request, httplib::Response &respons
}
if (response_user_data == nullptr) {
response.set_content(STRING403, JSON_TYPE);
syslog(LOG_ERR, "access reject in change password request");
return;
}
if (response_user_data["is_superuser"] != "1") {
response.set_content(STRING403, JSON_TYPE);
syslog(LOG_ERR, "access reject in change password request");
return;
}
}
@@ -93,12 +101,16 @@ void change_password(const httplib::Request &request, httplib::Response &respons
if ((all_user["id"] == changepassuserid) && (all_user["password"] == old_password)) {
all_user["password"] = new_password;
found = true;
std::stringstream syslogstring;
syslogstring << "password changed for user [" << all_user["username"] << "]";
syslog(LOG_INFO, syslogstring.str().c_str());
break;
}
}
}
if (!found) {
response.set_content(R"({"status":"can't find this user"})", JSON_TYPE);
syslog(LOG_ERR, "can't find this user in change password request");
return;
}
std::ofstream usersfilew("users.json");
+11
View File
@@ -13,6 +13,7 @@ void change_user(const httplib::Request &request, httplib::Response &response) {
response.set_content(
CHANGE_USER_REQUIRED_STRING,
JSON_TYPE);
syslog(LOG_ERR, "change user request body is empty");
return;
}
nlohmann::json json_body = nlohmann::json::parse(request.body);
@@ -22,16 +23,19 @@ void change_user(const httplib::Request &request, httplib::Response &response) {
CHANGE_USER_REQUIRED_STRING,
JSON_TYPE
);
syslog(LOG_ERR, "no token in change user request");
return;
}
if ((json_body["userid"] == nullptr) && (json_body["old_password"] == nullptr)) {
response.set_content(
CHANGE_USER_REQUIRED_STRING,
JSON_TYPE);
syslog(LOG_ERR, "no old_password in change user request");
return;
}
if (!verify_auth(json_body["token"])) {
response.set_content(STRING403, JSON_TYPE);
syslog(LOG_ERR, "access reject in change user request");
return;
}
@@ -39,6 +43,7 @@ void change_user(const httplib::Request &request, httplib::Response &response) {
std::string userid = decoded_token.get_payload_json()["userId"].to_str();
if (userid.empty()) {
response.set_content(STRING403, JSON_TYPE);
syslog(LOG_ERR, "access reject in change user request");
return;
}
@@ -57,10 +62,12 @@ void change_user(const httplib::Request &request, httplib::Response &response) {
}
if (response_user_data == nullptr) {
response.set_content(STRING403, JSON_TYPE);
syslog(LOG_ERR, "access reject in change user request");
return;
}
if (response_user_data["is_superuser"] != "1") {
response.set_content(STRING403, JSON_TYPE);
syslog(LOG_ERR, "access reject in change user request");
return;
}
}
@@ -85,12 +92,16 @@ void change_user(const httplib::Request &request, httplib::Response &response) {
if ((all_user["id"] == changeusruserid)) {
if (json_body["username"] != nullptr) { all_user["username"] = json_body["username"]; }
found = true;
std::stringstream syslogstring;
syslogstring << "userdata changed for user [" << all_user["username"] << "]";
syslog(LOG_INFO, syslogstring.str().c_str());
break;
}
}
}
if (!found) {
response.set_content(R"({"status":"can't find this user"})", JSON_TYPE);
syslog(LOG_ERR, "can't find this user in change user request");
return;
}
std::ofstream usersfilew("users.json");
+7
View File
@@ -13,6 +13,7 @@ void delete_user(const httplib::Request &request, httplib::Response &response) {
response.set_content(
DELETE_USER_REQUIRED_STRING,
JSON_TYPE);
syslog(LOG_ERR, "delete user request body is empty");
return;
}
nlohmann::json json_body = nlohmann::json::parse(request.body);
@@ -21,10 +22,12 @@ void delete_user(const httplib::Request &request, httplib::Response &response) {
response.set_content(
DELETE_USER_REQUIRED_STRING,
JSON_TYPE);
syslog(LOG_ERR, "no token in delete user request");
return;
}
if (!verify_auth(json_body["token"])) {
response.set_content(STRING403, JSON_TYPE);
syslog(LOG_ERR, "access reject in delete user request");
return;
}
@@ -32,6 +35,7 @@ void delete_user(const httplib::Request &request, httplib::Response &response) {
std::string userid = decoded_token.get_payload_json()["userId"].to_str();
if (userid.empty()) {
response.set_content(STRING403, JSON_TYPE);
syslog(LOG_ERR, "access reject in delete user request");
return;
}
@@ -50,10 +54,12 @@ void delete_user(const httplib::Request &request, httplib::Response &response) {
}
if (response_user_data == nullptr) {
response.set_content(STRING403, JSON_TYPE);
syslog(LOG_ERR, "access reject in delete user request");
return;
}
if (response_user_data["is_superuser"] != "1") {
response.set_content(STRING403, JSON_TYPE);
syslog(LOG_ERR, "access reject in delete user request");
return;
}
}
@@ -71,6 +77,7 @@ void delete_user(const httplib::Request &request, httplib::Response &response) {
}
if (!found) {
response.set_content(R"({"status":"can't find this user"})", JSON_TYPE);
syslog(LOG_ERR, "can't find this user in delete user request");
return;
}
std::ofstream usersfilew("users.json");
+7
View File
@@ -3,6 +3,7 @@
#include "../includes.hpp"
#include "../auth/auth.hpp"
#include <jwt-cpp/jwt.h>
#include <syslog.h>
// function for get all users data without password
void get_all_users(const httplib::Request &request, httplib::Response &response) {
@@ -10,22 +11,26 @@ void get_all_users(const httplib::Request &request, httplib::Response &response)
response.set_header("Access-Control-Allow-Origin", "*");
if (request.body.empty()) {
response.set_content(ACCESS_REQUIRED_STRING, JSON_TYPE);
syslog(LOG_ERR, "get all users request body is empty");
return;
}
nlohmann::json json_body = nlohmann::json::parse(request.body);
if (json_body["token"] == nullptr) {
response.set_content(ACCESS_REQUIRED_STRING, JSON_TYPE);
syslog(LOG_ERR, "no token in get all users");
return;
}
if (!verify_auth(json_body["token"])) {
response.set_content(STRING403, JSON_TYPE);
syslog(LOG_ERR, "access reject in get all user request");
return;
}
jwt::decoded_jwt<jwt::traits::kazuho_picojson> decoded_token = jwt::decode(json_body["token"]);
std::string userid = decoded_token.get_payload_json()["userId"].to_str();
if (userid.empty()) {
response.set_content(STRING403, JSON_TYPE);
syslog(LOG_ERR, "access reject in get all user request");
return;
}
std::ifstream usersfile("users.json");
@@ -40,10 +45,12 @@ void get_all_users(const httplib::Request &request, httplib::Response &response)
}
if (response_user_data == nullptr) {
response.set_content(STRING403, JSON_TYPE);
syslog(LOG_ERR, "access reject in get all user request");
return;
}
if (response_user_data["is_superuser"] != "1") {
response.set_content(STRING403, JSON_TYPE);
syslog(LOG_ERR, "access reject in get all user request");
return;
}
response.set_content(all_users.dump(), JSON_TYPE);
+6
View File
@@ -3,6 +3,7 @@
#include "../includes.hpp"
#include "../auth/auth.hpp"
#include <jwt-cpp/jwt.h>
#include <syslog.h>
// function for get user data without password
void get_user(const httplib::Request &request, httplib::Response &response) {
@@ -10,22 +11,26 @@ void get_user(const httplib::Request &request, httplib::Response &response) {
response.set_header("Access-Control-Allow-Origin", "*");
if (request.body.empty()) {
response.set_content(ACCESS_REQUIRED_STRING, JSON_TYPE);
syslog(LOG_ERR, "get user request body is empty");
return;
}
nlohmann::json json_body = nlohmann::json::parse(request.body);
if (json_body["token"] == nullptr) {
response.set_content(ACCESS_REQUIRED_STRING, JSON_TYPE);
syslog(LOG_ERR, "no token in get user request");
return;
}
if (!verify_auth(json_body["token"])) {
response.set_content(STRING403, JSON_TYPE);
syslog(LOG_ERR, "access reject in get user request");
return;
}
jwt::decoded_jwt<jwt::traits::kazuho_picojson> decoded_token = jwt::decode(json_body["token"]);
std::string userid = decoded_token.get_payload_json()["userId"].to_str();
if (userid.empty()) {
response.set_content(STRING403, JSON_TYPE);
syslog(LOG_ERR, "access reject in get user request");
return;
}
std::ifstream usersfile("users.json");
@@ -40,6 +45,7 @@ void get_user(const httplib::Request &request, httplib::Response &response) {
}
if (response_user_data == nullptr) {
response.set_content(STRING403, JSON_TYPE);
syslog(LOG_ERR, "access reject in get user request");
return;
}
response_user_data.erase("password");