-
Notifications
You must be signed in to change notification settings - Fork 275
/
LDAPSource.h
136 lines (111 loc) · 4.06 KB
/
LDAPSource.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
/* LDAPSource.h - this file is part of SOGo
*
* Copyright (C) 2007-2019 Inverse inc.
*
* This file is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2, or (at your option)
* any later version.
*
* This file is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; see the file COPYING. If not, write to
* the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA.
*/
#ifndef LDAPSOURCE_H
#define LDAPSOURCE_H
#include "SOGoSource.h"
@class LDAPSourceSchema;
@class NGLdapEntry;
@class NSException;
@class NSMutableArray;
@class NSMutableDictionary;
@class NSString;
@interface LDAPSource : NSObject <SOGoDNSource, SOGoMembershipSource>
{
int _queryLimit;
int _queryTimeout;
NSString *_sourceID;
NSString *_displayName;
NSString *_bindDN; // The bindDN/password could be either the source's one
NSString *_password; // or the current user if _bindAsCurrentUser is set to YES
NSString *_sourceBindDN; // while sourceBindDN/sourceBindPassword always belong to the source
NSString *_sourceBindPassword;
NSString *_hostname;
unsigned int _port;
NSString *_encryption;
NSString *_filter;
BOOL _bindAsCurrentUser;
NSString *_scope;
NSString *_userPasswordAlgorithm;
NSString *_baseDN;
NSString *_pristineBaseDN;
LDAPSourceSchema *_schema;
NSString *_IDField; // the first part of a user DN
NSString *_CNField;
NSString *_UIDField;
NSArray *_mailFields;
NSArray *_searchFields;
NSString *_IMAPHostField;
NSString *_IMAPLoginField;
NSString *_SieveHostField;
NSArray *_bindFields;
BOOL _listRequiresDot;
NSString *_domain;
NSString *_contactInfoAttribute;
BOOL _groupExpansionEnabled;
NSDictionary *_contactMapping;
NSArray *_contactObjectClasses;
NSArray *_groupObjectClasses;
NSMutableDictionary *_members;
NSDictionary *_modulesConstraints;
NSArray *_lookupFields;
BOOL _passwordPolicy;
BOOL _updateSambaNTLMPasswords;
/* resources handling */
NSString *_kindField;
NSString *_multipleBookingsField;
NSString *_MSExchangeHostname;
/* user addressbooks */
NSString *_abOU;
/* ACL */
NSArray *_modifiers;
}
- (void) setBindDN: (NSString *) newBindDN
password: (NSString *) newBindPassword
hostname: (NSString *) newBindHostname
port: (NSString *) newBindPort
encryption: (NSString *) newEncryption
bindAsCurrentUser: (NSString *) bindAsCurrentUser;
- (void) setBaseDN: (NSString *) newBaseDN
IDField: (NSString *) newIDField
CNField: (NSString *) newCNField
UIDField: (NSString *) newUIDField
mailFields: (NSArray *) newMailFields
searchFields: (NSArray *) newSearchFields
groupObjectClasses: (NSArray *) newGroupObjectClasses
IMAPHostField: (NSString *) newIMAPHostField
IMAPLoginField: (NSString *) newIMAPLoginField
SieveHostField: (NSString *) newSieveHostField
bindFields: (id) newBindFields
lookupFields: (NSArray *) newLookupFields
kindField: (NSString *) newKindField
andMultipleBookingsField: (NSString *) newMultipleBookingsField;
/* This enable the convertion of a contact entry with inetOrgPerson and mozillaAbPerson
to and from an LDAP record */
- (void) setContactMapping: (NSDictionary *) theMapping
andObjectClasses: (NSArray *) theObjectClasses;
- (NGLdapEntry *) lookupGroupEntryByUID: (NSString *) theUID
inDomain: (NSString *) theDomain;
- (NGLdapEntry *) lookupGroupEntryByEmail: (NSString *) theEmail
inDomain: (NSString *) theDomain;
- (void) applyContactMappingToResult: (NSMutableDictionary *) ldifRecord;
- (void) updateBaseDNFromLogin: (NSString *) theLogin;
- (BOOL) groupExpansionEnabled;
@end
#endif /* LDAPSOURCE_H */