/***************************************************************************
- * Copyright (C) 2005-2018 by the Quassel Project *
+ * Copyright (C) 2005-2022 by the Quassel Project *
* devel@quassel-irc.org *
* *
* This program is free software; you can redistribute it and/or modify *
#include "ldapauthenticator.h"
+#include "ldapescaper.h"
#include "network.h"
#include "quassel.h"
/* We should use openldap on windows if at all possible, rather than trying to
- * write some kind of compatiblity routine.
+ * write some kind of compatibility routine.
#ifdef Q_CC_MSVC
#include <windows.h>
#include <winldap.h>
// 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(lUsername, QString());
+ UserId quasselId = Core::getUserId(lUsername);
if (!quasselId.isValid()) {
return Core::addUser(lUsername, QString(), backendId());
}
LDAPMessage *msg = nullptr, *entry = nullptr;
- const QByteArray ldapQuery = "(&(" + uidAttribute + '=' + username.toLocal8Bit() + ")" + _filter.toLocal8Bit() + ")";
+ const QByteArray ldapQuery = "(&(" + uidAttribute + '=' + LdapEscaper::escapeQuery(username).toLatin1() + ")" + _filter.toLocal8Bit() + ")";
res = ldap_search_ext_s(_connection,
baseDN.constData(),