mirror of
https://github.com/Expand-sys/CCash
synced 2025-12-16 16:12:14 +11:00
✨ Return to Reserve Feature
This commit is contained in:
parent
bc067bafe9
commit
0b10a51a19
2 changed files with 25 additions and 3 deletions
|
|
@ -7,4 +7,8 @@ constexpr unsigned pre_log_size = 10;
|
|||
constexpr unsigned max_name_size = 50;
|
||||
|
||||
constexpr const char *users_location = "../users.json";
|
||||
constexpr const char *config_location = "../config.json";
|
||||
constexpr const char *config_location = "../config.json";
|
||||
|
||||
//returns money to an account on deletion
|
||||
constexpr bool return_on_del = false;
|
||||
constexpr const char *return_account = "";
|
||||
22
src/bank.cpp
22
src/bank.cpp
|
|
@ -43,7 +43,16 @@ int_fast8_t Bank::DelUser(const std::string &name, const std::string &attempt) n
|
|||
{
|
||||
std::shared_lock<std::shared_mutex> lock{size_l};
|
||||
bool state = false;
|
||||
if (users.erase_if(name, [&state, &attempt](User &u) { return state = (XXH3_64bits(attempt.data(), attempt.size()) == u.password); }))
|
||||
if (users.erase_if(name, [this, &name, &state, &attempt](User &u) {
|
||||
if constexpr (return_on_del)
|
||||
{
|
||||
if (SendFunds(name, return_account, u.balance, attempt) == 1)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return state = (XXH3_64bits(attempt.data(), attempt.size()) == u.password);
|
||||
}))
|
||||
{
|
||||
return (state) ? true : ErrorResponse::WrongPassword;
|
||||
}
|
||||
|
|
@ -56,7 +65,16 @@ int_fast8_t Bank::AdminDelUser(const std::string &name, const std::string &attem
|
|||
{
|
||||
std::shared_lock<std::shared_mutex> lock{size_l};
|
||||
bool state = false;
|
||||
if (users.erase_if(name, [this, &state, &attempt](const User &) { return state = (admin_pass == attempt); }))
|
||||
if (users.erase_if(name, [this, &name, &state, &attempt](const User &u) {
|
||||
if constexpr (return_on_del)
|
||||
{
|
||||
if (SendFunds(name, return_account, u.balance, attempt) == 1)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return state = (XXH3_64bits(attempt.data(), attempt.size()) == u.password);
|
||||
}))
|
||||
{
|
||||
return (state) ? true : ErrorResponse::WrongPassword;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue