Only connect and bind to the ldap server if we haven't done that before.
[freeradius.git] / dialup_admin / lib / ldap / defaults.php3
1 <?php
2 require_once('../lib/ldap/functions.php3');
3 if ($config[ldap_default_dn] != ''){
4         include('../lib/ldap/attrmap.php3');
5         $regular_profile_attr = $config[ldap_regular_profile_attr];
6         if (!isset($ds))
7                 $ds=@ldap_connect("$config[ldap_server]");  // must be a valid ldap server!
8         if ($ds) {
9                 if (!isset($r))
10                         $r=@da_ldap_bind($ds,$config);
11                 $sr=@ldap_search($ds,"$config[ldap_default_dn]", 'objectclass=*');
12                 if ($info = @ldap_get_entries($ds, $sr)){
13                         $dn = $info[0]['dn'];
14                         if ($dn != ''){
15                                 foreach($attrmap as $key => $val){
16                                                 if ($info[0]["$val"][0] != '' && $key != 'Dialup-Access'){
17                                                         if ($attrmap[generic]["$key"] == 'generic'){
18                                                                 for($i=0;$i<$info[0]["$val"][count];$i++)
19                                                                         $default_vals["$key"][] = $info[0]["$val"][$i];
20                                                                 $default_vals["$key"][count] += $info[0]["$val"][count];
21                                                         }
22                                                         else
23                                                                 $default_vals["$key"] = $info[0]["$val"];
24                                                 }
25                                 }
26                         }
27                 }
28                 if ($regular_profile_attr != ''){
29                         $get_attrs = array("$regular_profile_attr");
30                         $sr=@ldap_search($ds,"$config[ldap_base]","uid=" . $login,$get_attrs);
31                         if ($info = @ldap_get_entries($ds,$sr)){
32                                 $dn2 = $info[0][$regular_profile_attr][0];
33                                 if ($dn2 != ''){
34                                         $sr2=@ldap_search($ds,"$dn2",'objectclass=*');
35                                         if ($info2 = @ldap_get_entries($ds,$sr2)){
36                                                 $dn3 = $info2[0]['dn'];
37                                                 if ($dn3 != ''){
38                                                         foreach($attrmap as $key => $val){
39                                                                 if ($info2[0]["$val"][0] != '' && $key != 'Dialup-Access'){
40                                                                         if (!isset($default_vals["$key"]))
41                                                                                 $default_vals["$key"] = array();
42                                                                         if ($attrmap[generic]["$key"] == 'generic'){
43                                                                                 for($i=0;$i<$info2[0]["$val"][count];$i++)
44                                                                                         $default_vals["$key"][] = $info2[0]["$val"][$i];
45                                                                                 $default_vals["$key"][count] += $info2[0]["$val"][count];
46                                                                         }
47                                                                         else
48                                                                                 $default_vals["$key"] = $info2[0]["$val"];
49                                                                 }
50                                                         }
51                                                 }
52                                         }
53                                 }
54                         }
55                 }
56                 @ldap_close($ds);
57         }
58 }
59
60 ?>