allow where which are specified in SQL files, so we add just
[virtual-ldap] / lib / LDAP / Koha.pm
index 05532ea..2187bac 100644 (file)
@@ -181,15 +181,19 @@ sub search {
                                __ldap_search_to_sql( $filter, $reqData->{'filter'}->{$filter} );
                        }
 
-                       $sql_where .= ' ' . join( " $filter ", @limits );
+                       $sql_where .= ' ' . join( " $filter ", @limits ) if @limits;
 
                }
 
+               my $sql_select = read_file( lc "sql/$objectclass.sql" );
                if ( $sql_where ) {
-                       $sql_where = " where $sql_where";
+                       if ( $sql_select !~ m{where}i ) {
+                               $sql_where = " where $sql_where";
+                       } else {
+                               $sql_where = " and $sql_where";
+                       }
                }
 
-               my $sql_select = read_file( lc "sql/$objectclass.sql" );
 
                warn "# SQL:\n$sql_select\n", $sql_where ? $sql_where : '-- no where', "\n# DATA: ",dump( @values );
                my $sth = $dbh->prepare( $sql_select . $sql_where . " LIMIT $max_results" ); # XXX remove limit?