Bug 20998: Only perform quicksearch if patron found with cardnumber
[koha.git] / members / member.pl
index 93996dd..2fc7fb4 100755 (executable)
@@ -27,10 +27,9 @@ use Modern::Perl;
 use C4::Auth;
 use C4::Output;
 use CGI qw( -utf8 );
-use C4::Branch;
-use C4::Members qw( GetMember );
 use Koha::DateUtils;
 use Koha::List::Patron;
+use Koha::Patrons;
 
 my $input = new CGI;
 
@@ -39,7 +38,7 @@ my ($template, $loggedinuser, $cookie)
                  query => $input,
                  type => "intranet",
                  authnotrequired => 0,
-                 flagsrequired => {borrowers => 1},
+                 flagsrequired => {borrowers => 'edit_borrowers'},
                  });
 
 my $theme = $input->param('theme') || "default";
@@ -53,22 +52,15 @@ if ( $quicksearch and $searchmember ) {
         my $userenv = C4::Context->userenv;
         $branchcode = $userenv->{'branch'};
     }
-    my $member = GetMember(
-        cardnumber => $searchmember,
-        ( $branchcode ? ( branchcode => $branchcode ) : () ),
-    );
-    if( $member ){
-        print $input->redirect("/cgi-bin/koha/members/moremember.pl?borrowernumber=" . $member->{borrowernumber});
+    my $patron = Koha::Patrons->find( { cardnumber => $searchmember } );
+    if( ( $branchcode and $patron and $patron->branchcode eq $branchcode ) or ( not $branchcode and $patron ) ){
+        print $input->redirect("/cgi-bin/koha/members/moremember.pl?borrowernumber=" . $patron->borrowernumber);
         exit;
     }
 }
 
 my $searchfieldstype = $input->param('searchfieldstype') || 'standard';
 
-if ( $searchfieldstype eq "dateofbirth" ) {
-    $searchmember = output_pref({dt => dt_from_string($searchmember), dateformat => 'iso', dateonly => 1});
-}
-
 $template->param( 'alphabet' => C4::Context->preference('alphabet') || join ' ', 'A' .. 'Z' );
 
 my $view = $input->request_method() eq "GET" ? "show_form" : "show_results";