1 /* 2 SPDX-FileCopyrightText: 2010-2021 Laurent Montel <montel@kde.org> 3 4 SPDX-License-Identifier: LGPL-2.0-or-later 5 */ 6 7 #pragma once 8 9 #include "setupobject.h" 10 #include <KLDAP/LdapServer> 11 12 class LdapTest; 13 class KConfig; 14 15 namespace KLDAP 16 { 17 class LdapClientSearchConfig; 18 } 19 20 class Ldap : public SetupObject 21 { 22 Q_OBJECT 23 public: 24 explicit Ldap(QObject *parent = nullptr); 25 ~Ldap() override; 26 void create() override; 27 void destroy() override; 28 void edit(); 29 public Q_SLOTS: 30 Q_SCRIPTABLE void setUser(const QString &name); 31 Q_SCRIPTABLE void setServer(const QString &server); 32 Q_SCRIPTABLE void setAuthenticationMethod(const QString &meth); 33 Q_SCRIPTABLE void setBindDn(const QString &bindDn); 34 Q_SCRIPTABLE void setBaseDn(const QString &baseDn); 35 Q_SCRIPTABLE void setPassword(const QString &password); 36 Q_SCRIPTABLE void setPort(const int port); 37 Q_SCRIPTABLE void setSecurity(const KLDAP::LdapServer::Security security); 38 Q_SCRIPTABLE void setSaslMech(const QString &saslmech); 39 Q_SCRIPTABLE void setRealm(const QString &realm); 40 Q_SCRIPTABLE void setVersion(const int version); 41 Q_SCRIPTABLE void setPageSize(const int pageSize); 42 Q_SCRIPTABLE void setTimeLimit(const int timeLimit); 43 Q_SCRIPTABLE void setSizeLimit(const int sizeLimit); 44 Q_SCRIPTABLE void setEditMode(const bool editMode); 45 46 protected: 47 virtual KConfig *config() const; 48 49 KLDAP::LdapClientSearchConfig *const m_clientSearchConfig; 50 51 private: 52 friend class LdapTest; 53 void slotRestoreDone(); 54 QString securityString(); 55 56 QString m_user; 57 QString m_server; 58 QString m_bindDn; 59 QString m_authMethod; 60 QString m_password; 61 QString m_mech; 62 QString m_realm; 63 QString m_baseDn; 64 int m_port = 389; 65 KLDAP::LdapServer::Security m_security = KLDAP::LdapServer::None; 66 int m_version = 3; 67 int m_pageSize = 0; 68 int m_timeLimit = 0; 69 int m_sizeLimit = 0; 70 int m_entry = -1; 71 bool m_editMode = false; 72 }; 73 74