', $uid, get_login_string( $server_id ) ); } else { // This is a standard login_attr // Fake the auth_type of config to do searching. This way, the admin can specify // the DN to use when searching for the login_attr user. $servers[$server_id]['auth_type'] = 'config'; // search for the "uid" first set_error_handler( 'temp_login_error_handler' ); $ds = pla_ldap_connect( $server_id ); pla_ldap_connection_is_error( $ds ); restore_error_handler(); $search_base = isset( $servers[$server_id]['base'] ) && '' != trim( $servers[$server_id]['base'] ) ? $servers[$server_id]['base'] : try_to_get_root_dn( $server_id, $ds ); if (!empty($servers[$server_id]['login_class'])) { $filter = '(&(objectClass='.$servers[$server_id]['login_class'].')('.$servers[$server_id]['login_attr'].'='.$uid.'))'; } else { $filter = $servers[$server_id]['login_attr'].'='.$uid; } $sr = @ldap_search($ds, $search_base, $filter, array('dn'), 0, 1); $result = @ldap_get_entries($ds, $sr); $dn = isset( $result[0]['dn'] ) ? $result[0]['dn'] : false; if( ! $dn ) { pla_error( $lang['bad_user_name_or_password'] ); } // restore the original auth_type $servers[$server_id]['auth_type'] = $auth_type; } } // We fake a 'config' server auth_type to omit duplicated code $auth_type = $servers[$server_id]['auth_type']; $servers[$server_id]['auth_type'] = 'config'; $servers[$server_id]['login_dn'] = $dn; $servers[$server_id]['login_pass'] = $pass; // verify that the login is good if( null == $dn && null == $pass ) $ds = pla_ldap_connect( $server_id, true, false ); else $ds = pla_ldap_connect( $server_id, false, false ); if( ! is_resource( $ds ) ) { if( $anon_bind ) pla_error( $lang['could_not_bind_anon'] ); else pla_error( $lang['bad_user_name_or_password'] ); } $servers[$server_id]['auth_type'] = $auth_type; set_login_dn( $server_id, $dn, $pass, $anon_bind ) or pla_error( $lang['could_not_set_cookie'] ); initialize_session_tree(); $_SESSION['tree'][$server_id] = array(); $_SESSION['tree_icons'][$server_id] = array(); session_write_close(); include realpath( 'header.php' ); ?>




()

" . htmlspecialchars( $errstr ) ); } ?>