X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcore%2Fcoresession.cpp;h=5fd5bdcfe4cd56be2fd78b401187ca1d4938add8;hp=1f6345d0f3d9458c08ab16b9b3843a1da8cd9bf3;hb=921321156c2f1ceed0e02d519a1835e63e8c8b48;hpb=d367542ce54ed86fd3c8dbdbbf8210fc9a19a882 diff --git a/src/core/coresession.cpp b/src/core/coresession.cpp index 1f6345d0..5fd5bdcf 100644 --- a/src/core/coresession.cpp +++ b/src/core/coresession.cpp @@ -100,7 +100,8 @@ CoreSession::CoreSession(UserId uid, bool restoreState, QObject *parent) p->attachSlot(SIGNAL(createNetwork(const NetworkInfo &, const QStringList &)), this, SLOT(createNetwork(const NetworkInfo &, const QStringList &))); p->attachSlot(SIGNAL(removeNetwork(NetworkId)), this, SLOT(removeNetwork(NetworkId))); - p->attachSlot(SIGNAL(clientChangePassword(QString)), this, SLOT(changePassword(QString))); + p->attachSlot(SIGNAL(changePassword(PeerPtr,QString,QString,QString)), this, SLOT(changePassword(PeerPtr,QString,QString,QString))); + p->attachSignal(this, SIGNAL(passwordChanged(PeerPtr,bool))); loadSettings(); initScriptEngine(); @@ -641,7 +642,12 @@ void CoreSession::globalAway(const QString &msg) } } -void CoreSession::changePassword(QString password) +void CoreSession::changePassword(PeerPtr peer, const QString &userName, const QString &oldPassword, const QString &newPassword) { - emit passwordChangeRequested(_user, password); + bool success = false; + UserId uid = Core::validateUser(userName, oldPassword); + if (uid.isValid() && uid == user()) + success = Core::changeUserPassword(uid, newPassword); + + emit passwordChanged(peer, success); }