Apache-Session-Browseable
view release on metacpan or search on metacpan
lib/Apache/Session/Browseable/DBI.pm view on Meta::CPAN
my $class = shift;
my ( $args, $selectField, $value, @fields ) = @_;
# Escape quotes
$selectField =~ s/'/''/g;
if ( $class->_fieldIsIndexed( $args, $selectField ) ) {
return $class->_query( $args, $selectField, $value,
{ query => "$selectField=?", values => [$value] }, @fields );
}
else {
return $class->SUPER::searchOn(@_);
}
}
sub searchOnExpr {
my $class = shift;
my ( $args, $selectField, $value, @fields ) = @_;
# Escape quotes
$value =~ s/'/''/g;
$selectField =~ s/'/''/g;
if ( $class->_fieldIsIndexed( $args, $selectField ) ) {
$value =~ s/\*/%/g;
return $class->_query( $args, $selectField, $value,
{ query => "$selectField like ?", values => [$value] }, @fields );
}
else {
return $class->SUPER::searchOnExpr(@_);
}
}
sub _query {
my ( $class, $args, $selectField, $value, $query, @fields ) = @_;
my %res = ();
my $index =
ref( $args->{Index} )
? $args->{Index}
: [ split /\s+/, $args->{Index} ];
lib/Apache/Session/Browseable/LDAP.pm view on Meta::CPAN
sub searchOn {
my ( $class, $args, $selectField, $value, @fields ) = @_;
my $index =
ref( $args->{Index} ) ? $args->{Index} : [ split /\s+/, $args->{Index} ];
if ( grep { $_ eq $selectField } @$index ) {
( $selectField, $value ) = escape_filter_value( $selectField, $value );
return $class->_query( $args, $selectField, $value, @fields );
}
else {
return $class->SUPER::searchOn( $args, $selectField, $value, @fields );
}
}
sub searchOnExpr {
my ( $class, $args, $selectField, $value, @fields ) = @_;
my $index =
ref( $args->{Index} ) ? $args->{Index} : [ split /\s+/, $args->{Index} ];
if ( grep { $_ eq $selectField } @$index ) {
( $selectField, $value ) = escape_filter_value( $selectField, $value );
$value =~ s/\\2a/\*/gi;
return $class->_query( $args, $selectField, $value, @fields );
}
else {
return $class->SUPER::searchOn( $args, $selectField, $value, @fields );
}
}
sub _query {
my ( $class, $args, $selectField, $value, @fields ) = @_;
$args->{ldapObjectClass} ||= 'applicationProcess';
$args->{ldapAttributeId} ||= 'cn';
$args->{ldapAttributeContent} ||= 'description';
$args->{ldapAttributeIndex} ||= 'ou';
lib/Apache/Session/Browseable/Postgres.pm view on Meta::CPAN
$self->{validate} = \&Apache::Session::Generate::SHA256::validate;
$self->{serialize} = \&Apache::Session::Serialize::JSON::serialize;
$self->{unserialize} = \&Apache::Session::Serialize::JSON::unserialize;
return $self;
}
sub searchOn {
my $class = shift;
my ( $args, $selectField, $value, @fields ) = @_;
my $res = $class->SUPER::searchOn(@_);
# Ensure fields case is preserved
foreach (@fields) {
if ( $_ ne lc($_) ) {
foreach my $s ( keys %$res ) {
$res->{$s}->{$_} = delete $res->{$s}->{ lc $_ }
if $res->{$s}->{ lc $_ };
}
}
}
return $res;
}
sub searchOnExpr {
my $class = shift;
my ( $args, $selectField, $value, @fields ) = @_;
my $res = $class->SUPER::searchOnExpr(@_);
# Ensure fields case is preserved
foreach (@fields) {
if ( $_ ne lc($_) ) {
foreach my $s ( keys %$res ) {
$res->{$s}->{$_} = delete $res->{$s}->{ lc $_ }
if $res->{$s}->{ lc $_ };
}
}
}
lib/Apache/Session/Browseable/Store/MySQL.pm view on Meta::CPAN
use Apache::Session::Browseable::Store::DBI;
use Apache::Session::Store::MySQL;
our @ISA =
qw(Apache::Session::Browseable::Store::DBI Apache::Session::Store::MySQL);
our $VERSION = '1.2.2';
sub connection {
my($self,$session)=@_;
$self->SUPER::connection($session);
if ( $self->{dbh}->{Driver}->{Name} eq "mysql" ) {
$self->{dbh}->{mysql_enable_utf8} = 1;
}
}
1;
lib/Apache/Session/Browseable/Store/Postgres.pm view on Meta::CPAN
use Apache::Session::Browseable::Store::DBI;
use Apache::Session::Store::Postgres;
our @ISA =
qw(Apache::Session::Browseable::Store::DBI Apache::Session::Store::Postgres);
our $VERSION = '1.2.2';
sub connection {
my($self,$session)=@_;
$self->SUPER::connection($session);
$self->{dbh}->{pg_enable_utf8} = 1;
}
1;
( run in 1.165 second using v1.01-cache-2.11-cpan-49f99fa48dc )