File Coverage

blib/lib/OpenPlugin/Authenticate/DBI.pm
Criterion Covered Total %
statement 9 27 33.3
branch 0 8 0.0
condition 0 9 0.0
subroutine 3 4 75.0
pod 0 1 0.0
total 12 49 24.4


line stmt bran cond sub pod time code
1             package OpenPlugin::Authenticate::DBI;
2              
3             # $Id: DBI.pm,v 1.11 2003/04/03 01:51:24 andreychek Exp $
4              
5 1     1   1264 use strict;
  1         2  
  1         61  
6 1     1   706 use OpenPlugin::Authenticate();
  1         3  
  1         21  
7 1     1   7 use base qw( OpenPlugin::Authenticate );
  1         2  
  1         371  
8              
9             #use OpenPlugin::Authenticate();
10             #$OpenPlugin::Authenticate::DBI::ISA = qw( OpenPlugin::Authenticate );
11              
12             $OpenPlugin::Authenticate::DBI::VERSION = sprintf("%d.%02d", q$Revision: 1.11 $ =~ /(\d+)\.(\d+)/);
13              
14             sub authenticate {
15 0     0 0   my ($self, $args) = @_;
16              
17 0 0         return 0 if $args->{username} eq "";
18              
19 0           my $ret = 0;
20              
21 0   0       $args->{username_field} ||= "username";
22 0   0       $args->{password_field} ||= "password";
23 0   0       $args->{table} ||= "";
24              
25 0 0 0       $self->OP->exception->throw ("No datasource or table argument given" )
26             unless (($args->{datasource}) && ($args->{table}));
27              
28 0           $self->OP->log->info( "Authenticating $args->{username}");
29              
30 0           my $dbh = eval { $self->OP->datasource->connect( $args->{datasource} ); };
  0            
31              
32 0 0         if ( $@ ) {
33 0           $self->OP->exception->throw("Connection Error: $@\n");
34             }
35              
36 0           my $sth = $dbh->prepare("SELECT $args->{username_field} FROM " .
37             "$args->{table} where $args->{username_field} = " .
38             "'$args->{username}' and " .
39             "$args->{password_field} = " .
40             "'$args->{password}'");
41 0           $sth->execute;
42              
43 0           my $row = $sth->fetchrow_hashref;
44              
45 0 0         $ret = 1 if $row->{ $args->{username_field} } eq $args->{username};
46              
47 0           $self->OP->log->info( "Authenticate returned ($ret)");
48              
49 0           return($ret);
50             }
51              
52              
53             1;
54              
55             __END__