6 #ifndef ALD_LDAP_WRAPPER 7 #define ALD_LDAP_WRAPPER 23 #define LDAP_ITF_NAME "ldap" 27 #define LDAP_ATTR_NULLABLE true 30 enum alSCOPE {alsBASE, alsONELEVEL, alsSUBTREE, alsCHILDREN};
57 virtual string ValByAttr(
const string& Attr,
bool nullable =
false) = 0;
65 virtual size_t ValsByAttr(
const string& Attr,
ald_string_list &vals,
bool nullable =
false) = 0;
68 virtual void Clear() = 0;
69 virtual bool IsValid() = 0;
70 virtual void Create() = 0;
71 virtual void Delete() = 0;
92 virtual void Rename(
const string &newrdn) = 0;
94 virtual string creator() = 0;
95 virtual string modifier() = 0;
96 virtual string created() = 0;
97 virtual string modified() = 0;
114 virtual void First() = 0;
120 virtual bool Fetch(CALDLdapEntPtr &Entity) = 0;
122 virtual int Count() = 0;
145 virtual bool Connect(
const string &server,
ALDAuthType at) = 0;
146 virtual bool IsConnected() = 0;
147 virtual void Disconnect() = 0;
150 virtual long GetLastError() = 0;
151 virtual bool IfReconnectNeeded() = 0;
152 virtual string LocalToUtf8(
const string &strLocal) = 0;
153 virtual string Utf8ToLocal(
const string &strUtf8) = 0;
154 virtual void AdjustGecosType() = 0;
157 virtual CALDLdapEntPtr AllocEntity() = 0;
167 virtual CALDLdapQueryPtr Search(
const string &basedn,
const string &filter,
174 virtual void DeleteAttr(
const string &dn,
const string &attr) = 0;
182 virtual void SetAttrValue(
const string &dn,
const string &attr,
const string &val,
191 virtual void SetAttrValues(
const string &dn,
const string &attr,
ald_string_list &vals,
208 virtual void DeleteDN(
const string &dn) = 0;
223 virtual void RenameDN(
const string &dn,
const string &newrdn) = 0;
232 virtual void SetAttrBinaryValue(
const string &dn,
const string &attr,
233 const char* pval,
unsigned long len,
242 virtual void* GetAttrBinaryValue(
const string &dn,
const string &attr,
243 unsigned long &len) = 0;
246 virtual void EnsureOU(
const string &dn) = 0;
249 virtual void AddDBIndex(
const string &idx) = 0;
250 virtual void DeleteDBIndex(
const string &idx) = 0;
258 #define ALD_LDAP_ACCESS_POS_FIRST 0 259 #define ALD_LDAP_ACCESS_POS_LAST -1 266 virtual void AddDBAccessRule(
int idx,
const string &rule) = 0;
268 virtual void DeleteDBAccessRule(
int idx) = 0;
271 virtual bool IsLdapSchemaRegistered(
const string &schema) = 0;
278 virtual void AddDBUniqueness(
const string &uniq) = 0;
279 virtual void DeleteDBUniqueness(
const string &uniq) = 0;
282 virtual void AddDBLimit(
const string &who,
const string &limit) = 0;
283 virtual void DeleteDBLimit(
const string &who) = 0;
287 virtual void AddSyncRepl(
string rid,
string provider) = 0;
288 virtual void DeleteSyncRepl(
string rid,
string provider) = 0;
291 virtual void EnumerateLdapProviders(
ald_string_map &providers) = 0;
298 virtual void AddLdapProvider(
const string &domain,
string uri,
const string &pwd) = 0;
304 virtual CALDLdapEntPtr GetLdapProvider(
const string &domain) = 0;
306 virtual void UpdateLdapProvider(
const string &domain,
string uri) = 0;
307 virtual void DeleteLdapProvider(
const string &domain) = 0;
320 virtual CALDLdapConnPtr getConnection() = 0;
322 virtual string getDefaultURIs() = 0;
331 #endif // ALD_LDAP_WRAPPER list< CALDLdapEntPtr > ald_ldap_ent_list
Список разделяемых указателей на интерфейс записи LDAP IALDLdapEntity.
Definition: ldap-wrapper.h:104
list< string > ald_string_list
Список строк
Definition: ALDUtils.h:152
Объявление основного интерфейса клиента Astra Linux Directory и необходимых для него типов и интерфей...
Удаление заданного значения
Definition: ldap-wrapper.h:36
void RegisterLdapSchema(IALDCore &Core, const string &schema)
Регистрирует указанную схему LDAP.
shared_ptr< IALDLdapEntity > CALDLdapEntPtr
Разделяемый указатель на интерфейс записи LDAP IALDLdapEntity.
Definition: ldap-wrapper.h:102
Пространство имен основного интерфейса Astra Linux Directory.
Definition: action-definitions.h:9
alOPERATION
Операции LDAP (префиксы при модификации записи LDAP)
Definition: ldap-wrapper.h:33
#define LDAP_ITF_NAME
Имя LDAP интерфейса
Definition: ldap-wrapper.h:24
shared_ptr< IALDLdapConnection > CALDLdapConnPtr
Разделяемый указатель на интерфейс соединения с сервером LDAP.
Definition: ldap-wrapper.h:310
Базовый класс интерфейса
Definition: ALDCore.h:83
virtual ~IALDLdapEntity()
Деструктор
Definition: ldap-wrapper.h:99
Добавление заданного значения
Definition: ldap-wrapper.h:34
Абстрактный класс-интерфейс результирующего набора записей LDAP.
Definition: ldap-wrapper.h:111
map< string, string > ald_string_map
MAP строка => строка
Definition: ALDUtils.h:164
multimap< string, string > ald_string_multimap
MultiMAP строка => строка
Definition: ALDUtils.h:166
Удаление всех значений атрибута (удаление атрибута)
Definition: ldap-wrapper.h:37
Абстрактный класс-интерфейс LDAP записи
Definition: ldap-wrapper.h:45
shared_ptr< IALDLdapWrapper > CALDLdapWrapperPtr
Разделяемый указатель на интерфейс взаимодействия с LDAP IALDLdapWrapper.
Definition: ldap-wrapper.h:325
Установка заданного значения
Definition: ldap-wrapper.h:35
Абстрактный класс-интерфейс взаимодействия с LDAP.
Definition: ldap-wrapper.h:316
alSCOPE
Уровни просмотра LDAP дерева
Definition: ldap-wrapper.h:30
virtual ~IALDLdapQuery()
Деструктор
Definition: ldap-wrapper.h:124
virtual ~IALDLdapConnection()
Деструктор
Definition: ldap-wrapper.h:136
ald_string_multimap Attrs
Таблица значений атрибутов (имя, значение)
Definition: ldap-wrapper.h:50
string DN
Уникальное имя
Definition: ldap-wrapper.h:49
IALDLdapWrapper(IALDCore &Core)
Конструктор
Definition: ldap-wrapper.h:319
Основной заголовочный файл, содержащий необходимый минимум предварительных объявлений и включений дру...
Абстрактный класс-интерфейс соединения с сервером LDAP.
Definition: ldap-wrapper.h:133
ALDAuthType
Набор способов аутентификации
Definition: ALDCore.h:28
Абстрактный класс IALDCore - основной интерфейс клиента Astra Linux Directory, с помощью которого вып...
Definition: ALDCore.h:241
shared_ptr< IALDLdapQuery > CALDLdapQueryPtr
Разделяемый указатель на интерфейс результирующего набора записей LDAP IALDLdapQuery.
Definition: ldap-wrapper.h:127