X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcore%2Fldapauthenticator.cpp;h=772b767e73ef363a53f4156a7901250e5dc8f387;hp=34768faaec601d574473094beac44d78f0cae345;hb=092e6b212637ffbf68800584b7c1f32d1931b602;hpb=cfbd4daee17dbb3c4052d938bf33edd08711d728 diff --git a/src/core/ldapauthenticator.cpp b/src/core/ldapauthenticator.cpp index 34768faa..772b767e 100644 --- a/src/core/ldapauthenticator.cpp +++ b/src/core/ldapauthenticator.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2016 by the Quassel Project * + * Copyright (C) 2005-2018 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -122,14 +122,18 @@ UserId LdapAuthenticator::validateUser(const QString &username, const QString &p return UserId(); } + // LDAP is case-insensitive, thus we will lowercase the username, in spite of + // a better solution :( + const QString lUsername = username.toLower(); + // 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 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()); + UserId quasselId = Core::validateUser(lUsername, QString()); if (!quasselId.isValid()) { - return Core::addUser(username, QString(), backendId()); + return Core::addUser(lUsername, QString(), backendId()); } else if (!(Core::checkAuthProvider(quasselId, backendId()))) { return 0; @@ -177,6 +181,8 @@ bool LdapAuthenticator::ldapConnect() serverURIArray = serverURI.toLocal8Bit(); res = ldap_initialize(&_connection, serverURIArray); + quInfo() << "LDAP: Connecting to" << serverURI; + if (res != LDAP_SUCCESS) { qWarning() << "Could not connect to LDAP server:" << ldap_err2string(res); return false;