upd: ready to write the engine

This commit is contained in:
2023-12-13 09:18:05 +00:00
parent 4c9a951959
commit d117759d38
3 changed files with 47 additions and 17 deletions

View File

@ -15,6 +15,11 @@ class UserDataBase {
UserDataBase() = default;
void Open(std::string file_name);
bool PAM(const std::string &user_id, const std::string &password);
int GetPrevilege(const std::string &user_id);
void AddUser(const std::string &user_id, const std::string &password,
const std::string &user_name, int privilege);
void DeleteUser(const std::string &user_id);
void ChangePassword(const std::string &user_id, const std::string &password);
};
class BookDataBase {
DriveArray<BookItemClass> full_book_data;
@ -22,6 +27,12 @@ class BookDataBase {
public:
void Open(std::string file_name);
void QueryBook(const std::string &ISBN, const std::string &name,
const std::string &author, const std::string &keyword,
std::vector<BookItemClass> &ret);
void ModifyInfo(const std::string &ISBN, const std::string &name,
const std::string &author, const std::string &keyword,
double price);
};
class LogDataBase {
DriveArray<FinanceItemClass> finance_data;
@ -29,6 +40,7 @@ class LogDataBase {
public:
void Open(std::string file_name);
void QueryFinance(int count, std::vector<FinanceItemClass> &ret);
};
#endif // PROTECTOR_DATABASE_HPP

View File

@ -16,7 +16,8 @@ BookStoreEngineClass::BookStoreEngineClass(std::string __config_dir,
is_server = __is_server;
}
std::vector<std::string> BookStoreEngineClass::Execute(
const std::string &cmd, std::stack<std::pair<std::string, std::string>> &login_stack) {
const std::string &cmd,
std::stack<std::pair<std::string, std::string>> &login_stack) {
for (int i = 0; i < cmd.length(); i++)
if (std::isspace(cmd[i]) && cmd[i] != ' ')
return std::vector<std::string>({"Invalid"});
@ -87,11 +88,9 @@ std::vector<std::string> BookStoreEngineClass::Execute(
return ExecuteBuy(cmd, login_stack);
}
case OperationType::__Kreport: {
// throw FatalError("report Not implemented", 2);
return ExecuteReport(cmd, login_stack);
}
case OperationType::__Klog: {
// throw FatalError("log Not implemented", 3);
return ExecuteLog(cmd, login_stack);
}
}
@ -100,71 +99,88 @@ std::vector<std::string> BookStoreEngineClass::Execute(
}
std::vector<std::string> BookStoreEngineClass::ExecuteSu(
const std::string &cmd, std::stack<std::pair<std::string, std::string>> &login_stack) {
const std::string &cmd,
std::stack<std::pair<std::string, std::string>> &login_stack) {
std::string user_id, password;
if (!CommandSuLexer(cmd, user_id, password))
return std::vector<std::string>({"Invalid"});
return std::vector<std::string>();
}
std::vector<std::string> BookStoreEngineClass::ExecuteLogout(
const std::string &cmd, std::stack<std::pair<std::string, std::string>> &login_stack) {
const std::string &cmd,
std::stack<std::pair<std::string, std::string>> &login_stack) {
return std::vector<std::string>();
}
std::vector<std::string> BookStoreEngineClass::ExecuteRegister(
const std::string &cmd, std::stack<std::pair<std::string, std::string>> &login_stack) {
const std::string &cmd,
std::stack<std::pair<std::string, std::string>> &login_stack) {
return std::vector<std::string>();
}
std::vector<std::string> BookStoreEngineClass::ExecutePasswd(
const std::string &cmd, std::stack<std::pair<std::string, std::string>> &login_stack) {
const std::string &cmd,
std::stack<std::pair<std::string, std::string>> &login_stack) {
return std::vector<std::string>();
}
std::vector<std::string> BookStoreEngineClass::ExecuteUserAdd(
const std::string &cmd, std::stack<std::pair<std::string, std::string>> &login_stack) {
const std::string &cmd,
std::stack<std::pair<std::string, std::string>> &login_stack) {
return std::vector<std::string>();
}
std::vector<std::string> BookStoreEngineClass::ExecuteDelete(
const std::string &cmd, std::stack<std::pair<std::string, std::string>> &login_stack) {
const std::string &cmd,
std::stack<std::pair<std::string, std::string>> &login_stack) {
return std::vector<std::string>();
}
std::vector<std::string> BookStoreEngineClass::ExecuteShow(
const std::string &cmd, std::stack<std::pair<std::string, std::string>> &login_stack) {
const std::string &cmd,
std::stack<std::pair<std::string, std::string>> &login_stack) {
return std::vector<std::string>();
}
std::vector<std::string> BookStoreEngineClass::ExecuteBuy(
const std::string &cmd, std::stack<std::pair<std::string, std::string>> &login_stack) {
const std::string &cmd,
std::stack<std::pair<std::string, std::string>> &login_stack) {
return std::vector<std::string>();
}
std::vector<std::string> BookStoreEngineClass::ExecuteSelect(
const std::string &cmd, std::stack<std::pair<std::string, std::string>> &login_stack) {
const std::string &cmd,
std::stack<std::pair<std::string, std::string>> &login_stack) {
return std::vector<std::string>();
}
std::vector<std::string> BookStoreEngineClass::ExecuteMOdify(
const std::string &cmd, std::stack<std::pair<std::string, std::string>> &login_stack) {
const std::string &cmd,
std::stack<std::pair<std::string, std::string>> &login_stack) {
return std::vector<std::string>();
}
std::vector<std::string> BookStoreEngineClass::ExecuteImport(
const std::string &cmd, std::stack<std::pair<std::string, std::string>> &login_stack) {
const std::string &cmd,
std::stack<std::pair<std::string, std::string>> &login_stack) {
return std::vector<std::string>();
}
std::vector<std::string> BookStoreEngineClass::ExecuteShowFinance(
const std::string &cmd, std::stack<std::pair<std::string, std::string>> &login_stack) {
const std::string &cmd,
std::stack<std::pair<std::string, std::string>> &login_stack) {
return std::vector<std::string>();
}
std::vector<std::string> BookStoreEngineClass::ExecuteLog(
const std::string &cmd, std::stack<std::pair<std::string, std::string>> &login_stack) {
const std::string &cmd,
std::stack<std::pair<std::string, std::string>> &login_stack) {
return std::vector<std::string>();
}
std::vector<std::string> BookStoreEngineClass::ExecuteReport(
const std::string &cmd, std::stack<std::pair<std::string, std::string>> &login_stack) {
const std::string &cmd,
std::stack<std::pair<std::string, std::string>> &login_stack) {
return std::vector<std::string>();
}

View File

@ -156,6 +156,8 @@ bool CommandUseraddLexer(const std::string &command, std::string &user_id,
ss >> password;
ss >> privilege;
ss >> username;
if (privilege != 0 && privilege != 1 && privilege != 3 && privilege != 7)
return false;
return true;
} else
return false;