diff options
author | Benjamin Jemlich <pcgod@users.sourceforge.net> | 2011-10-23 11:06:59 +0400 |
---|---|---|
committer | Benjamin Jemlich <pcgod@users.sourceforge.net> | 2011-10-23 11:30:02 +0400 |
commit | 089b23d9779785afd6402f54d1a33107d582961d (patch) | |
tree | 79b92b7999b6706df844b89c7dd905d12cd9f4bb /src/murmur/ServerDB.cpp | |
parent | 380b52d3e00aad4ad4c2635f25d40dd05c09165d (diff) |
Fix ghost disconnect removing permissions (#3423985)
Returning a list of groups using an authenticator added
temporary group membership for the user id only. Those are
removed when we're disconnecting an old user using the same
user id. Adding the session id to the group should fix the
problem.
This won't work if someone uses verifyPassword to set the
permissions (which is an undocumented implementation detail
anyway).
Diffstat (limited to 'src/murmur/ServerDB.cpp')
-rw-r--r-- | src/murmur/ServerDB.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/murmur/ServerDB.cpp b/src/murmur/ServerDB.cpp index 185e6392d..207d1bbb8 100644 --- a/src/murmur/ServerDB.cpp +++ b/src/murmur/ServerDB.cpp @@ -789,10 +789,10 @@ QMap<int, QString> Server::getRegistration(int id) { // -1 Wrong PW // -2 Anonymous -int Server::authenticate(QString &name, const QString &pw, const QStringList &emails, const QString &certhash, bool bStrongCert, const QList<QSslCertificate> &certs) { +int Server::authenticate(QString &name, const QString &pw, int sessionId, const QStringList &emails, const QString &certhash, bool bStrongCert, const QList<QSslCertificate> &certs) { int res = -2; - emit authenticateSig(res, name, certs, certhash, bStrongCert, pw); + emit authenticateSig(res, name, sessionId, certs, certhash, bStrongCert, pw); if (res != -2) { // External authentication handled it. Ignore certificate completely. |