Tim Esselens > Net-LDAP-Filter-SQL-0.03 > Net::LDAP::Filter::SQL

Download:
Net-LDAP-Filter-SQL-0.03.tar.gz

Dependencies

Annotate this POD

Website

CPAN RT

Open  0
View/Report Bugs
Module Version: 0.03   Source  

VERSION ^

version 0.03

NAME ^

Net::LDAP::Filter::SQL - LDAP filter to SQL clause transformer

SYNOPSIS ^

    my $ldapfilter = new Net::LDAP::Filter( '(&(name=Homer)(city=Springfield))' );


    my $sqlfilter  = new Net::LDAP::Filter::SQL( '(&(name=Marge)(city=Springfield))' );

    my $sqlfilter2 = Net::LDAP::Filter::SQL->new_from_data({ 'equalityMatch' => { 'assertionValue' => 'bar', 'attributeDesc' => 'foo' } });

    my $sqlfilter3 = bless($ldapfilter,'Net::LDAP::Filter::SQL');


    print Data::Dumper({ clause => $sqlfilter->sql_clause, values => $sqlfilter->sql_values });

    # ... $dbh->selectall_arrayref('select * from sometable where '.$sqlfilter->sql_clause, undef, $sqlfilter->sql_values)

DESCRIPTION ^

This module allows you to transform a Net::LDAP::Filter object into an SQL clause string containing '?' placeholders. The corresponding values can be accessed as a list, and thus can be used inside a dbh prepare or select call.

METHODS ^

new( ldapfilter )

Create a new LDAP Filter

new_from_data( $hashref )

Creates a new LDAP Filter from an existing data set. i.e. a Net::LDAP::Filter structure

sql_clause()

returns an sql where clause in string format with '?' placeholders

sql_values()

returns a list of values associated with the filter

METHODS ^

EXAMPLE ^

    my $filter = new Net::LDAP::Filter::SQL('(&(name=Marge)(city=Springfield))');
    
    print Dumper({ clause => $filter->sql_clause, values => $filter->sql_values });
    
    # $VAR1 = {
    #           'clause' => '(name = ?) and (city = ?)',
    #           'values' => [
    #                         'Marge',
    #                         'Springfield'
    #                       ]
    #         };

BUGS ^

probably lots, please send patches

TODO ^

Figure out what to do with approxMatch. From RFC 4511 (http://www.faqs.org/rfcs/rfc4511.html):

   4.5.1.7.6.  SearchRequest.filter.approxMatch
   An approxMatch filter is TRUE when there is a value of the attribute
   type or subtype for which some locally-defined approximate matching
   algorithm (e.g., spelling variations, phonetic match, etc.) returns
   TRUE.  If a value matches for equality, it also satisfies an
   approximate match.  If approximate matching is not supported for the
   attribute, this filter item should be treated as an equalityMatch.

That's it: whatever you want it to be. Regex, soundex, etc.. or simply make it like an equalityMatch.

SUPPORT ^

send me an e-mail

SEE ALSO ^

ACKNOWLEDGEMENTS ^

My mother, for raising me and my brother the way she did. Thanks mom!

INSTALLATION ^

See perlmodinstall for information and options on installing Perl modules.

BUGS AND LIMITATIONS ^

You can make new bug reports, and view existing ones, through the web interface at http://rt.cpan.org.

AUTHOR ^

Tim Esselens <tim.esselens@gmail.com>

COPYRIGHT AND LICENSE ^

This software is copyright (c) 2013 by Tim Esselens.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.

syntax highlighting: