X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcore%2Fldapauthenticator.h;h=81847380c1f3d76d11ec2897993027a18e3f26bf;hp=cf146940cdab24461ea925a9c3cc5e0dfee87c05;hb=c1cf157116de7fc3da96203aa6f03c38c7ebb650;hpb=d6f3eedebc7f9619b04dffc5f48faa792950fdcd diff --git a/src/core/ldapauthenticator.h b/src/core/ldapauthenticator.h index cf146940..81847380 100644 --- a/src/core/ldapauthenticator.h +++ b/src/core/ldapauthenticator.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2015 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 * @@ -26,50 +26,57 @@ * */ -#ifndef LDAPAUTHENTICATOR_H -#define LDAPAUTHENTICATOR_H +#pragma once #include "authenticator.h" - #include "core.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 +#include +#else*/ #include +//#endif // Default LDAP server port. -#define DEFAULT_LDAP_PORT 389 +constexpr int DEFAULT_LDAP_PORT = 389; class LdapAuthenticator : public Authenticator { Q_OBJECT public: - LdapAuthenticator(QObject *parent = 0); - virtual ~LdapAuthenticator(); + LdapAuthenticator(QObject* parent = nullptr); + ~LdapAuthenticator() override; public slots: /* General */ - bool isAvailable() const; - QString displayName() const; - QString description() const; - virtual QStringList setupKeys() const; - virtual QVariantMap setupDefaults() const; + bool isAvailable() const override; + QString backendId() const override; + QString displayName() const override; + QString description() const override; + QVariantList setupData() const override; + + bool canChangePassword() const override { return false; } - bool setup(const QVariantMap &settings = QVariantMap()); - State init(const QVariantMap &settings = QVariantMap()); - UserId validateUser(const QString &user, const QString &password); + bool setup(const QVariantMap& settings, const QProcessEnvironment& environment, bool loadFromEnvironment) override; + State init(const QVariantMap& settings, const QProcessEnvironment& environment, bool loadFromEnvironment) override; + UserId validateUser(const QString& user, const QString& password) override; protected: - virtual void setConnectionProperties(const QVariantMap &properties); + void setAuthProperties(const QVariantMap& properties, const QProcessEnvironment& environment, bool loadFromEnvironment); bool ldapConnect(); void ldapDisconnect(); - bool ldapAuth(const QString &username, const QString &password); + bool ldapAuth(const QString& username, const QString& password); // Protected methods for retrieving info about the LDAP connection. - inline virtual QString hostName() { return _hostName; } - inline virtual int port() { return _port; } - inline virtual QString bindDN() { return _bindDN; } - inline virtual QString baseDN() { return _baseDN; } + QString hostName() const { return _hostName; } + int port() const { return _port; } + QString bindDN() const { return _bindDN; } + QString baseDN() const { return _baseDN; } private: QString _hostName; @@ -81,9 +88,5 @@ private: QString _uidAttribute; // The actual connection object. - LDAP *_connection; - + LDAP* _connection{nullptr}; }; - - -#endif