projects
/
quassel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Attempt to link against openldap on Windows, too
[quassel.git]
/
src
/
core
/
ldapauthenticator.cpp
diff --git
a/src/core/ldapauthenticator.cpp
b/src/core/ldapauthenticator.cpp
index
378fc4b
..
5b62b89
100644
(file)
--- a/
src/core/ldapauthenticator.cpp
+++ b/
src/core/ldapauthenticator.cpp
@@
-32,8
+32,14
@@
#include "network.h"
#include "quassel.h"
#include "network.h"
#include "quassel.h"
-// Link against LDAP.
+/* We should use openldap on windows if at all possible, rather than trying to
+ * write some kind of compatiblity routine.
+#ifdef Q_CC_MSVC
+#include <windows.h>
+#include <winldap.h>
+#else*/
#include <ldap.h>
#include <ldap.h>
+//#endif
LdapAuthenticator::LdapAuthenticator(QObject *parent)
: Authenticator(parent),
LdapAuthenticator::LdapAuthenticator(QObject *parent)
: Authenticator(parent),
@@
-118,11
+124,17
@@
UserId LdapAuthenticator::validateUser(const QString &username, const QString &p
// If auth succeeds, but the user has not logged into quassel previously, make
// a new user for them and return that ID.
// If auth succeeds, but the user has not logged into quassel previously, make
// a new user for them and return that ID.
- // Users created via LDAP have empty usernames.
+ // Users created via LDAP have empty passwords, but authenticator column = LDAP.
+ // On the other hand, if auth succeeds and the user already exists, do a final
+ // cross-check to confirm we're using the right auth provider.
UserId quasselID = Core::validateUser(username, QString());
if (!quasselID.isValid())
{
UserId quasselID = Core::validateUser(username, QString());
if (!quasselID.isValid())
{
- return Core::addUser(username, QString());
+ return Core::addUser(username, QString(), displayName());
+ }
+ else if (!(Core::checkAuthProvider(quasselID, displayName())))
+ {
+ return 0;
}
return quasselID;
}
}
return quasselID;
}