File indexing completed on 2025-02-02 05:08:37

0001 /*
0002     SPDX-FileCopyrightText: 2010-2024 Laurent Montel <montel@kde.org>
0003 
0004     SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #pragma once
0008 
0009 #include "setupobject.h"
0010 #include <KLDAPCore/LdapServer>
0011 
0012 class LdapTest;
0013 class KConfig;
0014 
0015 namespace KLDAPWidgets
0016 {
0017 class LdapClientSearchConfig;
0018 }
0019 
0020 class Ldap : public SetupObject
0021 {
0022     Q_OBJECT
0023 public:
0024     explicit Ldap(QObject *parent = nullptr);
0025     ~Ldap() override;
0026     void create() override;
0027     void destroy() override;
0028     void edit();
0029 public Q_SLOTS:
0030     Q_SCRIPTABLE void setUser(const QString &name);
0031     Q_SCRIPTABLE void setServer(const QString &server);
0032     Q_SCRIPTABLE void setAuthenticationMethod(const QString &meth);
0033     Q_SCRIPTABLE void setBindDn(const QString &bindDn);
0034     Q_SCRIPTABLE void setBaseDn(const QString &baseDn);
0035     Q_SCRIPTABLE void setPassword(const QString &password);
0036     Q_SCRIPTABLE void setPort(const int port);
0037     Q_SCRIPTABLE void setSecurity(const KLDAPCore::LdapServer::Security security);
0038     Q_SCRIPTABLE void setSaslMech(const QString &saslmech);
0039     Q_SCRIPTABLE void setRealm(const QString &realm);
0040     Q_SCRIPTABLE void setVersion(const int version);
0041     Q_SCRIPTABLE void setPageSize(const int pageSize);
0042     Q_SCRIPTABLE void setTimeLimit(const int timeLimit);
0043     Q_SCRIPTABLE void setSizeLimit(const int sizeLimit);
0044     Q_SCRIPTABLE void setEditMode(const bool editMode);
0045 
0046 protected:
0047     virtual KConfig *config() const;
0048 
0049     KLDAPWidgets::LdapClientSearchConfig *const m_clientSearchConfig;
0050 
0051 private:
0052     friend class LdapTest;
0053     void slotRestoreDone();
0054     QString securityString();
0055 
0056     QString m_user;
0057     QString m_server;
0058     QString m_bindDn;
0059     QString m_authMethod;
0060     QString m_password;
0061     QString m_mech;
0062     QString m_realm;
0063     QString m_baseDn;
0064     int m_port = 389;
0065     KLDAPCore::LdapServer::Security m_security = KLDAPCore::LdapServer::None;
0066     int m_version = 3;
0067     int m_pageSize = 0;
0068     int m_timeLimit = 0;
0069     int m_sizeLimit = 0;
0070     int m_entry = -1;
0071     bool m_editMode = false;
0072 };