You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
128 lines
5.2 KiB
128 lines
5.2 KiB
#include "usrcmd_impl.hpp"
|
|
using namespace iflytop;
|
|
|
|
void UserCmdImpl::login(json& cmd, json& receipt) {
|
|
string uid = cmd["userid"];
|
|
|
|
string pwd = cmd["passwd"];
|
|
if (uid == "admin" && pwd == "iflytop9973") {
|
|
m_deviceStateService->setLoginState("admin", 0, 1);
|
|
logger->info("user {} login success", "admin");
|
|
} else {
|
|
if (!m_dbService->isUserExist(uid)) {
|
|
receipt["ackcode"] = err::zecode(err::kuser_not_exist);
|
|
receipt["ackcodeInfo"] = err::zecode2str(err::kuser_not_exist);
|
|
return;
|
|
}
|
|
if (!m_dbService->ispasswdCorrect(uid, pwd)) {
|
|
receipt["ackcode"] = err::zecode(err::kpasswd_error);
|
|
receipt["ackcodeInfo"] = err::zecode2str(err::kpasswd_error);
|
|
return;
|
|
}
|
|
m_deviceStateService->setLoginState(uid, m_dbService->getUser(uid)->permission_level, m_dbService->getUser(uid)->visible);
|
|
m_dbService->addUserBehaviorRecord(uid, kbehavior_login, "");
|
|
logger->info("user {} login success", uid);
|
|
}
|
|
|
|
return;
|
|
}
|
|
void UserCmdImpl::unlogin(json& cmd, json& receipt) {
|
|
string loginuid = m_deviceStateService->getLoginUid();
|
|
m_deviceStateService->unlogin();
|
|
logger->info("user unlogin success");
|
|
m_dbService->addUserBehaviorRecord(loginuid, kbehavior_logout, "");
|
|
return;
|
|
}
|
|
void UserCmdImpl::chpasswd(json& cmd, json& receipt) {
|
|
string uid = cmd["userId"];
|
|
string newpasswd = cmd["newpasswd"];
|
|
string passwd = cmd["passwd"];
|
|
logger->info("changet passwd {} {}", uid, passwd);
|
|
if (!m_dbService->isUserExist(uid)) {
|
|
receipt["ackcode"] = err::zecode(err::kuser_not_exist);
|
|
receipt["ackcodeInfo"] = err::zecode2str(err::kuser_not_exist);
|
|
return;
|
|
}
|
|
if (!m_dbService->ispasswdCorrect(uid, passwd)) {
|
|
receipt["ackcode"] = err::zecode(err::kpasswd_error);
|
|
receipt["ackcodeInfo"] = err::zecode2str(err::kpasswd_error);
|
|
return;
|
|
}
|
|
auto user = m_dbService->changePasswd(uid, newpasswd);
|
|
// kbehavior_update_user_passwd
|
|
m_dbService->addUserBehaviorRecord(m_deviceStateService->getLoginUid(), kbehavior_update_user_passwd, fmt::format("({})", uid));
|
|
|
|
return;
|
|
}
|
|
void UserCmdImpl::addUser(json& cmd, json& receipt) {
|
|
string uid = cmd["uid"];
|
|
string passwd = cmd["passwd"];
|
|
int permission_level = jsonGet<int>(cmd["permission_level"]);
|
|
m_dbService->addUser(uid, passwd, permission_level);
|
|
m_dbService->addUserBehaviorRecord(m_deviceStateService->getLoginUid(), kbehavior_add_user, fmt::format("({})", uid));
|
|
return;
|
|
}
|
|
void UserCmdImpl::delUser(json& cmd, json& receipt) {
|
|
int id = jsonGet<int>(cmd["id"]);
|
|
auto user = m_dbService->delUser(id);
|
|
if (!user) {
|
|
receipt["ackcode"] = err::zecode(err::kuser_not_exist);
|
|
receipt["ackcodeInfo"] = err::zecode2str(err::kuser_not_exist);
|
|
return;
|
|
}
|
|
m_dbService->addUserBehaviorRecord(m_deviceStateService->getLoginUid(), kbehavior_del_user, fmt::format("({})", user->uid));
|
|
return;
|
|
}
|
|
void UserCmdImpl::updateUserPermissionLevel(json& cmd, json& receipt) {
|
|
int id = jsonGet<int>(cmd["id"]);
|
|
int permission_level = jsonGet<int>(cmd["permission_level"]);
|
|
auto user = m_dbService->updateUserPermissionLevel(id, permission_level);
|
|
if (!user) {
|
|
receipt["ackcode"] = err::zecode(err::kuser_not_exist);
|
|
receipt["ackcodeInfo"] = err::zecode2str(err::kuser_not_exist);
|
|
return;
|
|
}
|
|
m_dbService->addUserBehaviorRecord(m_deviceStateService->getLoginUid(), kbehavior_update_user_permission_level,
|
|
fmt::format("({},{})", user->uid, permission_level));
|
|
return;
|
|
}
|
|
void UserCmdImpl::updateUserUid(json& cmd, json& receipt) {
|
|
int id = jsonGet<int>(cmd["id"]);
|
|
string uid = cmd["uid"];
|
|
string olduid;
|
|
auto user = m_dbService->updateUserUid(id, uid, olduid);
|
|
if (!user) {
|
|
receipt["ackcode"] = err::zecode(err::kuser_not_exist);
|
|
receipt["ackcodeInfo"] = err::zecode2str(err::kuser_not_exist);
|
|
return;
|
|
}
|
|
m_dbService->addUserBehaviorRecord(m_deviceStateService->getLoginUid(), kbehavior_update_user_uid, fmt::format("({}->{})", olduid, uid));
|
|
}
|
|
void UserCmdImpl::getAllUser(json& cmd, json& receipt) {
|
|
auto users = m_dbService->getAllUserJson();
|
|
receipt["dbval"] = users;
|
|
return;
|
|
}
|
|
|
|
void UserCmdImpl::initialize() {
|
|
GET_TO_SERVICE(m_msgProcesser);
|
|
GET_TO_SERVICE(m_zconfig);
|
|
GET_TO_SERVICE(m_iflytopwsService);
|
|
GET_TO_SERVICE(m_dbService);
|
|
GET_TO_SERVICE(m_deviceStateService);
|
|
GET_TO_SERVICE(m_disinfectionCtrlService);
|
|
GET_TO_SERVICE(m_deviceIoControlService);
|
|
GET_TO_SERVICE(m_disinfectionLogsManager);
|
|
GET_TO_SERVICE(m_zcanhost);
|
|
GET_TO_SERVICE(m_dataExportService);
|
|
GET_TO_SERVICE(m_frontMsgProcesser);
|
|
|
|
m_msgProcesser->registerMsgProcesser("login", BIND(UserCmdImpl::login));
|
|
m_msgProcesser->registerMsgProcesser("unlogin", BIND(UserCmdImpl::unlogin));
|
|
m_msgProcesser->registerMsgProcesser("chpasswd", BIND(UserCmdImpl::chpasswd));
|
|
m_msgProcesser->registerMsgProcesser("addUser", BIND(UserCmdImpl::addUser));
|
|
m_msgProcesser->registerMsgProcesser("delUser", BIND(UserCmdImpl::delUser));
|
|
m_msgProcesser->registerMsgProcesser("updateUserPermissionLevel", BIND(UserCmdImpl::updateUserPermissionLevel));
|
|
m_msgProcesser->registerMsgProcesser("updateUserUid", BIND(UserCmdImpl::updateUserUid));
|
|
m_msgProcesser->registerMsgProcesser("getAllUser", BIND(UserCmdImpl::getAllUser));
|
|
}
|