upd: ready to write the engine
This commit is contained in:
@ -15,6 +15,11 @@ class UserDataBase {
|
|||||||
UserDataBase() = default;
|
UserDataBase() = default;
|
||||||
void Open(std::string file_name);
|
void Open(std::string file_name);
|
||||||
bool PAM(const std::string &user_id, const std::string &password);
|
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 {
|
class BookDataBase {
|
||||||
DriveArray<BookItemClass> full_book_data;
|
DriveArray<BookItemClass> full_book_data;
|
||||||
@ -22,6 +27,12 @@ class BookDataBase {
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
void Open(std::string file_name);
|
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 {
|
class LogDataBase {
|
||||||
DriveArray<FinanceItemClass> finance_data;
|
DriveArray<FinanceItemClass> finance_data;
|
||||||
@ -29,6 +40,7 @@ class LogDataBase {
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
void Open(std::string file_name);
|
void Open(std::string file_name);
|
||||||
|
void QueryFinance(int count, std::vector<FinanceItemClass> &ret);
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // PROTECTOR_DATABASE_HPP
|
#endif // PROTECTOR_DATABASE_HPP
|
@ -16,7 +16,8 @@ BookStoreEngineClass::BookStoreEngineClass(std::string __config_dir,
|
|||||||
is_server = __is_server;
|
is_server = __is_server;
|
||||||
}
|
}
|
||||||
std::vector<std::string> BookStoreEngineClass::Execute(
|
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++)
|
for (int i = 0; i < cmd.length(); i++)
|
||||||
if (std::isspace(cmd[i]) && cmd[i] != ' ')
|
if (std::isspace(cmd[i]) && cmd[i] != ' ')
|
||||||
return std::vector<std::string>({"Invalid"});
|
return std::vector<std::string>({"Invalid"});
|
||||||
@ -87,11 +88,9 @@ std::vector<std::string> BookStoreEngineClass::Execute(
|
|||||||
return ExecuteBuy(cmd, login_stack);
|
return ExecuteBuy(cmd, login_stack);
|
||||||
}
|
}
|
||||||
case OperationType::__Kreport: {
|
case OperationType::__Kreport: {
|
||||||
// throw FatalError("report Not implemented", 2);
|
|
||||||
return ExecuteReport(cmd, login_stack);
|
return ExecuteReport(cmd, login_stack);
|
||||||
}
|
}
|
||||||
case OperationType::__Klog: {
|
case OperationType::__Klog: {
|
||||||
// throw FatalError("log Not implemented", 3);
|
|
||||||
return ExecuteLog(cmd, login_stack);
|
return ExecuteLog(cmd, login_stack);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -100,71 +99,88 @@ std::vector<std::string> BookStoreEngineClass::Execute(
|
|||||||
}
|
}
|
||||||
|
|
||||||
std::vector<std::string> BookStoreEngineClass::ExecuteSu(
|
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>();
|
return std::vector<std::string>();
|
||||||
}
|
}
|
||||||
|
|
||||||
std::vector<std::string> BookStoreEngineClass::ExecuteLogout(
|
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>();
|
return std::vector<std::string>();
|
||||||
}
|
}
|
||||||
|
|
||||||
std::vector<std::string> BookStoreEngineClass::ExecuteRegister(
|
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>();
|
return std::vector<std::string>();
|
||||||
}
|
}
|
||||||
|
|
||||||
std::vector<std::string> BookStoreEngineClass::ExecutePasswd(
|
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>();
|
return std::vector<std::string>();
|
||||||
}
|
}
|
||||||
|
|
||||||
std::vector<std::string> BookStoreEngineClass::ExecuteUserAdd(
|
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>();
|
return std::vector<std::string>();
|
||||||
}
|
}
|
||||||
|
|
||||||
std::vector<std::string> BookStoreEngineClass::ExecuteDelete(
|
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>();
|
return std::vector<std::string>();
|
||||||
}
|
}
|
||||||
|
|
||||||
std::vector<std::string> BookStoreEngineClass::ExecuteShow(
|
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>();
|
return std::vector<std::string>();
|
||||||
}
|
}
|
||||||
|
|
||||||
std::vector<std::string> BookStoreEngineClass::ExecuteBuy(
|
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>();
|
return std::vector<std::string>();
|
||||||
}
|
}
|
||||||
|
|
||||||
std::vector<std::string> BookStoreEngineClass::ExecuteSelect(
|
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>();
|
return std::vector<std::string>();
|
||||||
}
|
}
|
||||||
|
|
||||||
std::vector<std::string> BookStoreEngineClass::ExecuteMOdify(
|
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>();
|
return std::vector<std::string>();
|
||||||
}
|
}
|
||||||
|
|
||||||
std::vector<std::string> BookStoreEngineClass::ExecuteImport(
|
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>();
|
return std::vector<std::string>();
|
||||||
}
|
}
|
||||||
|
|
||||||
std::vector<std::string> BookStoreEngineClass::ExecuteShowFinance(
|
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>();
|
return std::vector<std::string>();
|
||||||
}
|
}
|
||||||
|
|
||||||
std::vector<std::string> BookStoreEngineClass::ExecuteLog(
|
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>();
|
return std::vector<std::string>();
|
||||||
}
|
}
|
||||||
|
|
||||||
std::vector<std::string> BookStoreEngineClass::ExecuteReport(
|
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>();
|
return std::vector<std::string>();
|
||||||
}
|
}
|
@ -156,6 +156,8 @@ bool CommandUseraddLexer(const std::string &command, std::string &user_id,
|
|||||||
ss >> password;
|
ss >> password;
|
||||||
ss >> privilege;
|
ss >> privilege;
|
||||||
ss >> username;
|
ss >> username;
|
||||||
|
if (privilege != 0 && privilege != 1 && privilege != 3 && privilege != 7)
|
||||||
|
return false;
|
||||||
return true;
|
return true;
|
||||||
} else
|
} else
|
||||||
return false;
|
return false;
|
||||||
|
Reference in New Issue
Block a user