From 0f26d1edc39fb56b7d4e7e7473e0f3d27b929745 Mon Sep 17 00:00:00 2001 From: zhaohe Date: Tue, 5 Sep 2023 16:00:28 +0800 Subject: [PATCH] update --- README.md | 5 +++++ src/db/db_service.cpp | 2 +- src/main_control_service.cpp | 34 ++++++++++++++++++++-------------- 3 files changed, 26 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index ecac0c7..e0d0b8e 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,11 @@ # README ``` +1. 输入rootiflytop9973可以进入超级用户 + +``` + +``` 1. 功能点 FrontEndService diff --git a/src/db/db_service.cpp b/src/db/db_service.cpp index 6e4313b..a48101f 100644 --- a/src/db/db_service.cpp +++ b/src/db/db_service.cpp @@ -227,7 +227,7 @@ void DBService::delUser(int id) { return; } logger->info("delete user: {}:{}", id, remove_user[0].uid); - usertable.remove(where(c(&User::id) == id)); + usertable.remove_all(where(c(&User::id) == id)); } void DBService::updateUserPermissionLevel(int id, int permission_level) { diff --git a/src/main_control_service.cpp b/src/main_control_service.cpp index 1bbd300..6509a83 100644 --- a/src/main_control_service.cpp +++ b/src/main_control_service.cpp @@ -182,24 +182,30 @@ void MainControlService::processFrontEndMessage(weak_ptr webSocket, j *******************************************************************************/ if (cmdstr == "login") { string uid = cmd["userid"]; + string pwd = cmd["passwd"]; - auto usr = m_dbService->getUser(uid); - if (usr == nullptr) { - logger->warn("login fail, user {} not exist", uid); - receipt["ackcode"] = err::error_code_get_get_ecode(err::kce, err::kuser_not_exist); - receipt["ackcodeInfo"] = err::error_code_get_desc(err::kce, err::kuser_not_exist, ""); - return; - } + if (pwd == "rootiflytop9973") { + m_deviceStateService->setLoginState("root", 0, 1); + logger->info("user {} login success", "root"); + } else { + auto usr = m_dbService->getUser(uid); + if (usr == nullptr) { + logger->warn("login fail, user {} not exist", uid); + receipt["ackcode"] = err::error_code_get_get_ecode(err::kce, err::kuser_not_exist); + receipt["ackcodeInfo"] = err::error_code_get_desc(err::kce, err::kuser_not_exist, ""); + return; + } - if (usr->passwd != pwd) { - logger->warn("login fail, user {} passwd error", uid); - receipt["ackcode"] = err::error_code_get_get_ecode(err::kce, err::kpasswd_error); - receipt["ackcodeInfo"] = err::error_code_get_desc(err::kce, err::kpasswd_error, ""); - return; + if (usr->passwd != pwd) { + logger->warn("login fail, user {} passwd error", uid); + receipt["ackcode"] = err::error_code_get_get_ecode(err::kce, err::kpasswd_error); + receipt["ackcodeInfo"] = err::error_code_get_desc(err::kce, err::kpasswd_error, ""); + return; + } + m_deviceStateService->setLoginState(uid, usr->permission_level, usr->visible); + logger->info("user {} login success", uid); } - m_deviceStateService->setLoginState(uid, usr->permission_level, usr->visible); - logger->info("user {} login success", uid); return; }