diff --git a/backend/src/engine.cpp b/backend/src/engine.cpp index 2519fcf..8512d0c 100644 --- a/backend/src/engine.cpp +++ b/backend/src/engine.cpp @@ -122,11 +122,12 @@ std::vector BookStoreEngineClass::ExecuteSu( if (!CommandSuLexer(cmd, user_id, password)) return std::vector({"Invalid"}); // debugPrint("su", user_id, " ", password); + if (user_data_base.GetPrevilege(user_id) == -1) + return std::vector({"Invalid"}); if (login_stack.size() > 0 && - user_data_base.GetPrevilege(login_stack.top().first) == 7) { + user_data_base.GetPrevilege(login_stack.top().first) > + user_data_base.GetPrevilege(user_id)) { // debugPrint("has root previlege"); - if (user_data_base.GetPrevilege(user_id) == -1) - return std::vector({"Invalid"}); login_stack.push(std::make_pair(user_id, 0)); login_count[user_id]++; return std::vector();