X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcore%2Fcoresession.cpp;h=1d0d5c5f6e2298b17959eba7833880189f6ee194;hp=1f6345d0f3d9458c08ab16b9b3843a1da8cd9bf3;hb=e56629542168c203cac8504085fc96c7f7b73d90;hpb=eaa1bd30bc088e5cae6d8a742d7aedb3d8ff1897 diff --git a/src/core/coresession.cpp b/src/core/coresession.cpp index 1f6345d0..1d0d5c5f 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(); @@ -174,7 +175,7 @@ void CoreSession::loadSettings() networkIter = networkInfos.erase(networkIter); } else { - networkIter++; + ++networkIter; } } s.removeIdentity(id); @@ -547,7 +548,7 @@ void CoreSession::destroyNetwork(NetworkId id) messageIter = _messageQueue.erase(messageIter); } else { - messageIter++; + ++messageIter; } } // remove buffers from syncer @@ -577,7 +578,7 @@ void CoreSession::clientsConnected() IrcUser *me = 0; while (netIter != _networks.end()) { net = *netIter; - netIter++; + ++netIter; if (!net->isConnected()) continue; @@ -604,7 +605,7 @@ void CoreSession::clientsDisconnected() QString awayReason; while (netIter != _networks.end()) { net = *netIter; - netIter++; + ++netIter; if (!net->isConnected()) continue; @@ -632,7 +633,7 @@ void CoreSession::globalAway(const QString &msg) CoreNetwork *net = 0; while (netIter != _networks.end()) { net = *netIter; - netIter++; + ++netIter; if (!net->isConnected()) continue; @@ -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); }