resetPassword rework

This commit is contained in:
brindosch 2019-08-25 17:39:08 +02:00
parent 5f48a007be
commit 227f60496d
5 changed files with 26 additions and 14 deletions

View File

@ -16,9 +16,14 @@ class AuthTable : public DBManager
public:
/// construct wrapper with auth table
AuthTable(QObject* parent = nullptr)
AuthTable(const QString& rootPath = "", QObject* parent = nullptr)
: DBManager(parent)
{
if(!rootPath.isEmpty()){
// Init Hyperion database usage
setRootPath(rootPath);
setDatabaseName("hyperion");
}
// init Auth table
setTable("auth");
// create table columns

View File

@ -12,7 +12,7 @@ AuthManager* AuthManager::manager = nullptr;
AuthManager::AuthManager(QObject* parent)
: QObject(parent)
, _authTable(new AuthTable(this))
, _authTable(new AuthTable("",this))
, _metaTable(new MetaTable(this))
, _pendingRequests()
, _authRequired(true)

View File

@ -55,7 +55,7 @@
HyperionDaemon* HyperionDaemon::daemon = nullptr;
HyperionDaemon::HyperionDaemon(const QString rootPath, QObject *parent, const bool& logLvlOverwrite, const bool& resetPassword)
HyperionDaemon::HyperionDaemon(const QString rootPath, QObject *parent, const bool& logLvlOverwrite)
: QObject(parent)
, _log(Logger::getInstance("DAEMON"))
, _instanceManager(new HyperionIManager(rootPath, this))
@ -93,15 +93,6 @@ HyperionDaemon::HyperionDaemon(const QString rootPath, QObject *parent, const bo
if(!logLvlOverwrite)
handleSettingsUpdate(settings::LOGGER, getSetting(settings::LOGGER));
// reset password if requested from cmd
if(resetPassword){
if(_authManager->resetHyperionUser()){
Info(_log, "Password successfully resetted")
} else {
Error(_log, "Failed to reset password")
}
}
// init EffectFileHandler
EffectFileHandler* efh = new EffectFileHandler(rootPath, getSetting(settings::EFFECTS), this);
connect(this, &HyperionDaemon::settingsChanged, efh, &EffectFileHandler::handleSettingsUpdate);

View File

@ -72,7 +72,7 @@ class HyperionDaemon : public QObject
friend SysTray;
public:
HyperionDaemon(QString rootPath, QObject *parent, const bool& logLvlOverwrite, const bool& resetPassword);
HyperionDaemon(QString rootPath, QObject *parent, const bool& logLvlOverwrite);
~HyperionDaemon();
///

View File

@ -28,6 +28,7 @@
#include <utils/FileUtils.h>
#include <commandline/Parser.h>
#include <commandline/IntOption.h>
#include <../../include/db/AuthTable.h>
#ifdef ENABLE_X11
#include <X11/Xlib.h>
@ -335,10 +336,25 @@ int main(int argc, char** argv)
Info(log, "Set user data path to '%s'", QSTRING_CSTR(mDir.absolutePath()));
// reset Password without spawning daemon
if(parser.isSet(resetPassword))
{
AuthTable* table = new AuthTable(userDataPath);
if(table->resetHyperionUser()){
Info(log,"Password reset successfull");
delete table;
exit(0);
} else {
Error(log,"Failed to reset password!");
delete table;
exit(1);
}
}
HyperionDaemon* hyperiond = nullptr;
try
{
hyperiond = new HyperionDaemon(userDataPath, qApp, bool(logLevelCheck), parser.isSet(resetPassword));
hyperiond = new HyperionDaemon(userDataPath, qApp, bool(logLevelCheck));
}
catch (std::exception& e)
{