Followup admin/categorie.pl
[koha.git] / opac / opac-passwd.pl
index c0e6c24..491cce0 100755 (executable)
 # Suite 330, Boston, MA  02111-1307 USA
 
 use strict;
-require Exporter;
+
 use CGI;
 
 use C4::Auth;    # checkauth, getborrowernumber.
 use C4::Context;
 use Digest::MD5 qw(md5_base64);
 use C4::Circulation;
-
+use C4::Members;
 use C4::Output;
 
 my $query = new CGI;
@@ -44,16 +44,16 @@ my ( $template, $borrowernumber, $cookie ) = get_template_and_user(
 );
 
 # get borrower information ....
-my $sth =
-  $dbh->prepare("UPDATE borrowers SET password = ? WHERE borrowernumber=?");
-
+my ( $borr ) = GetMemberDetails( $borrowernumber );
+my $sth =  $dbh->prepare("UPDATE borrowers SET password = ? WHERE borrowernumber=?");
+my $minpasslen = C4::Context->preference("minPasswordLength");
 if (   $query->param('Oldkey')
     && $query->param('Newkey')
     && $query->param('Confirm') )
 {
     if ( goodkey( $dbh, $borrowernumber, $query->param('Oldkey') ) ) {
         if ( $query->param('Newkey') eq $query->param('Confirm')
-            && length( $query->param('Confirm') ) > 5 )
+            && length( $query->param('Confirm') ) >= $minpasslen )
         {    # Record password
             my $clave = md5_base64( $query->param('Newkey') );
             $sth->execute( $clave, $borrowernumber );
@@ -65,7 +65,7 @@ if (   $query->param('Oldkey')
             $template->param( 'Error_messages' => '1' );
             $template->param( 'PassMismatch'   => '1' );
         }
-        elsif ( length( $query->param('Confirm') ) <= 5 ) {
+        elsif ( length( $query->param('Confirm') ) < $minpasslen ) {
             $template->param( 'Ask_data'       => '1' );
             $template->param( 'Error_messages' => '1' );
             $template->param( 'ShortPass'      => '1' );
@@ -81,11 +81,27 @@ if (   $query->param('Oldkey')
     }
 }
 else {
-
+   
     # Called Empty, Ask for data.
     $template->param( 'Ask_data' => '1' );
+       if (!$query->param('Oldkey') && ($query->param('Newkey') || $query->param('Confirm'))){
+               # Old password is empty but one of the others isnt
+               $template->param( 'Error_messages' => '1' );
+               $template->param( 'WrongPass'      => '1' );
+       }
+       elsif ($query->param('Oldkey') && (!$query->param('Newkey') || !$query->param('Confirm'))){
+               # Oldpassword is entered but one of the other fields is empty
+               $template->param( 'Error_messages' => '1' );
+               $template->param( 'PassMismatch'   => '1' );
+       }
 }
 
+$template->param(firstname => $borr->{'firstname'},
+                                                       surname => $borr->{'surname'},
+                                                       minpasslen => $minpasslen,
+                                                       passwdview => 1,
+);
+
 output_html_with_http_headers $query, $cookie, $template->output;
 
 sub goodkey {