/***************************************************************************
- * Copyright (C) 2005-2015 by the Quassel Project *
+ * Copyright (C) 2005-2016 by the Quassel Project *
* devel@quassel-irc.org *
* *
* This program is free software; you can redistribute it and/or modify *
/* This file contains an implementation of an LDAP Authenticator, as an example
* of what a custom external auth provider could do.
- *
+ *
* It's based off of this pull request for quassel by abustany:
* https://github.com/quassel/quassel/pull/4/
- *
+ *
*/
-#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 <windows.h>
+#include <winldap.h>
+#else*/
#include <ldap.h>
+//#endif
// Default LDAP server port.
#define DEFAULT_LDAP_PORT 389
public slots:
/* General */
bool isAvailable() const;
- QString displayName() const;
+ QString backendId() const;
QString description() const;
virtual QStringList setupKeys() const;
virtual QVariantMap setupDefaults() const;
-
+
+ virtual inline bool canChangePassword() const { return false; }
+
bool setup(const QVariantMap &settings = QVariantMap());
State init(const QVariantMap &settings = QVariantMap());
UserId validateUser(const QString &user, const QString &password);
-
+
protected:
virtual void setConnectionProperties(const QVariantMap &properties);
bool ldapConnect();
int _port;
QString _bindDN;
QString _baseDN;
- QString _filter;
+ QString _filter;
QString _bindPassword;
QString _uidAttribute;
- // The actual connection object.
- LDAP *_connection;
-
-};
-
+ // The actual connection object.
+ LDAP *_connection;
-#endif
+};