diff --git a/servatrice/src/servatrice.cpp b/servatrice/src/servatrice.cpp index c4590f5b..c7abc432 100644 --- a/servatrice/src/servatrice.cpp +++ b/servatrice/src/servatrice.cpp @@ -141,9 +141,11 @@ bool Servatrice::initServer() const QString authenticationMethodStr = settingsCache->value("authentication/method").toString(); if (authenticationMethodStr == "sql") { authenticationMethod = AuthenticationSql; + } else if(authenticationMethodStr == "password") { + authenticationMethod = AuthenticationPassword; } else { if (regServerOnly) { - qDebug() << "Registration only server enabled but no DB Connection : Error."; + qDebug() << "Registration only server enabled but no authentication method defined: Error."; return false; } authenticationMethod = AuthenticationNone; diff --git a/servatrice/src/servatrice.h b/servatrice/src/servatrice.h index 86c36a5c..86da6dc5 100644 --- a/servatrice/src/servatrice.h +++ b/servatrice/src/servatrice.h @@ -88,7 +88,7 @@ class Servatrice : public Server { Q_OBJECT public: - enum AuthenticationMethod { AuthenticationNone, AuthenticationSql }; + enum AuthenticationMethod { AuthenticationNone, AuthenticationSql, AuthenticationPassword }; private slots: void statusUpdate(); void shutdownTimeout(); diff --git a/servatrice/src/servatrice_database_interface.cpp b/servatrice/src/servatrice_database_interface.cpp index 58856f4f..fa9e8b6a 100644 --- a/servatrice/src/servatrice_database_interface.cpp +++ b/servatrice/src/servatrice_database_interface.cpp @@ -2,6 +2,7 @@ #include "servatrice_database_interface.h" #include "passwordhasher.h" #include "serversocketinterface.h" +#include "settingscache.h" #include "decklist.h" #include "pb/game_replay.pb.h" #include @@ -92,6 +93,13 @@ AuthenticationResult Servatrice_DatabaseInterface::checkUserPassword(Server_Prot { switch (server->getAuthenticationMethod()) { case Servatrice::AuthenticationNone: return UnknownUser; + case Servatrice::AuthenticationPassword: { + QString configPassword = settingsCache->value("authentication/password").toString(); + if(configPassword == password) + return PasswordRight; + + return NotLoggedIn; + } case Servatrice::AuthenticationSql: { if (!checkSql()) return UnknownUser;