1 |
85ad3d82
|
Assos Assos
|
<?php
|
2 |
|
|
|
3 |
|
|
|
4 |
|
|
|
5 |
|
|
|
6 |
|
|
|
7 |
|
|
|
8 |
|
|
|
9 |
32700c57
|
Assos Assos
|
|
10 |
85ad3d82
|
Assos Assos
|
|
11 |
|
|
|
12 |
|
|
|
13 |
|
|
|
14 |
|
|
|
15 |
|
|
|
16 |
|
|
class LdapQuery {
|
17 |
32700c57
|
Assos Assos
|
|
18 |
|
|
|
19 |
|
|
|
20 |
85ad3d82
|
Assos Assos
|
public $query_numeric_id;
|
21 |
|
|
public $qid;
|
22 |
|
|
public $name;
|
23 |
|
|
public $sid;
|
24 |
|
|
public $status;
|
25 |
|
|
|
26 |
32700c57
|
Assos Assos
|
public $baseDn = [];
|
27 |
85ad3d82
|
Assos Assos
|
public $base_dn_str = NULL;
|
28 |
|
|
public $filter;
|
29 |
|
|
public $attributes_str = NULL;
|
30 |
32700c57
|
Assos Assos
|
public $attributes = [];
|
31 |
85ad3d82
|
Assos Assos
|
|
32 |
|
|
public $sizelimit = 0;
|
33 |
|
|
public $timelimit = 0;
|
34 |
|
|
public $deref = LDAP_DEREF_NEVER;
|
35 |
|
|
public $scope = LDAP_SCOPE_SUBTREE;
|
36 |
|
|
|
37 |
|
|
|
38 |
|
|
public $inDatabase = FALSE;
|
39 |
|
|
public $detailedWatchdogLog = FALSE;
|
40 |
|
|
|
41 |
|
|
|
42 |
32700c57
|
Assos Assos
|
|
43 |
85ad3d82
|
Assos Assos
|
|
44 |
32700c57
|
Assos Assos
|
public function __construct($qid) {
|
45 |
85ad3d82
|
Assos Assos
|
if (!is_scalar($qid)) {
|
46 |
|
|
return;
|
47 |
|
|
}
|
48 |
|
|
|
49 |
32700c57
|
Assos Assos
|
$query_records = [];
|
50 |
85ad3d82
|
Assos Assos
|
if (module_exists('ctools')) {
|
51 |
|
|
ctools_include('export');
|
52 |
32700c57
|
Assos Assos
|
$result = ctools_export_load_object('ldap_query', 'names', [$qid]);
|
53 |
85ad3d82
|
Assos Assos
|
if (isset($result[$qid])) {
|
54 |
|
|
$query_record = $result[$qid];
|
55 |
|
|
foreach ($query_record as $property_name => $value) {
|
56 |
|
|
$this->{$property_name} = $value;
|
57 |
|
|
}
|
58 |
|
|
}
|
59 |
|
|
}
|
60 |
|
|
else {
|
61 |
|
|
$select = db_select('ldap_query')
|
62 |
|
|
->fields('ldap_query')
|
63 |
bc175c27
|
Assos Assos
|
->condition('ldap_query.qid', $qid)
|
64 |
85ad3d82
|
Assos Assos
|
->execute();
|
65 |
|
|
foreach ($select as $record) {
|
66 |
|
|
$query_records[$record->qid] = $record;
|
67 |
|
|
}
|
68 |
|
|
if (!isset($query_records[$qid])) {
|
69 |
|
|
$this->inDatabase = FALSE;
|
70 |
|
|
return;
|
71 |
|
|
}
|
72 |
|
|
$query_record = $query_records[$qid];
|
73 |
32700c57
|
Assos Assos
|
foreach ($this->fields() as $field_id => $field) {
|
74 |
85ad3d82
|
Assos Assos
|
if (isset($query_record->$field_id)) {
|
75 |
|
|
$this->{$field['property_name']} = @$query_record->$field_id;
|
76 |
|
|
}
|
77 |
|
|
}
|
78 |
|
|
}
|
79 |
|
|
|
80 |
32700c57
|
Assos Assos
|
|
81 |
85ad3d82
|
Assos Assos
|
$this->inDatabase = TRUE;
|
82 |
|
|
$this->detailedWatchdogLog = variable_get('ldap_help_watchdog_detail', 0);
|
83 |
|
|
|
84 |
|
|
$this->baseDn = $this->linesToArray($this->base_dn_str);
|
85 |
32700c57
|
Assos Assos
|
$this->attributes = ($this->attributes_str) ? $this->csvToArray($this->attributes_str, TRUE) : [];
|
86 |
85ad3d82
|
Assos Assos
|
|
87 |
|
|
}
|
88 |
|
|
|
89 |
|
|
|
90 |
32700c57
|
Assos Assos
|
|
91 |
85ad3d82
|
Assos Assos
|
|
92 |
32700c57
|
Assos Assos
|
public function __destruct() {
|
93 |
85ad3d82
|
Assos Assos
|
|
94 |
|
|
}
|
95 |
|
|
|
96 |
|
|
|
97 |
32700c57
|
Assos Assos
|
|
98 |
85ad3d82
|
Assos Assos
|
|
99 |
32700c57
|
Assos Assos
|
public function __invoke() {
|
100 |
85ad3d82
|
Assos Assos
|
|
101 |
|
|
}
|
102 |
|
|
|
103 |
32700c57
|
Assos Assos
|
|
104 |
|
|
|
105 |
|
|
|
106 |
|
|
public function query() {
|
107 |
85ad3d82
|
Assos Assos
|
ldap_servers_module_load_include('php', 'ldap_servers', 'LdapServer.class');
|
108 |
|
|
$ldap_server = new LdapServer($this->sid);
|
109 |
|
|
$ldap_server->connect();
|
110 |
|
|
$ldap_server->bind();
|
111 |
32700c57
|
Assos Assos
|
$results = [];
|
112 |
85ad3d82
|
Assos Assos
|
|
113 |
|
|
$count = 0;
|
114 |
|
|
|
115 |
|
|
foreach ($this->baseDn as $base_dn) {
|
116 |
|
|
$result = $ldap_server->search($base_dn, $this->filter, $this->attributes, 0, $this->sizelimit, $this->timelimit, $this->deref, $this->scope);
|
117 |
|
|
if ($result !== FALSE && $result['count'] > 0) {
|
118 |
|
|
$count = $count + $result['count'];
|
119 |
|
|
$results = array_merge($results, $result);
|
120 |
|
|
}
|
121 |
|
|
}
|
122 |
|
|
$results['count'] = $count;
|
123 |
|
|
|
124 |
|
|
return $results;
|
125 |
|
|
}
|
126 |
|
|
|
127 |
|
|
|
128 |
|
|
|
129 |
|
|
|
130 |
|
|
|
131 |
|
|
protected $_errorMsg = NULL;
|
132 |
|
|
protected $_hasError = FALSE;
|
133 |
|
|
protected $_errorName = NULL;
|
134 |
|
|
|
135 |
32700c57
|
Assos Assos
|
|
136 |
|
|
|
137 |
|
|
|
138 |
85ad3d82
|
Assos Assos
|
public function setError($_errorName, $_errorMsgText = NULL) {
|
139 |
|
|
$this->_errorMsgText = $_errorMsgText;
|
140 |
|
|
$this->_errorName = $_errorName;
|
141 |
|
|
$this->_hasError = TRUE;
|
142 |
|
|
}
|
143 |
|
|
|
144 |
32700c57
|
Assos Assos
|
|
145 |
|
|
|
146 |
|
|
|
147 |
85ad3d82
|
Assos Assos
|
public function clearError() {
|
148 |
|
|
$this->_hasError = FALSE;
|
149 |
|
|
$this->_errorMsg = NULL;
|
150 |
|
|
$this->_errorName = NULL;
|
151 |
|
|
}
|
152 |
|
|
|
153 |
32700c57
|
Assos Assos
|
|
154 |
|
|
|
155 |
|
|
|
156 |
85ad3d82
|
Assos Assos
|
public function hasError() {
|
157 |
|
|
return ($this->_hasError || $this->ldapErrorNumber());
|
158 |
|
|
}
|
159 |
|
|
|
160 |
32700c57
|
Assos Assos
|
|
161 |
|
|
|
162 |
|
|
|
163 |
|
|
|
164 |
|
|
|
165 |
85ad3d82
|
Assos Assos
|
public function errorMsg($type = NULL) {
|
166 |
|
|
if ($type == 'ldap' && $this->connection) {
|
167 |
|
|
return ldap_err2str(ldap_errno($this->connection));
|
168 |
|
|
}
|
169 |
|
|
elseif ($type == NULL) {
|
170 |
|
|
return $this->_errorMsg;
|
171 |
|
|
}
|
172 |
|
|
else {
|
173 |
|
|
return NULL;
|
174 |
|
|
}
|
175 |
|
|
}
|
176 |
|
|
|
177 |
32700c57
|
Assos Assos
|
|
178 |
|
|
|
179 |
|
|
|
180 |
|
|
|
181 |
|
|
|
182 |
85ad3d82
|
Assos Assos
|
public function errorName($type = NULL) {
|
183 |
|
|
if ($type == 'ldap' && $this->connection) {
|
184 |
|
|
return "LDAP Error: " . ldap_error($this->connection);
|
185 |
|
|
}
|
186 |
|
|
elseif ($type == NULL) {
|
187 |
|
|
return $this->_errorName;
|
188 |
|
|
}
|
189 |
|
|
else {
|
190 |
|
|
return NULL;
|
191 |
|
|
}
|
192 |
|
|
}
|
193 |
|
|
|
194 |
32700c57
|
Assos Assos
|
|
195 |
|
|
|
196 |
|
|
|
197 |
85ad3d82
|
Assos Assos
|
public function ldapErrorNumber() {
|
198 |
32700c57
|
Assos Assos
|
return FALSE;
|
199 |
85ad3d82
|
Assos Assos
|
}
|
200 |
|
|
|
201 |
32700c57
|
Assos Assos
|
|
202 |
|
|
|
203 |
|
|
|
204 |
85ad3d82
|
Assos Assos
|
protected function linesToArray($lines) {
|
205 |
|
|
$lines = trim($lines);
|
206 |
|
|
if ($lines) {
|
207 |
|
|
$array = preg_split('/[\n\r]+/', $lines);
|
208 |
|
|
foreach ($array as $i => $value) {
|
209 |
|
|
$array[$i] = trim($value);
|
210 |
|
|
}
|
211 |
|
|
}
|
212 |
|
|
else {
|
213 |
32700c57
|
Assos Assos
|
$array = [];
|
214 |
85ad3d82
|
Assos Assos
|
}
|
215 |
|
|
return $array;
|
216 |
|
|
}
|
217 |
|
|
|
218 |
32700c57
|
Assos Assos
|
|
219 |
|
|
|
220 |
|
|
|
221 |
85ad3d82
|
Assos Assos
|
protected function csvToArray($string, $strip_quotes = FALSE) {
|
222 |
|
|
$items = explode(',', $string);
|
223 |
|
|
foreach ($items as $i => $item) {
|
224 |
|
|
$items[$i] = trim($item);
|
225 |
|
|
if ($strip_quotes) {
|
226 |
|
|
$items[$i] = trim($items[$i], '"');
|
227 |
|
|
}
|
228 |
|
|
}
|
229 |
|
|
return $items;
|
230 |
|
|
}
|
231 |
|
|
|
232 |
32700c57
|
Assos Assos
|
|
233 |
|
|
|
234 |
|
|
|
235 |
85ad3d82
|
Assos Assos
|
public static function fields() {
|
236 |
32700c57
|
Assos Assos
|
$fields = [
|
237 |
|
|
'query_numeric_id' => [
|
238 |
|
|
'property_name' => 'query_numeric_id',
|
239 |
|
|
'schema' => [
|
240 |
|
|
'type' => 'serial',
|
241 |
|
|
'unsigned' => TRUE,
|
242 |
|
|
'not null' => TRUE,
|
243 |
|
|
'description' => 'Primary ID field for the table. Only used internally.',
|
244 |
|
|
'no export' => TRUE,
|
245 |
|
|
],
|
246 |
|
|
],
|
247 |
|
|
|
248 |
|
|
'qid' => [
|
249 |
85ad3d82
|
Assos Assos
|
'property_name' => 'qid',
|
250 |
32700c57
|
Assos Assos
|
'schema' => [
|
251 |
85ad3d82
|
Assos Assos
|
'type' => 'varchar',
|
252 |
|
|
'length' => 20,
|
253 |
|
|
'description' => 'Machine name for query.',
|
254 |
|
|
'not null' => TRUE,
|
255 |
32700c57
|
Assos Assos
|
],
|
256 |
|
|
'form' => [
|
257 |
85ad3d82
|
Assos Assos
|
'field_group' => 'basic',
|
258 |
|
|
'#type' => 'textfield',
|
259 |
|
|
'#title' => t('Machine name for this query configuration.'),
|
260 |
|
|
'#size' => 20,
|
261 |
|
|
'#maxlength' => 20,
|
262 |
32700c57
|
Assos Assos
|
'#description' => t('May only contain alphanumeric characters (a-z, A-Z, 0-9, and _)'),
|
263 |
85ad3d82
|
Assos Assos
|
'#required' => TRUE,
|
264 |
32700c57
|
Assos Assos
|
],
|
265 |
|
|
'form_to_prop_functions' => ['trim'],
|
266 |
|
|
],
|
267 |
85ad3d82
|
Assos Assos
|
|
268 |
32700c57
|
Assos Assos
|
'name' => [
|
269 |
85ad3d82
|
Assos Assos
|
'property_name' => 'name',
|
270 |
32700c57
|
Assos Assos
|
'schema' => [
|
271 |
85ad3d82
|
Assos Assos
|
'type' => 'varchar',
|
272 |
|
|
'length' => '60',
|
273 |
32700c57
|
Assos Assos
|
'not null' => TRUE,
|
274 |
|
|
],
|
275 |
|
|
'form' => [
|
276 |
85ad3d82
|
Assos Assos
|
'field_group' => 'basic',
|
277 |
|
|
'#type' => 'textfield',
|
278 |
|
|
'#title' => t('Name'),
|
279 |
|
|
'#description' => t('Choose a name for this query configuration.'),
|
280 |
|
|
'#size' => 50,
|
281 |
|
|
'#maxlength' => 255,
|
282 |
|
|
'#required' => TRUE,
|
283 |
32700c57
|
Assos Assos
|
],
|
284 |
|
|
'form_to_prop_functions' => ['trim'],
|
285 |
|
|
],
|
286 |
85ad3d82
|
Assos Assos
|
|
287 |
32700c57
|
Assos Assos
|
'sid' => [
|
288 |
85ad3d82
|
Assos Assos
|
'property_name' => 'sid',
|
289 |
32700c57
|
Assos Assos
|
'schema' => [
|
290 |
85ad3d82
|
Assos Assos
|
'type' => 'varchar',
|
291 |
|
|
'length' => 20,
|
292 |
|
|
'not null' => TRUE,
|
293 |
32700c57
|
Assos Assos
|
],
|
294 |
|
|
'form' => [
|
295 |
85ad3d82
|
Assos Assos
|
'field_group' => 'basic',
|
296 |
|
|
'#type' => 'radios',
|
297 |
|
|
'#title' => t('LDAP Server used for query.'),
|
298 |
|
|
'#required' => 1,
|
299 |
32700c57
|
Assos Assos
|
],
|
300 |
|
|
'form_to_prop_functions' => ['trim'],
|
301 |
|
|
],
|
302 |
85ad3d82
|
Assos Assos
|
|
303 |
32700c57
|
Assos Assos
|
'status' => [
|
304 |
85ad3d82
|
Assos Assos
|
'property_name' => 'status',
|
305 |
32700c57
|
Assos Assos
|
'schema' => [
|
306 |
85ad3d82
|
Assos Assos
|
'type' => 'int',
|
307 |
|
|
'size' => 'tiny',
|
308 |
|
|
'not null' => TRUE,
|
309 |
|
|
'default' => 0,
|
310 |
32700c57
|
Assos Assos
|
],
|
311 |
|
|
'form' => [
|
312 |
85ad3d82
|
Assos Assos
|
'field_group' => 'basic',
|
313 |
|
|
'#type' => 'checkbox',
|
314 |
|
|
'#title' => t('Enabled'),
|
315 |
|
|
'#description' => t('Disable in order to keep configuration without having it active.'),
|
316 |
32700c57
|
Assos Assos
|
],
|
317 |
|
|
'form_to_prop_functions' => ['trim'],
|
318 |
|
|
],
|
319 |
85ad3d82
|
Assos Assos
|
|
320 |
32700c57
|
Assos Assos
|
'base_dn_str' => [
|
321 |
85ad3d82
|
Assos Assos
|
'property_name' => 'base_dn_str',
|
322 |
32700c57
|
Assos Assos
|
'schema' => [
|
323 |
85ad3d82
|
Assos Assos
|
'type' => 'text',
|
324 |
32700c57
|
Assos Assos
|
'not null' => FALSE,
|
325 |
|
|
],
|
326 |
|
|
'form' => [
|
327 |
85ad3d82
|
Assos Assos
|
'field_group' => 'query',
|
328 |
|
|
'#type' => 'textarea',
|
329 |
|
|
'#title' => t('Base DNs to search in query.'),
|
330 |
|
|
'#description' => t('Each Base DN will be queried and results merged. e.g. <code>ou=groups,dc=hogwarts,dc=edu</code>') . t('Enter one per line in case if you need more than one.'),
|
331 |
|
|
'#cols' => 50,
|
332 |
|
|
'#rows' => 6,
|
333 |
|
|
'#required' => TRUE,
|
334 |
32700c57
|
Assos Assos
|
],
|
335 |
|
|
'form_to_prop_functions' => ['trim'],
|
336 |
|
|
],
|
337 |
85ad3d82
|
Assos Assos
|
|
338 |
32700c57
|
Assos Assos
|
'baseDn' => [
|
339 |
85ad3d82
|
Assos Assos
|
'property_name' => 'baseDn',
|
340 |
|
|
'exportable' => FALSE,
|
341 |
32700c57
|
Assos Assos
|
],
|
342 |
85ad3d82
|
Assos Assos
|
|
343 |
32700c57
|
Assos Assos
|
'filter' => [
|
344 |
85ad3d82
|
Assos Assos
|
'property_name' => 'filter',
|
345 |
32700c57
|
Assos Assos
|
'schema' => [
|
346 |
85ad3d82
|
Assos Assos
|
'type' => 'text',
|
347 |
32700c57
|
Assos Assos
|
'not null' => FALSE,
|
348 |
|
|
],
|
349 |
|
|
'form' => [
|
350 |
85ad3d82
|
Assos Assos
|
'field_group' => 'query',
|
351 |
|
|
'#type' => 'textarea',
|
352 |
|
|
'#title' => t('Filter'),
|
353 |
|
|
'#description' => t('LDAP query filter such as <code>(objectClass=group)</code> or <code>(&(objectClass=user)(homePhone=*))
|
354 |
|
|
</code>'),
|
355 |
|
|
'#cols' => 50,
|
356 |
|
|
'#rows' => 1,
|
357 |
|
|
'#required' => TRUE,
|
358 |
32700c57
|
Assos Assos
|
],
|
359 |
|
|
'form_to_prop_functions' => ['trim'],
|
360 |
|
|
],
|
361 |
85ad3d82
|
Assos Assos
|
|
362 |
32700c57
|
Assos Assos
|
'attributes_str' => [
|
363 |
85ad3d82
|
Assos Assos
|
'property_name' => 'attributes_str',
|
364 |
32700c57
|
Assos Assos
|
'schema' => [
|
365 |
85ad3d82
|
Assos Assos
|
'type' => 'text',
|
366 |
32700c57
|
Assos Assos
|
'not null' => FALSE,
|
367 |
|
|
],
|
368 |
|
|
'form' => [
|
369 |
85ad3d82
|
Assos Assos
|
'field_group' => 'query',
|
370 |
|
|
'#type' => 'textarea',
|
371 |
|
|
'#title' => t('Attributes to return.'),
|
372 |
|
|
'#description' => t('Enter as comma separated list. DN is automatically returned. Leave empty to return all attributes. e.g. <code>objectclass,name,cn,samaccountname</code>'),
|
373 |
|
|
'#cols' => 50,
|
374 |
|
|
'#rows' => 6,
|
375 |
32700c57
|
Assos Assos
|
],
|
376 |
|
|
'form_to_prop_functions' => ['trim'],
|
377 |
|
|
],
|
378 |
85ad3d82
|
Assos Assos
|
|
379 |
32700c57
|
Assos Assos
|
'attributes' => [
|
380 |
85ad3d82
|
Assos Assos
|
'property_name' => 'attributes',
|
381 |
|
|
'exportable' => FALSE,
|
382 |
32700c57
|
Assos Assos
|
],
|
383 |
85ad3d82
|
Assos Assos
|
|
384 |
32700c57
|
Assos Assos
|
'sizelimit' => [
|
385 |
85ad3d82
|
Assos Assos
|
'property_name' => 'sizelimit',
|
386 |
32700c57
|
Assos Assos
|
'schema' => [
|
387 |
85ad3d82
|
Assos Assos
|
'type' => 'int',
|
388 |
|
|
'size' => 'small',
|
389 |
|
|
'not null' => TRUE,
|
390 |
|
|
'default' => 0,
|
391 |
32700c57
|
Assos Assos
|
],
|
392 |
|
|
'form' => [
|
393 |
85ad3d82
|
Assos Assos
|
'field_group' => 'query_advanced',
|
394 |
|
|
'#type' => 'textfield',
|
395 |
|
|
'#title' => t('Size Limit of returned data'),
|
396 |
|
|
'#description' => t('This limit may be already set by the ldap server. 0 signifies no limit'),
|
397 |
|
|
'#size' => 7,
|
398 |
|
|
'#maxlength' => 5,
|
399 |
|
|
'#required' => TRUE,
|
400 |
32700c57
|
Assos Assos
|
],
|
401 |
|
|
'form_to_prop_functions' => ['trim'],
|
402 |
|
|
],
|
403 |
85ad3d82
|
Assos Assos
|
|
404 |
32700c57
|
Assos Assos
|
'timelimit' => [
|
405 |
85ad3d82
|
Assos Assos
|
'property_name' => 'timelimit',
|
406 |
32700c57
|
Assos Assos
|
'schema' => [
|
407 |
85ad3d82
|
Assos Assos
|
'type' => 'int',
|
408 |
|
|
'size' => 'small',
|
409 |
|
|
'not null' => TRUE,
|
410 |
|
|
'default' => 0,
|
411 |
|
|
|
412 |
32700c57
|
Assos Assos
|
],
|
413 |
|
|
'form' => [
|
414 |
85ad3d82
|
Assos Assos
|
'field_group' => 'query_advanced',
|
415 |
|
|
'#type' => 'textfield',
|
416 |
|
|
'#title' => t('Time Limit in Seconds'),
|
417 |
|
|
'#description' => t('The time limitset on this query. This may be already set by the ldap server. 0 signifies no limit'),
|
418 |
|
|
'#size' => 7,
|
419 |
|
|
'#maxlength' => 5,
|
420 |
|
|
'#required' => TRUE,
|
421 |
32700c57
|
Assos Assos
|
],
|
422 |
|
|
'form_to_prop_functions' => ['trim'],
|
423 |
|
|
],
|
424 |
85ad3d82
|
Assos Assos
|
|
425 |
32700c57
|
Assos Assos
|
'deref' => [
|
426 |
85ad3d82
|
Assos Assos
|
'property_name' => 'deref',
|
427 |
32700c57
|
Assos Assos
|
'schema' => [
|
428 |
85ad3d82
|
Assos Assos
|
'type' => 'int',
|
429 |
|
|
'size' => 'tiny',
|
430 |
|
|
'not null' => TRUE,
|
431 |
|
|
'default' => LDAP_DEREF_NEVER,
|
432 |
32700c57
|
Assos Assos
|
],
|
433 |
|
|
'form' => [
|
434 |
85ad3d82
|
Assos Assos
|
'field_group' => 'query_advanced',
|
435 |
|
|
'#type' => 'radios',
|
436 |
|
|
'#title' => t('How aliases should be handled during the search.'),
|
437 |
|
|
'#required' => 1,
|
438 |
32700c57
|
Assos Assos
|
'#options' => [
|
439 |
85ad3d82
|
Assos Assos
|
LDAP_DEREF_NEVER => t('(default) aliases are never dereferenced.'),
|
440 |
|
|
LDAP_DEREF_SEARCHING => t('aliases should be dereferenced during the search but not when locating the base object of the search.'),
|
441 |
|
|
LDAP_DEREF_FINDING => t('aliases should be dereferenced when locating the base object but not during the search.'),
|
442 |
|
|
LDAP_DEREF_ALWAYS => t('aliases should be dereferenced always.'),
|
443 |
32700c57
|
Assos Assos
|
],
|
444 |
|
|
],
|
445 |
|
|
'form_to_prop_functions' => ['trim'],
|
446 |
|
|
],
|
447 |
|
|
'scope' => [
|
448 |
85ad3d82
|
Assos Assos
|
'property_name' => 'scope',
|
449 |
32700c57
|
Assos Assos
|
'schema' => [
|
450 |
85ad3d82
|
Assos Assos
|
'type' => 'int',
|
451 |
|
|
'size' => 'tiny',
|
452 |
|
|
'not null' => TRUE,
|
453 |
|
|
'default' => LDAP_SCOPE_SUBTREE,
|
454 |
32700c57
|
Assos Assos
|
],
|
455 |
|
|
'form' => [
|
456 |
85ad3d82
|
Assos Assos
|
'field_group' => 'query_advanced',
|
457 |
|
|
'#type' => 'radios',
|
458 |
|
|
'#title' => t('Scope of search.'),
|
459 |
|
|
'#required' => 1,
|
460 |
32700c57
|
Assos Assos
|
'#options' => [
|
461 |
85ad3d82
|
Assos Assos
|
LDAP_SCOPE_BASE => t('BASE. This value is used to indicate searching only the entry at the base DN, resulting in only that entry being returned (keeping in mind that it also has to meet the search filter criteria!).'),
|
462 |
|
|
LDAP_SCOPE_ONELEVEL => t('ONELEVEL. This value is used to indicate searching all entries one level under the base DN - but not including the base DN and not including any entries under that one level under the base DN.'),
|
463 |
|
|
LDAP_SCOPE_SUBTREE => t('SUBTREE. (default) This value is used to indicate searching of all entries at all levels under and including the specified base DN.'),
|
464 |
32700c57
|
Assos Assos
|
],
|
465 |
|
|
],
|
466 |
|
|
'form_to_prop_functions' => ['trim'],
|
467 |
|
|
],
|
468 |
85ad3d82
|
Assos Assos
|
|
469 |
32700c57
|
Assos Assos
|
];
|
470 |
85ad3d82
|
Assos Assos
|
return $fields;
|
471 |
|
|
}
|
472 |
|
|
|
473 |
|
|
} |