2 function ldap_xlat($filter,$login,$config)
6 $string = preg_replace('/%u/',$login,$string);
7 $string = preg_replace('/%U/',$HTTP_SERVER_VARS["PHP_AUTH_USER"],$string);
8 $string = preg_replace('/%ma/',$mappings[$http_user][accounting],$string);
9 $string = preg_replace('/%mu/',$mappings[$http_user][userdb],$string);
15 function da_ldap_bind($ds,$config)
18 if ($config[ldap_use_http_credentials] == 'yes'){
19 global $HTTP_SERVER_VARS;
20 $din = $HTTP_SERVER_VARS["PHP_AUTH_USER"];
21 $pass = $HTTP_SERVER_VARS["PHP_AUTH_PW"];
22 if ($config[ldap_map_to_directory_manager] != '' &&
23 $din == $config[ldap_map_to_directory_manager] &&
24 $config[ldap_directory_manager] != '')
25 $din = $config[ldap_directory_manager];
27 if ($config[ldap_use_http_credentials] != 'yes' ||
28 ($din == '' && $pass == '')){
29 $din = $config[ldap_binddn];
30 $pass = $config[ldap_bindpw];
32 if (preg_match('/[\s,]/',$din)){ // It looks like a dn
33 if ($config[ldap_debug] == 'true')
34 print "<b>DEBUG(LDAP): Bind Request: DN='$din',PASSWD='$pass'</b><br>\n";
35 return @ldap_bind($ds,"$din","$pass");
37 else{ // It's not a DN. Find a corresponding DN
38 if ($config[ldap_debug] == 'true')
39 print "<b>DEBUG(LDAP): Bind Request: DN='$config[ldap_binddn]',PASSWD='$config[ldap_bindpw]'</b><br>\n";
40 $r=@ldap_bind($ds,"$config[ldap_binddn]",$config[ldap_bindpw]);
42 $sr=@ldap_search($ds,"$config[ldap_base]", 'uid=' . $din);
43 $info = @ldap_get_entries($ds, $sr);
44 $din = $info[0]['dn'];
46 if ($config[ldap_debug] == 'true')
47 print "<b>DEBUG(LDAP): Bind Request: DN='$din',PASSWD='$pass'</b><br>\n";
48 return @ldap_bind($ds,"$din","$pass");
55 function connect2db($config)
57 $ds=@ldap_connect("$config[ldap_server]"); // must be a valid ldap server!
59 $r=@da_ldap_bind($ds,$config);
63 function get_user_info($ds,$user,$config,$decode_normal,$k)
67 if ($config[ldap_userdn] == ''){
68 if ($config[ldap_filter] != '')
69 $filter = ldap_xlat($config[ldap_filter],$login,$config);
71 $filter = 'uid=' . $login;
74 $filter = ldap_xlat($config[ldap_userdn],$login,$config);
75 if ($config[ldap_debug] == 'true'){
76 if ($config[ldap_userdn] == '')
77 print "<b>DEBUG(LDAP): Search Query: BASE='$config[ldap_base]',FILTER='$filter'</b><br>\n";
79 print "<b>DEBUG(LDAP): Search Query: BASE='$filter',FILTER='(objectclass=radiusprofile)'</b><br>\n";
81 if ($config[ldap_userdn] == '')
82 $sr=@ldap_search($ds,"$config[ldap_base]", $filter,$attrs);
84 $sr=@ldap_read($ds,$filter, '(objectclass=radiusprofile)',$attrs);
85 $info = @ldap_get_entries($ds, $sr);
86 $cn = $info[0]["cn"][0];
87 if ($cn != '' && $decode_normal == 1)
88 $cn = decode_string($cn,$k);
95 function get_user_dn($ds,$user,$config)
99 if ($config[ldap_userdn] == ''){
100 if ($config[ldap_filter] != '')
101 $filter = ldap_xlat($config[ldap_filter],$login,$config);
103 $filter = 'uid=' . $login;
106 $filter = ldap_xlat($config[ldap_userdn],$login,$config);
107 if ($config[ldap_debug] == 'true'){
108 if ($config[ldap_userdn] == '')
109 print "<b>DEBUG(LDAP): Search Query: BASE='$config[ldap_base]',FILTER='$filter'</b><br>\n";
111 print "<b>DEBUG(LDAP): Search Query: BASE='$filter',FILTER='(objectclass=radiusprofile)'</b><br>\n";
113 if ($config[ldap_userdn] == '')
114 $sr=@ldap_search($ds,"$config[ldap_base]", $filter,$attrs);
116 $sr=@ldap_read($ds,$filter, '(objectclass=radiusprofile)',$attrs);
117 $entry = ldap_first_entry($ds, $sr);
119 $dn = ldap_get_dn($ds,$entry);
124 function check_user_passwd($dn,$passwd,$config)
126 $ds=@ldap_connect("$config[ldap_server]");
127 if ($ds && $dn != '' && $passwd != ''){
128 $r = @ldap_bind($ds,$dn,$passwd);
140 function closedb($ds,$config)